이벤트란 게임 설치, 게임 업데이트, 아이템 구매와 같이 유저가 게임을 플레이하면서 수행하는 모든 활동입니다. 이러한 이벤트 로그를 모아 서버에 전송하면 유저 활동을 추적할 수 있고 이를 분석해 다양하게 활용할 수 있습니다. 예를 들어, 게임내에서 발생하는 레벨업, 아이템 강화와 같은 이벤트를 추적하여 유저 행동을 예측할 수 있으며 게임을 더 재밌게 즐길 수 있도록 유도할 수 있습니다.
마케팅 어트리뷰션
여러분의 앱에 유저가 진입하는 경로와 유저 활동을 추적하는 서드 파티(Third party) 모바일 앱 어트리뷰션을 Hive와 함께 사용할 수 있습니다. Hive SDK가 제공하는 서드 파티 모바일 앱 어트리뷰션은 Adjust와 Singular, AppsFlyer, Firebase Analytics 네 가지입니다.
서드 파티 어트리뷰션 활성화하기
Hive API를 이용하여 서드 파티 어트리뷰션을 활성화하거나 비활성화할 수 있습니다. 서드 파티 어트리뷰션을 활성화·비활성화하려면 Analytics API의 setEnableTracker() 함수를 호출하세요. 함수의 첫 번째 파라미터로는 활성화·비활성화하고자 하는 어트리뷰션을 다음과 같이 안내된 문자열로 정의하세요:
- Adjust:
ADJUST
- Singular:
SINGULAR
- AppsFlyer:
APPSFLYER
- Firebase:
FIREBASE
다음은 Adjust를 비활성화하는 예제 코드입니다.
API Reference: hive.Analytics.setEnableTracker
1 2 3 4 5 |
TrackingType trackingType = TrackingType.ADJUST; // Adjust를 비활성화하기 Analytics.setEnableTracker(trackingType, false); |
API Reference: Analytics::setEnableTracker
1 2 3 4 5 |
Analytics::TrackingType trackingType = Analytics::TrackingType::ADJUST; // Adjust를 비활성화하기 Analytics::setEnableTracker(trackingType, false); |
API Reference: com.hive.Analytics.setEnableTracker
1 2 3 4 5 |
Analytics.TrackingType trackingType = Analytics.TrackingType.ADJUST; // Adjust를 비활성화하기 Analytics.setEnableTracker(trackingType, false); |
API Reference: HIVEAnalytics:setEnableTracker
1 2 3 4 5 |
HIVETrackingType trackingType = kHIVETrackingTypeAdjust // Adjust를 비활성화하기 [HIVEAnalytics setEnableTracker:trackingType enable:false]; |
다음은 Firebase를 비활성화하는 예제 코드입니다.
API Reference: hive.Analytics.setEnableTracker
1 2 |
// Firebase를 비활성화하기 Analytics.setEnableTracker("FIREBASE", false); |
API Reference: Analytics::setEnableTracker
1 2 |
// Firebase를 비활성화하기 Analytics::setEnableTracker("FIREBASE", false); |
API Reference: com.hive.Analytics.setEnableTracker
1 2 |
// Firebase를 비활성화하기 Analytics.setEnableTrackerWithName("FIREBASE", false) |
API Reference: com.hive.Analytics.setEnableTracker
1 2 |
// Firebase를 비활성화하기 Analytics.INSTANCE.setEnableTrackerWithName("FIREBASE", false); |
API Reference: HIVEAnalytics:setEnableTracker
1 2 |
// Firebase를 비활성화하기 AnalyticsInterface.setEnableTracker(name: "FIREBASE", enable isEnable: false) |
API Reference: HIVEAnalytics:setEnableTracker
1 2 |
// Firebase를 비활성화하기 [HIVEAnalytics setEnableTrackerWithName:@"FIREBASE" enable:NO]; |
이벤트 자동 추적
Hive SDK에서는 Install(앱 설치), Open(앱 오픈), Update(앱 업데이트), Purchase(인앱 구매)의 4개 이벤트를 자동으로 추적하여 각 어트리뷰션으로 전송할 수 있습니다. 게임사는 이 4개 이벤트 추적을 위한 코드를 구현할 필요가 없습니다.
Adjust로 이벤트 자동으로 추적하기
- 필요한 토큰을 발급받습니다. 토큰 발급 방법에 대해서는 Adjust에서 제공하는 대시보드 안내를 참고하세요.
- Purchase, Update 이벤트를 자동 추적하려면 Adjust 대시보드에 이벤트를 등록하고 앱 토큰과 이벤트 토큰을 얻어야 합니다. 앱 토큰은 대시보드 메인에서, 이벤트 토큰은 대시보드 > All Settings > Events에서 확인합니다.
- Install, Open 이벤트 자동 추적은 토큰 발급이 필요하지 않습니다.
- 토큰들을 hive_config.xml에 추가합니다.
- 앱 토큰, Purchase 이벤트 토큰, Update 이벤트 토큰을 hive_config.xml에 추가합니다. 아래 예제 코드를 참고하세요.
- Install, Open 이벤트 자동 추적은 hive_config.xml 설정이 필요하지 않습니다.
- Adjust 대시보드에서는 앱 스푸핑 방지를 위한 SDK Signature 기능을 제공합니다. 관련 기능을 사용하려면 Adjust와의 계약 사항을 확인해야 합니다. 관련 기능을 사용하려면 키를 발급받아 hive_config.xml
secretId
,info1
,info2
,info3
,info4
에 추가하세요.
12345678910111213<providers><!-- (코드 생략) --><!-- Adjust 노드 id 필드는 설정하지 않습니다. --><!-- Adjust 노드 name 필드는 "Adjust" 고정값입니다. --><!-- event 노드 name 필드는 게임사에서 임의로 설정합니다. --><Adjust name="Adjust" id="unused" key="APP_TOKEN" secretId="1" info1="5432112345" info2="334123" info3="555333" info4="111333"><events><event name="Purchase" value="PURCHASE_EVENT_TOKEN" /><event name="Update" value="UPDATE_EVENT_TOKEN" /></events><!-- (코드 생략) --></Adjust></providers>
Singular, Appsflyer, Firebase Analytics로 이벤트 자동으로 추적하기
- 각 어트리뷰션 대시보드에서 키를 발급받습니다. 키 발급 방법에 대해서는 각 어트리뷰션에서 제공하는 대시보드 안내를 참고하세요.
- Singular: 대시보드에서 SDK Key와 SDK SecretKey를 받습니다.
- Appsflyer: 대시보드 > 앱 설정에서 Dev 키를 받습니다.
- Firebase Analytics: 키 발급이 필요하지 않습니다.
- 아래 안내를 따라 hive_config.xml에 설정합니다. 아래 예제 코드를 참고하세요.
- Install: 별도 설정이 필요하지 않습니다.
- Open: Firebase Analytics 어트리뷰션만 설정이 필요합니다.
- Update: Singular, Appsflyer, Firebase Analytics 모두 설정을 추가합니다.
- Purchase: Singular, Firebase Analytics만 설정을 추가합니다.
- Hive SDK iOS(Native, Unity, Unreal)에서 AppsFlyer 어트리뷰션을 사용할 경우, Apple AppID 설정을 위해
itunseConnectAppId
값을 설정합니다.
12345678910111213141516171819202122232425262728293031<providers><!-- Singular 설정하기 --><!-- Singular 노드 name 필드는 "Singular" 고정값입니다. --><!-- event 노드 name, value 필드는 게임사에서 임의로 설정합니다. --><Singular name="Singular" id="SDK_KEY" key="SDK_SECRET_KEY"><events><event name="Purchase" value="purchase"/><event name="Update" value="update" /></events></Singular><!-- AppsFlyer 설정하기 --><!-- AppsFlyer 노드 name 필드는 "AppsFlyer" 고정값입니다. --><!-- AppsFlyer 노드 id 필드는 설정하지 않습니다. --><!-- event 노드 name, value 필드는 게임사에서 임의로 설정합니다. --><AppsFlyer name="AppsFlyer" id="unused" key="DEV_KEY" itunseConnectAppId="909923112"><events><event name="Update" value="Update" /></events></AppsFlyer><!-- Firebase Analytics 설정하기 --><!-- event 노드 name, value 필드는 게임사에서 임의로 설정합니다. --><firebase><events><event name="Purchase" value="purchase"/><event name="Open" value="open"/><event name="Update" value="update"/></events></firebase></providers>
결제 이벤트 발생 시 전송 정보
Hive IAP로 결제를 하면 서드 파티 모바일 앱 어트리뷰션에 자동으로 결제 이벤트를 전송합니다. 이 때 전송하는 정보는 아래와 같습니다.
EVENT NAME | PARAMETER | 비고 | |
---|---|---|---|
Adjust | Purchase |
|
|
Singular | __iap__ |
|
|
AppsFlyer | Purchase |
|
|
Firebase Analytics | Purchase |
|
|
이벤트 수동 추적
Hive SDK에서는 자동으로 추적하는 이벤트(Install, Open, Update, Purchase) 외에도 필요한 이벤트를 각 어트리뷰션 대시보드에 등록하여 수동으로 추적할 수 있습니다. 예를 들어 게임 튜토리얼 완료 시(TutorialComplete) 또는 특정 미션 달성 시(MissionClear)와 같이 특정한 상황을 추적할 수 있습니다. 이벤트 수동 추적은 이벤트 자동 추적 설정을 완료한 다음에 진행해야 합니다.
Adjust로 이벤트 수동으로 추적하기
- 원하는 커스텀 이벤트를 Adjust 대시보드에 등록하고 앱 토큰과 이벤트 토큰을 얻어야 합니다. 앱 토큰은 대시보드 메인에서, 이벤트 토큰은 대시보드 > All Settings > Events에서 확인합니다. 토큰 발급 방법에 대해서는 Adjust에서 제공하는 대시보드 안내를 참고하세요.
- 앱 토큰과 이벤트 토큰을 hive_config.xml에 추가합니다. 아래 예제 코드를 참고하세요.
- Adjust 대시보드에서는 앱 스푸핑 방지를 위한 SDK Signature 기능을 제공합니다. 관련 기능을 사용하려면 Adjust와의 계약 사항을 확인해야 합니다. 관련 기능을 사용하려면 키를 발급받아 hive_config.xml
secretId
,info1
,info2
,info3
,info4
에 추가하세요.
12345678910111213<providers><!-- (코드 생략) --><!-- Adjust 노드 id 필드는 설정하지 않습니다. --><!-- Adjust 노드 name 필드는 "Adjust" 고정값입니다. --><!-- event 노드 name 필드는 게임사에서 임의로 설정합니다. 단, sendEvent() 호출을 위해 다른 어트리뷰션에서도 동일한 값을 사용해야 합니다.--><Adjust name="Adjust" id="unused" key="APP_TOKEN" secretId="1" info1="5432112345" info2="334123" info3="555333" info4="111333"><events><event name="TutorialComplete" value="TutorialComplete_EVENT_TOKEN" /><event name="MissionClear" value="MissionClear_EVENT_TOKEN" /></events><!-- (코드 생략) --></Adjust></providers> - Analytics API sendEvent()를 호출하여 이벤트를 전송합니다. 이벤트 전송 시 hive_config.xml에 추가한
event name
을 사용합니다.name
은 API 호출 시 파라미터로 사용하며value
는 각 어트리뷰션의 대시보드에서 확인할 수 있습니다.Analytics.sendEvent("TutorialComplete");
Analytics.sendEvent("MissionClear");
Singular, Appsflyer, Firebase Analytics로 이벤트 수동으로 추적하기
- 각 어트리뷰션 대시보드에서 키를 발급받습니다. 키 발급 방법에 대해서는 각 어트리뷰션에서 제공하는 대시보드 안내를 참고하세요.
- Singular: 대시보드에서 SDK Key와 SDK SecretKey를 받습니다.
- Appsflyer: 대시보드 > 앱 설정에서 Dev 키를 받습니다.
- Firebase Analytics: 키 발급이 필요하지 않습니다.
- 아래 안내를 따라 hive_config.xml에 설정합니다. 아래 예제 코드를 참고하세요. Hive SDK iOS(Native, Unity, Unreal)에서 AppsFlyer 어트리뷰션을 사용할 경우, Apple AppID 설정을 위해
itunseConnectAppId
값을 설정합니다.
12345678910111213141516171819202122232425262728293031323334<providers><!-- Singular 설정하기 --><!-- Singular 노드 name 필드는 "Singular" 고정값입니다. --><!-- event 노드 name 필드는 게임사에서 임의로 설정합니다. 단, sendEvent() 호출을 위해 다른 어트리뷰션에서도 동일한 값을 사용해야 합니다.--><!-- event 노드 value 필드는 게임사에서 임의로 설정합니다. --><Singular name="Singular" id="SDK_KEY" key="SDK_SECRET_KEY"><events><event name="TutorialComplete" value="Tutorial Complete" /><event name="MissionClear" value="Mission Clear" /></events></Singular><!-- AppsFlyer 설정하기 --><!-- AppsFlyer 노드 name 필드는 "AppsFlyer" 고정값입니다. --><!-- AppsFlyer 노드 id 필드는 설정하지 않습니다. --><!-- event 노드 name 필드는 게임사에서 임의로 설정합니다. 단, sendEvent() 호출을 위해 다른 어트리뷰션에서도 동일한 값을 사용해야 합니다.--><!-- event 노드 value 필드는 게임사에서 임의로 설정합니다. --><AppsFlyer name="AppsFlyer" id="unused" key="DEV_KEY" itunseConnectAppId="909923112"><events><event name="TutorialComplete" value="Tutorial Complete" /><event name="MissionClear" value="Mission Clear" /></events></AppsFlyer><!-- Firebase Analytics 설정하기 --><!-- event 노드 name 필드는 게임사에서 임의로 설정합니다. 단, sendEvent() 호출을 위해 다른 어트리뷰션에서도 동일한 값을 사용해야 합니다.--><!-- event 노드 value 필드는 게임사에서 임의로 설정합니다. --><firebase><events><event name="TutorialComplete" value="TutorialComplete" /><event name="MissionClear" value="MissionClear" /></events></firebase></providers> - Analytics API sendEvent()를 호출하여 이벤트를 전송합니다. 이벤트 전송 시 hive_config.xml에 추가한
event name
을 사용합니다.name
은 API 호출 시 파라미터로 사용하며value
는 각 어트리뷰션의 대시보드에서 확인할 수 있습니다.Analytics.sendEvent("TutorialComplete");
Analytics.sendEvent("MissionClear");
sendEvent()로 이벤트 전송하기
유저의 행동을 추적할 때 모든 행동을 추적하기 보다는 유저의 행동이 특정 조건을 만족시켰을 때 (예. 튜토리얼 완료) 어트리뷰션에 추적 이벤트를 전송하기를 권장합니다. 유저 행동 추적 이벤트를 전송하려면 Analytics API의 sendEvent()
함수를 호출하세요. sendEvent()
함수의 첫 번째 파라미터 값으로는 hive_config.xml 설정 파일에 정의한 <event>
요소의 name
속성 값을 입력하세요.
다음은 유저가 튜토리얼을 완료했다는 것을 알리기 위한 TutorialComplete 이벤트를 마케팅 어트리뷰션에 전송하는 예제 코드입니다.
API Reference: hive.Analytics.sendEvent
1 2 |
// 사용자 트래킹을 위한 이벤트 전송 Analytics.sendEvent("TutorialComplete"); |
API Reference: Analytics::sendEvent
1 2 3 |
string eventname = "TutorialComplete"; // 사용자 트래킹을 위한 이벤트 전송 Analytics::sendEvent(eventname); |
API Reference: com.hive.Analytics.sendEvent
1 2 3 4 5 6 |
String eventname = "TutorialComplete"; Analytics.sendEvent(eventname); // 사용자 트래킹을 위한 이벤트 전송 // The following is identical to the above Analytics.sendTutorialComplete(); |
API Reference: HIVEAnalytics:sendEvent
1 2 3 4 5 6 |
NSString eventname = @"TutorialComplete"; [HIVEAnalytics sendEvent:eventname]; // 사용자 트래킹을 위한 이벤트 전송 // The following is identical to the above [HIVEAnalytics sendTutorialComplete]; |
참고: 서비스별 요소 속성
Name | Description |
---|---|
name | 서드 파티 어트리뷰션 이름. 태그 이름과 동일
|
id | 서드 파티 어트리뷰션 대시보드에서 발급한 게임 AppID
예. |
key | 서드 파티 어트리뷰션 대시보드에서 발급한 게임 앱에 대한 키
예. |
secretId | Adjust에서 사용하는 특수값으로 Adjust 계약 사항 확인 필요 |
info1 | Adjust에서 사용하는 특수값으로 Adjust 계약 사항 확인 필요 |
info2 | Adjust에서 사용하는 특수값으로 Adjust 계약 사항 확인 필요 |
info3 | Adjust에서 사용하는 특수값으로 Adjust 계약 사항 확인 필요 |
info4 | Adjust에서 사용하는 특수값으로 Adjust 계약 사항 확인 필요 |
itunseConnectAppId | AppsFlyer에서 사용 (iOS) |
<event> 요소 속성
Name | Description |
---|---|
name | 서드 파티 어트리뷰션 대시보드에 등록한 추적용 이벤트 이름 예. "TutorialComplete" |
value | Hive 클라이언트에서 해당 어트리뷰션으로 전송하는 추적용 이벤트 값
예. |