콘텐츠로 이동

이벤트 수동 추적

Hive SDK에서는 자동으로 추적하는 이벤트(Install, Open, Update, Purchase) 외에도 필요한 이벤트를 각 어트리뷰션 대시보드에 등록하여 수동으로 추적할 수 있습니다. 예를 들어 게임 튜토리얼 완료 시(TutorialComplete) 또는 특정 미션 달성 시(MissionClear)와 같이 특정한 상황을 추적할 수 있습니다. 이벤트 수동 추적은 이벤트 자동 추적 설정을 완료한 다음에 진행해야 합니다.

Adjust로 이벤트 수동으로 추적하기

  1. 원하는 커스텀 이벤트를 Adjust 대시보드에 등록하고 앱 토큰과 이벤트 토큰을 얻어야 합니다. 앱 토큰은 대시보드 메인에서, 이벤트 토큰은 대시보드 > All Settings > Events에서 확인합니다. 토큰 발급 방법에 대해서는 Adjust에서 제공하는 대시보드 안내를 참고하세요.
  2. 앱 토큰과 이벤트 토큰을 hive_config.xml에 추가합니다. 아래 예제 코드를 참고하세요.
  3. Adjust 대시보드에서는 앱 스푸핑 방지를 위한 SDK Signature 기능을 제공합니다. 관련 기능을 사용하려면 Adjust와의 계약 사항을 확인해야 합니다. 관련 기능을 사용하려면 키를 발급받아 hive_config.xml의 secretId, info1, info2, info3, info4에 추가하세요.
<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");
  • Airbridge로 이벤트 수동으로 추적하기

    1. 필요한 토큰을 발급받습니다. 토큰 발급 방법에 대해서는 Airbridge에서 제공하는 대시보드 안내를 참고하세요.
      • 대시보드 > 설정 > 토큰 관리 에서 App SDK Token 과 App Name을 받습니다.
    2. 토큰과 앱 이름 및 이벤트 설정을 아래 안내에 따라 hive_config.xml에 추가합니다. 아래 예제 코드를 참고하세요.
    3. Airbridge에서는 앱 스푸핑 방지를 위한 SDK Signature를 제공합니다. 관련 기능을 사용하려면 Airbridge와의 계약 사항을 확인해야 합니다. 관련 기능을 사용하려면 키를 발급받아 hive_config.xml의 secretId, secret에 추가하세요. SDK 시그니처 보안 정보에 대한 자세한 내용은 에어브릿지 가이드를 참고해 주세요.
    4.    <providers>
                 <!-- (코드 생략) -->
                 <!-- Airbridge 설정하기 -->
                 <!--Airbridge 노드 name 필드는 "Airbridge" 고정값입니다. -->
                 <!--Airbridge 노드 id 필드는 설정하지 않습니다. -->
                 <!-- event 노드 name, value 필드는 게임사에서 임의로 설정합니다. -->
                 <Airbridge name="Airbridge" key="APP_SDK_TOKEN" appName="APP_NAME" secretId="SECRET_ID" secret="SECRET">
                         <events>
                                 <event name="TutorialComplete" value="Tutorial Complete" />
                                 <event name="MissionClear" value="Mission Clear" />
                         </events>
                 </Airbridge>
                 <!-- (코드 생략) -->
         </providers>
      
    5. Analytics API sendEvent()를 호출하여 이벤트를 전송합니다. 이벤트 전송 시 hive_config.xml에 추가한 `event name`을 사용합니다. `name`은 API 호출 시 파라미터로 사용하며 `value`는 각 어트리뷰션의 대시보드에서 확인할 수 있습니다.
      • Analytics.sendEvent("TutorialComplete");
      • Analytics.sendEvent("MissionClear");

    Singular, Appsflyer, Firebase Analytics로 이벤트 수동으로 추적하기

    1. 각 어트리뷰션 대시보드에서 키를 발급받습니다. 키 발급 방법에 대해서는 각 어트리뷰션에서 제공하는 대시보드 안내를 참고하세요.
      • Singular: 대시보드에서 SDK Key와 SDK SecretKey를 받습니다.
      • Appsflyer: 대시보드 > 앱 설정에서 Dev 키를 받습니다.
      • Firebase Analytics: 키 발급이 필요하지 않습니다.
    2. 아래 안내를 따라 hive_config.xml에 설정합니다. 아래 예제 코드를 참고하세요. Hive SDK iOS(Native, Unity, Unreal)에서 AppsFlyer 어트리뷰션을 사용할 경우, Apple AppID 설정을 위해 `itunseConnectAppId` 값을 설정합니다.
        <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>
      
    3. Analytics API sendEvent()를 호출하여 이벤트를 전송합니다. 이벤트 전송 시 hive_config.xml에 추가한 event name을 사용합니다. name은 API 호출 시 파라미터로 사용하며 value는 각 어트리뷰션의 대시보드에서 확인할 수 있습니다.
      • Analytics.sendEvent("TutorialComplete");
      • Analytics.sendEvent("MissionClear");

    sendEvent()로 이벤트 전송하기

    유저의 행동을 추적할 때 모든 행동을 추적하기 보다는 유저의 행동이 특정 조건을 만족시켰을 때 (예. 튜토리얼 완료) 어트리뷰션에 추적 이벤트를 전송하기를 권장합니다. 유저 행동 추적 이벤트를 전송하려면 Analytics APIsendEvent() 함수를 호출하세요. sendEvent() 함수의 첫 번째 파라미터 값으로는 hive_config.xml 설정 파일에 정의한 <event> 요소의 name 속성 값을 입력하세요.

    다음은 유저가 튜토리얼을 완료했다는 것을 알리기 위한 TutorialComplete 이벤트를 마케팅 어트리뷰션에 전송하는 예제 코드입니다.

    API Reference: hive.Analytics.sendEvent

    using hive;    
        String eventName = "TutorialComplete";    
    Analytics.sendEvent(eventName);
    
    #include "HiveAnalytics.h"
    
    FString EventName = TEXT("TutorialComplete");
    FHiveAnalytics::SendEvent(EventName);
    

    API Reference: Analytics::sendEvent

    #include <HIVE_SDK_Plugin/HIVE_CPP.h>    
        using namespace std;    
        using namespace hive;    
        string eventName = "TutorialComplete";    
    Analytics::sendEvent(eventName);
    

    API Reference: Analytics.sendEvent

    import com.hive.Analytics    
        val eventName = "TutorialComplete"    
    Analytics.sendEvent(eventName)
    

    API Reference: AnalyticsInterface .sendEvent

    import HIVEService    
        let eventName = "TutorialComplete"    
    AnalyticsInterface.sendEvent(eventName)
    

    API Reference: HIVEAnalytics:sendEvent

    #import <HIVEService/HIVEService-Swift.h>    
        NSString eventName = @"TutorialComplete";    
    [HIVEAnalytics sendEvent: eventName];