SDK 연동
몇 가지 단계를 거쳐 빠르게 SDK 연동을 시작해보세요.
- 단계1. SDK 의존성 추가
- 단계2. SDK 초기화
- 단계3. 사용자 이벤트 전송
- 단계4. A/B 테스트, 기능플래그
단계 1. SDK 의존성 추가
SDK 의존성을 추가 합니다.
php composer.phar require hackle/hackle-php-sdk:{sdk_version}
//OR
composer require hackle/hackle-php-sdk:{sdk_version}
그 다음 autoload 시킵니다.
require 'vendor/autoload.php';
단계 2. SDK 초기화
HackleClient는 SDK 기능을 사용하기 위한 메소드들을 제공하는 클래스입니다.
SDK 를 사용하기 위해서는 HackleClient 초기화가 필요합니다.
인스턴스화
SDK 키를 전달하여 HackleClient
를 인스턴스화 합니다.
HackleClient
는 필요한 정보들을 얻기 위해, 핵클에서 제공하는 메소드를 사용할 때마다 주기적으로 데이터를 파일로 캐시합니다. (캐시 정보는 /tmp/hackle/에 저장됩니다.)
$client = \Hackle\HackleClients::create("YOUR_SERVER_SDK_KEY");
SDK 키는 단계 1에서 가입한 핵클 대시보드 안에서 확인할 수 있습니다. SDK 연동 정보 에서 SDK 종류/환경 별 SDK 키를 확인 후 Server
SDK 키를 복사하여 사용하세요.
단계 3. 이벤트 전송
핵클 SDK는 사용자 이벤트를 핵클로 전송하는 기능을 제공합니다.
사용자 행동의 변화가 일어나는 지점마다 이 기능을 활용하면 사용자 행동에 대한 유의미한 데이터를 얻을 수 있으며, 그렇게 모인 데이터를 통해 사용자 행동 분석을 할 수 있습니다.
track
track()
메소드에 이벤트 키와 사용자를 전달하여 사용자 이벤트를 전송할 수 있습니다. 필요한 경우 사용자 이벤트 전송 시 숫자 값을 value
에 넣어 함께 전송할 수 있습니다.
value
는 number 타입만 넣을 수 있습니다.
예시
사용자가 구매하기 버튼을 눌렀을 때 이벤트를 수집하기 위해 purchase
라는 이벤트 키를 정의했다고 가정합니다.
이 때 구매 속성정보를 같이 수집하고 싶을 수 있습니다. 이런 경우 property
에 구매 속성정보를 함께 받을 수 있습니다.
<?php
require 'vendor/autoload.php';
$client = \Hackle\HackleClients::create("YOUR_SERVER_SDK_KEY");
$user = \Hackle\Common\HackleUser::builder()
->deviceId("ae2182e0")
->build();
$event = \Hackle\Common\HackleEvent::builder("purchase")
->property("pay_method", "CARD")
->property("discount_amount", 800)
->property("is_discount", true)
->build();
$client->track($event, $user);
?>
사용자 이벤트 전송 확인하기
SDK 에서 전송한 사용자 이벤트가 정상적으로 수집되고 있는지 확인해보세요.
핵클 대시보드 안의 [왼쪽 메뉴바] - [이벤트 관리] 메뉴에서 SDK로 전송한 이벤트를 찾아 실시간 이벤트 수집현황을 확인해볼 수 있습니다.
단계 4. A/B 테스트, 기능플래그
A/B 테스트
A/B 테스트를 진행할 때, 테스트 그룹을 대상으로 사용자를 분배하고 각 테스트 그룹에 해당하는 로직을 작성해야 합니다. 이 때 사용자 분배를 핵클 SDK를 통해 진행할 수 있습니다.
테스트 그룹
테스트 그룹은 테스트 대상이 되는 기존안(대조군)과 개선안(실험군)을 의미하며, 개선안은 1개 이상일 수 있습니다. 대시보드에서 설정 가능하며, 테스트 그룹을 관리하는 방법에 대해서는 A/B 테스트 설정 문서를 참고하시기 바랍니다.
variation
variation()
메소드에 실험 키와 사용자 식별자를 전달하면 사용자를 분배하고 결과를 전달받을 수 있습니다. 이후 테스트 그룹 별 로직을 구현합니다.
실험 키는 각 A/B 테스트별로 갖게 되는 고유 번호이며, 핵클 서비스 내의 대시보드에서 확인할 수 있습니다.
아래 예제 코드에서는 실험 키 42를 전달하고 있으며, 사용자 식별자는 "ae2182e0" 입니다. 테스트 그룹은 A와 B 두 개가 존재합니다.
<?php
require 'vendor/autoload.php';
$client = \Hackle\HackleClients::create("YOUR_SERVER_SDK_KEY");
$user = \Hackle\Common\HackleUser::builder()
->deviceId("ae2182e0")
->build();
$variation = $client->variation(42, $user);
if ($variation === "A") {
//그룹 A 로직
} elseif ($variation === "B") {
//그룹 B 로직
}
?>
기능플래그
기능 플래그는 켜짐(on) 상태와 꺼짐(off) 상태가 있습니다. 각 상태에 따라 다른 기능을 설정하게 됩니다.
기능 플래그를 적용한 기능에 어떤 사용자가 접근할 경우 켜짐 혹은 꺼짐 상태를 받을 수 있어야 합니다. 이 상태 결정을 핵클 SDK를 통해 진행할 수 있습니다.
isFeatureOn
isFeatureOn()
메소드에 기능 키를 전달하면 사용자에 대한 상태 결과를 전달받을 수 있습니다. 이후 상태에 따른 로직을 구현합니다.
기능 키는 각 기능 플래그별로 갖게 되는 고유 번호이며 핵클 서비스 내의 대시보드에서 확인하실 수 있습니다.
아래 예제 코드에서는 기능 키 42를 전달하고 있으며, 상태를 받을 사용자의 사용자 식별자는 "ae03e1adf" 입니다.
<?php
require 'vendor/autoload.php';
$client = \Hackle\HackleClients::create("YOUR_SERVER_SDK_KEY");
$user = \Hackle\Common\HackleUser::builder()
->deviceId("ae2182e0")
->build();
$isFeatureOn = $client->isFeatureOn(42, $user);
if ($isFeatureOn) {
// ON 기능
} else {
// OFF 기능
}
?>
분배결과 확인하기
핵클 대시보드 안의 [왼쪽 메뉴바] - [A/B 테스트 또는 기능플래그] 화면에서 노출되는 A/B테스트 또는 기능플래그 리스트 중 연동한 대상을 찾아 상세 페이지로 이동 한 후 화면 중간에 [실시간 노출 현황] 탭을 클릭하면 SDK로 연동 된 분배 결과를 볼 수 있습니다.
Updated 5 months ago