콘텐츠로 이동

이벤트 자동 추적

SDK는 Install, Open, Update, Purchase 4개 이벤트를 자동으로 추적해 각 어트리뷰션으로 전송합니다. 각 이벤트는 앱 설치, 앱 오픈, 앱 업데이트, 인앱 구매 이벤트입니다. 앱는 이 4개 이벤트 추적 코드를 구현할 필요가 없습니다.

Adjust 이벤트 자동 추적

  1. 필요한 토큰을 발급받으세요. 발급 방법은 Adjust 이벤트 추가를 참조하세요.

    Purchase, Update 이벤트를 자동 추적하려면 Adjust 대시보드에 이벤트를 등록하고 앱 토큰과 이벤트 토큰을 확인하세요. 앱 토큰은 대시보드 메인에서, 이벤트 토큰은 대시보드 > All Settings > Events에서 확인합니다.

    Install, Open 이벤트 자동 추적에는 토큰 발급이 필요하지 않습니다.

  2. 토큰을 hive_config.xml에 추가하세요.

    앱 토큰, Purchase 이벤트 토큰, Update 이벤트 토큰을 hive_config.xml에 추가하세요. 아래 예제 코드를 참조하세요.

    Install, Open 이벤트 자동 추적에는 hive_config.xml 설정이 필요하지 않습니다.

  3. Adjust 대시보드에서 앱 스푸핑 방지용 SDK Signature V3를 제공합니다. SDK Signature를 사용하려면 Adjust와의 계약 사항을 확인하세요.

Note

4개 이벤트 모두를 자동 추적하는 것을 권장합니다.

SDK Signature 연동

SDK Signature 구 버전을 사용했다면 서명 라이브러리를 연동하기 전에 SDK Signature 마이그레이션을 참조하세요.

SDK Signature를 처음 사용하는 경우 Android, iOS, Unity 연동 방법을 아래에서 설명합니다.

Android

Android 환경에서 SDK Signature를 사용하려면 아래와 같이 설정하세요.

  1. SDK Signature를 사용하려면 모듈 수준의 build.gradle 파일에 Adjust 어트리뷰션을 추가하세요.
dependencies {
    implementation "com.com2us.android.hive:hive-analytics-provider-adjust"
}
  1. Adjust 대시보드로 이동한 후 Adjust 허용 목록 추가를 참조해 핑거프린트를 설정하세요.

핑거프린트 추출 방법은 Adjust suite 인증서 설정을 참조하세요. 각 앱에서 사용하는 인증서 방식에 따라 추출 방법이 다릅니다.

iOS

iOS 환경에서 SDK Signature를 사용하려면 아래와 같이 PodfileProviderAdjust subspec을 추가하세요.

(생략)
pod 'HiveAnalyticsProviderAdjust', $HIVE_SDK_VERSION
(생략)

Unity

Unity 엔진에서 SDK Signature를 사용하려면 메뉴에서 설정하세요.

아래와 같이 Unity Inspector 메뉴에서 Hive - Hive Dependencies(ExternalDependency)를 선택하고 Adjust를 체크하세요. 그러면 별도 추가 설정이 필요하지 않습니다.

SDK Signature 연동 상태 확인

SDK Signature 서명 라이브러리가 정상적으로 연동되었는지 확인하려면 SDK 설정에서 zonesandbox로 설정해야 합니다. 그다음 아래 단계를 따르세요.

자세한 내용은 Adjust 허용 목록 추가를 참조하세요.

  1. 설치 정보가 전송되도록 테스트 기기에서 앱을 완전히 삭제하세요.
  2. Adjust 대시보드 테스팅 콘솔로 이동한 후 테스트 기기 정보를 입력하고 기기 삭제를 눌러 모두 삭제하세요.
  3. 테스트 기기에 앱을 설치한 다음 앱을 실행해 Adjust로 설치 정보를 전송하세요.
  4. 테스팅 콘솔에 테스트 기기의 광고 ID 또는 IDFA를 입력해 설치 이벤트 정보를 불러오세요.

SignatureVerificationResult 필드(서명 인증 결과)에는 Valid Signature 값이 표시되어야 합니다.

SignatureVersion 필드 값(서명 버전)은 3이어야 합니다.

SDK Signature 마이그레이션

최신 SDK Signature를 사용하려면 이전 SDK Signature 버전 설정을 제거해야 합니다.

Android, iOS

hive_config.xml에 있는 Adjust 관련 설정에서 secretId, info1, info2, info3, info4에 설정한 키와 값을 모두 제거하세요.

<providers>
    <!-- (코드 생략) -->

    <!-- Adjust 노드 id 필드는 설정하지 않습니다. -->
    <!-- Adjust 노드 name 필드는 "Adjust" 고정값입니다. -->
    <!-- event 노드 name 필드는 앱에서 임의로 설정합니다. -->

    <!-- 아래에서 secretId="1" info1="5432112345" info2="334123" info3="555333" info4="111333"를 모두 제거 -->
    <!-- <Adjust name="Adjust" id="unused" key="APP_TOKEN" secretId="1" info1="5432112345" info2="334123" info3="555333" info4="111333"> -->
    <Adjust name="Adjust" key="APP_TOKEN">
        <events>
            <event name="Purchase" value="PURCHASE_EVENT_TOKEN" />
            <event name="Update" value="UPDATE_EVENT_TOKEN" />
        </events>
    </Adjust>

    <!-- (코드 생략) -->
</providers>

Unity

Unity 개발 환경에서는 이전 SDK Signature 버전 설정을 제거할 필요가 없습니다.

Airbridge 이벤트 자동 추적

  1. 필요한 토큰을 발급받으세요. 발급 방법은 Airbridge를 참조하세요.

    대시보드 > 설정 > 토큰 관리에서 App SDK Token과 App Name을 발급받으세요.

  2. Android와 iOS에서는 hive_config.xml에 토큰, 앱 이름, Update 이벤트 설정을 추가하세요. 아래 hive_config.xml 예제 코드를 참조하세요.

  3. Windows에서는 hive_config.xml 설정 대신 콘솔 설정이 필요합니다. 아래 Windows 설정을 참조하세요.

  4. Windows와 Android, iOS를 함께 적용한다면 사전 설정은 Airbridge에 문의하세요.

  5. Airbridge에서는 앱 스푸핑 방지용 SDK Signature를 제공합니다. 관련 기능을 사용하려면 먼저 Airbridge와의 계약 사항을 확인하세요.

    키를 발급받아 hive_config.xmlsecretId, secret 값으로 추가하세요.

    SDK Signature 보안 정보는 Airbridge SDK Signature를 참조하세요. 이 기능은 Android와 iOS에서만 지원하며 Windows는 지원하지 않습니다.

SDK Signature 연동

SDK Signature를 처음 사용한다면 아래 안내에 따라 설정하세요.

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="Update" value="Update" />
        </events>
    </Airbridge>

    <!-- (코드 생략) -->
</providers>
<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="Install" value="Install"/>
            <event name="Update" value="Update" />
            <event name="Open" value="Open"/>
            <event name="PrePurchase" value="airbridge.initiateCheckout"/>
            <event name="PurchaseCancel" value="airbridge.ecommerce.order.canceled"/>
            <event name="Purchase" value="airbridge.ecommerce.order.completed"/>
        </events>
    </Airbridge>

    <!-- (코드 생략) -->
</providers>

Android, iOS

hive_config.xml에서 Airbridge 관련 secretId, secret 키 값을 설정하세요.

Windows

  1. 콘솔에서 마케팅 어트리뷰션 - 에어브릿지 설정을 진행하세요.

    Windows에서는 hive_config.xml에서 Airbridge 관련 secretId, secret 키를 설정할 필요가 없습니다.

  2. 아래 안내를 따라 hive_config.xml에 설정하세요. hive_config.xml 예제 코드를 참조하세요.

    Airbridge에서 정의한 value로 설정하면 Airbridge 표준 이벤트로 전송합니다. 세부 이벤트 종류는 Airbridge 이벤트 종류를 참조하세요.

    • Install 이벤트 설정 필요
    • Open 이벤트 설정 필요
    • Update 이벤트 설정 필요
    • PrePurchase 이벤트 설정 필요, 표준 이벤트 전송용 value airbridge.initiateCheckout
    • PurchaseCancel 이벤트 설정 필요, 표준 이벤트 전송용 value airbridge.ecommerce.order.canceled
    • Purchase 이벤트 설정 필요, 표준 이벤트 전송용 value airbridge.ecommerce.order.completed
  3. 선택: Airbridge 이벤트 전송 지연

    Windows 환경의 PC용 SDK는 특정 Airbridge 이벤트 전송 시점을 Sign-In 이후로 지연하는 기능을 제공합니다. 이 기능은 hive_config.xml에 관련 속성을 정의해 활성화하고 관리합니다.

    아래 예시와 같이 hive_config.xml 파일의 <Airbridge> 태그에 win: 접두사를 사용해 관련 속성을 정의합니다.

<providers>
    <!-- (코드 생략) -->
    <Airbridge
        win:DeferSendUntilGate="signin"
        win:DeferScope="include"
        win:DeferEventList="Install,Update,Open"
        win:DeferSendTimeout="86400"
        win:DeferQueueMax="1000">
        <events>
            <event name="Install" value="Install"/>
            <event name="Open" value="Open"/>
        </events>
    </Airbridge>
    <!-- (코드 생략) -->
</providers>

Airbridge 이벤트 전송 지연에 사용하는 hive_config.xml 속성은 아래와 같습니다.

속성 설명 옵션 최대값 비고
win:DeferSendUntilGate 이벤트 전송 시작 게이트(시점) 지정
  • init (default)
  • signin
이벤트가 큐에 쌓였다가 실제로 Airbridge로 전송되기 시작하는 시점을 설정합니다.
  • init: SDK 초기화 직후 전송을 시작합니다.
  • signin: 로그인(Sign-In) 이벤트 발생 이후에 전송을 시작합니다.
win:DeferScope 지연 전송할 이벤트 범위 지정
  • all
  • include
  • none (default)
지연 전송 기능을 적용할 이벤트의 범위를 설정합니다.
  • none (default): 지연 전송을 사용하지 않습니다.
  • all: 발생하는 모든 이벤트를 지정된 게이트까지 지연 전송합니다.
  • include (권장): win:DeferEventList에 지정된 이벤트만 지연 전송합니다.
win:DeferEventList 지연 전송할 이벤트 목록 win:DeferScope가 include로 설정된 경우에만 적용됩니다.
  • ','(쉼표)로 구분하여 지연 전송을 원하는 이벤트 이름을 나열합니다. 공백이 허용됩니다.
  • 예시: "Install,Update,Open"
win:DeferSendTimeout 최대 지연 시간 (초) 86400 (24시간)
  • 설정된 시간(초) 동안 DeferSendUntilGate가 미오픈될 경우, 대기 중인 이벤트를 즉시 전송합니다.
  • 설정하지 않거나 값이 0인 경우, 게이트가 오픈되기 전에는 이벤트를 전송하지 않고 무기한 대기합니다
win:DeferQueueMax 지연 이벤트 최대 저장 개수 1000
  • 지연 전송 큐에 저장할 수 있는 이벤트의 최대 개수입니다.
  • 이 개수를 초과하면 가장 오래된 이벤트부터 자동 제거됩니다.
  • 설정하지 않거나 값이 0인 경우, 최대 개수 제한은 무시됩니다.

Unity

메뉴에서 Hive - Edit Config를 선택한 후 Android 또는 iOS 탭을 활성화하세요. 그 다음, Airbridge에서 secretId, secret에서 전달받은 값을 설정하세요.

자동 이벤트 발생 시 전송 정보

아래와 같은 특정 이벤트를 진행하면 Airbridge 앱 어트리뷰션에 자동으로 이벤트를 전송합니다. 이 때 전송하는 정보는 아래와 같습니다.

EVENT NAME PARAMETER 비고
로그인 Sign-in
  • user.externalUserID: playerId
로그아웃 Sign-out
결제 시작 Initiate Checkout
  • totalQuantity
  • currency
  • originalCurrency
  • products
  • products.name: product title
  • originalCurrency: SDK에서 전송한 currency
  • currency: Airbridge 앱 설정 시 등록한 기준 통화
구매 완료 Order Complete
  • totalQuantity
  • currency
  • originalCurrency
  • value
  • transactionID
  • inAppPurchased
  • products
  • products.name: product title
  • value: sum products.price
  • originalCurrency: SDK에서 전송한 currency
  • currency: Airbridge 앱 설정 시 등록한 기준 통화
구매 취소 Order Cancel
  • transactionType
  • totalQuantity
  • currency
  • originalCurrency
  • value
  • inAppPurchased
  • products
  • transactionType: "cancel"
  • products.name: product title
  • value: sum products.price
  • originalCurrency: SDK에서 전송한 currency
  • currency: Airbridge 앱 설정 시 등록한 기준 통화
구독 Subscribe
  • totalQuantity
  • currency
  • originalCurrency
  • value
  • isRenewal
  • products
  • products.name: product title
  • value: sum products.price
  • originalCurrency: SDK에서 전송한 currency
  • currency: Airbridge 앱 설정 시 등록한 기준 통화
광고 노출 Ad Impression
  • ad_placement
  • ad_platform
  • ad_type
  • ad_unit_id
  • currency
  • eventType
  • revenue
  • Adiz, Adkit 연동 시 자동 추적
    • 업데이트 예정
광고 클릭 Ad Click
  • ad_placement
  • ad_platform
  • ad_type
  • ad_unit_id
  • currency
  • eventType
  • revenue
  • Adiz, Adkit 연동 시 자동 추적
    • 업데이트 예정
평가 Rate
  • buttontype
  • category
  • orient
  • category:
    • hive_review_click: 리뷰 UI
    • hive_native_review_request: 마켓 Native 리뷰 팝업
  • orient:
    • portrait: "1"
    • landscape: "2"
공유 Share

Singular, AppsFlyer, Firebase Analytics 이벤트 자동 추적

  1. 각 어트리뷰션 대시보드에서 키를 발급받으세요. 키 발급 방법에 대해서는 각 어트리뷰션에서 제공하는 대시보드 안내를 참고하세요.

    • Singular: 대시보드에서 SDK Key와 SDK SecretKey를 발급받으세요.
    • AppsFlyer: 대시보드 > 앱 설정에서 Dev 키를 발급받으세요.
    • Firebase Analytics: 키 발급이 필요하지 않습니다.
  2. 아래 안내를 따라 hive_config.xml에 설정하세요. 아래 예제 코드를 참고하세요.

    • Open: Firebase Analytics 어트리뷰션만 설정이 필요합니다.
    • Update: Singular, AppsFlyer, Firebase Analytics 모두 설정을 추가합니다.

    • SDK iOS(Native, Unity, 언리얼 엔진)에서 AppsFlyer 어트리뷰션을 사용할 경우, Apple AppID 설정을 위해 itunseConnectAppId 값을 설정합니다.

    <providers>
        <!-- Singular 설정하기 -->
        <!-- Singular 노드 name 필드는 "Singular" 고정값입니다. -->
        <!-- event 노드 name, value 필드는 앱에서 임의로 설정합니다. -->
        <Singular name="Singular" id="SDK_KEY" key="SDK_SECRET_KEY">
            <events>
                <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="Open" value="open"/>
                <event name="Update" value="update"/>
            </events>
        </firebase>
    </providers>
    
Note

원활한 게임 운영을 위해 Update, Open, Purchase 이벤트 모두를 자동 추적하는 것을 권장합니다.

결제 이벤트 발생 시 전송 정보

IAP로 결제를 하면 서드 파티 모바일 앱 어트리뷰션에 자동으로 결제 이벤트를 전송합니다. 이때 Adjust를 제외한 어트리뷰션은 각 어트리뷰션에서 정의한 표준 구매 이벤트로 전송합니다. 전송하는 정보는 아래와 같습니다.

EVENT NAME PARAMETER 비고
Adjust Purchase
  • price
  • currency
  • orderId
  • pid
  • title
  • serverId
  • quantity
  • revenue
  • pid: product id
  • revenue: price * quantity
Airbridge Order Complete
  • totalQuantity
  • currency
  • originalCurrency
  • value
  • transactionID
  • inAppPurchased
  • products
  • products.name: product title
  • value: sum products.price
  • originalCurrency: SDK에서 전송한 currency
  • currency: Airbridge 앱 설정 시 등록한 기준 통화
Singular __iap__
  • r
  • pk
  • pcc
  • pn
  • pc
  • pq
  • pp
  • market
  • server
  • psku
  • pvid
  • haid
  • r: revenue (price * quantity)
  • pk: order id
  • pcc: currency
  • pn: title
  • pc: Inapp_Item
  • pq: quantity
  • pp: price
  • market: google
  • server:serverId
  • psku: product id
  • pvid: Hive PlayerID
  • haid: Hive Analytics ID
AppsFlyer af_purchase
  • af_price
  • af_currency
  • af_quantity
  • af_content
  • af_receipt_id
  • custsom_product_id
  • af_content_type
  • af_revenue
  • custsom_product_id: product id
  • af_content: product description
  • af_content_type: title
  • af_revenue: price * quantity
Firebase Analytics purchase
  • price
  • currency
  • orderId
  • pid
  • title
  • serverId
  • quantity
  • revenue
  • pid: product id
  • revenue: price * quantity