콘텐츠로 이동

이벤트 수동 추적

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에 토큰과 앱 이름 및 이벤트 설정을 추가합니다. 아래의 hive_config.xml 예제 코드를 참고하세요. Windows 에서는 토큰과 앱 이름 설정은 필요하지 않고 Hive 콘솔 설정이 필요합니다.
    3. Airbridge에서는 앱 스푸핑 방지를 위한 SDK Signature를 제공합니다. 관련 기능을 사용하려면 우선 Airbridge와의 계약 사항을 확인해야 합니다. 키를 발급받아 hive_config.xml의 secretId, secret 값으로 추가하세요. SDK 시그니처 보안 정보에 대한 자세한 내용은 에어브릿지 가이드를 참고하세요. Android, iOS에서만 지원하며 Windows에서는 지원하지 않습니다.
    4. Windows와 Android, iOS를 함께 적용하는 경우, 사전 설정과 관련해 Airbridge에 문의하세요.
    5. Analytics API sendEvent()를 호출하여 이벤트를 전송합니다. 이벤트 전송 시 hive_config.xml에 추가한 event< 태그의 namevalue를 사용합니다. name은 API 호출 시 파라미터로 사용하며 value는 각 어트리뷰션의 대시보드에서 확인할 수 있습니다.
      • Analytics.sendEvent("TutorialComplete");
      • Analytics.sendEvent("MissionClear");

    hive_config.xml 예제 코드

    <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>
    

    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];