Unity 플러그인 V6 연동 가이드 - 추가 SDK 연동

요약: 앱 삭제 측정, 사용자 초대 어트리뷰션, 푸시 알림 및 프라이버시 설정과 같은 API를 구현하기 위해 사용 가능한 추가 SDK 기능. 

 관련 자료

앱에 Unity 플러그인을 연동하는 방법에 대해 완전히 이해하려면 다음 문서를 읽어보십시오. 

어트리뷰션

앱 삭제 측정

다양한 소스에서 유입된 사용자의 앱 삭제 비율을 측정해보십시오.

앱 삭제 측정의 설정에 대해서는, 아래 OS별 가이드를 참조하십시오.

Android - FirebaseiOS
  1. https://firebase.google.com/docs/unity/setup 에서 유니티 Firebase SDK를 다운로드하십시오.
  2. FirebaseMessaging.unitypackage를 프로젝트에 임포트 합니다.
  3. google-services.json을 Firebase 콘솔에서 획득한 프로젝트로 임포트 합니다.

     일러두기

    유니티 Firebase SDK는 manifest 리시버를 자동으로 추가합니다.

  4. 앱스플라이어 코드를 다루는 유니티 클래스에 다음 코드를 추가합니다:
    Firebase.Messaging 사용;
    Firebase.Unity 사용;
  5. Start() 메서드에 추가합니다:
    Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
  6. 이 메서드를 추가합니다:
    public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token)
    {
    #if UNITY_ANDROID
    AppsFlyer.updateServerUninstallToken(token.Token);
    #endif
    }

 안드로이드 앱 삭제 가이드

 주의

시나리오: Unity Firebase SDK 구현. 

필요사항: 프로젝트에 Firebase 유니티 SDK를 추가한 경우, 다음 메서드 호출을 enableUninstallTracking(“SenderID”)에 추가하지 마십시오.

추가하는 경우 결과:

  • Firebase 유니티 SDK는 이전에 추가되었던 google-services.json 파일에서 sender ID를 가져옵니다.
  • 이에 따라, 안드로이드에서 디버그 경고를 발생시킬 수 있습니다.

추가 커스텀 데이터 설정

플러그인 수준에서 여러 외부 파트너 플랫폼(Segment, Adobe 및 Urban Airship 포함)과 통합하려면 setAdditionalData API를 사용해야 합니다.

오직 파트너 연동 안내 문서에서 setAdditionalData API가 필요하다고 특별히 명시된 경우에만 이 API를 사용하십시오.

예: setAdditionalData 코드

Dictionary<string, string> CustomDataMap = new Dictionary<string, string>();
CustomDataMap.Add("custom_param_1", "value_of_param_1");

AppsFlyer.setAdditionalData(CustomDataMap);

세션(Sessions)

세션 간 시간 정의

기본 설정으로는, 앱을 실행할 때의 간격이 적어도 5초 이상이 되어야 두 개의 별도 세션으로 집계합니다. 세션 사이의 최소 시간 설정 방법:

AppsFlyer.setMinTimeBetweenSessions(custom_time_ins_seconds);

주의!너무 높은 값을 세션 간격 시간으로 설정하면, 딥링킹과 같이 세션 데이터에 의존하는 API에 부정적인 영향을 줄 수 있습니다.

더 자세한 내용은 앱 세션 집계 안내를 참조하십시오.

유틸리티 앱을 위한 백그라운드 세션

유니티에서는 사용할 수 없습니다.

온드 미디어

래핑된 딥링크 URL 분석하기

일부 타사 서비스 (예: 이메일 서비스 제공 업체)들은

  • 이메일 내의 링크를 해당 회사 자체 클릭 기록 도메인으로 래핑(wrapping)합니다.
  • 또는 클릭 기록 도메인을 자체적으로 설정하는 것을 허용합니다.

만약 원링크가 이런 도메인에서 래핑된다면, 원링크의 기능이 제한될 수도 있습니다. 이를 해결하려면:

  • SDK 초기화 전에 setResolveDeepLinkURLs API를 호출하십시오.
  • 이 API는 앱을 시작하는 클릭 도메인에서 원링크를 가져옵니다.

시나리오 : 세 개의 클릭 도메인이 귀하의 원링크 https://mysubdomain.onelink.me/abCD로 리디렉션됩니다.

해결 방안:

  • setResolveDeepLinkURLs API를 사용하여, 클릭 도메인이 앱 사용자를 리다이렉션 한 후에 도달한 원링크를 가져오십시오.
  • 이 API 메서드는 플러그인에서 분석한 도메인 목록을 수신합니다.
  • 다음 코드를 사용하면 클릭 도메인을 사용하면서도 원링크 기능을 유지할 수 있습니다.

     예시

    AppsFlyer.setResolveDeepLinkURLs("example.com", "click.example.com");

이제, 원링크 데이터를 사용하여 딥링크하고 사용자 콘텐츠를 맞춤화합니다.

푸시 알림 기록하기

리타게팅 캠페인의 일부로 푸시 알림을 기록합니다.

푸시 알림을 기록하려면:

  • sendPushNotificationData 메서드를 호출합니다.
  • 이 메서드는 푸시 알림을 클릭 한 후 실행되는 모든 액티비티의 onCreate 메서드 안에 있습니다.
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyerAndroid.handlePushNotifications();
#endif

자세한 내용은 푸시 알림 측정하기 가이드를 참조하십시오.

사용자 초대 어트리뷰션

기존 앱 사용자가 친구나 아는 사람을 앱의 신규 사용자로 초대한다면, 성장에 기여할 수 있습니다.

앱 내 사용자 초대에 의해 발생한 인스톨을 어트리뷰트하고 기록합니다. 사용자 초대 어트리뷰션.

크로스 프로모션 어트리뷰션

교차 프로모션 앱은 추가 앱 설치를 유도할 수 있습니다. 

사용자가 이미 가지고 있던 우리 개발사의 앱에서 또 다른 당사 앱을 홍보하는, 크로스 프로모션 캠페인에서 발생한 설치도 어트리뷰트하고 기록할 수 있습니다. 크로스 프로모션 어트리뷰션.

사용자 식별자

앱스플라이어 ID 확보하기

각 신규 앱 인스톨에 대해 앱스플라이어 ID가 생성됩니다. 앱스플라이어 ID는 다음 목적에 이용됩니다.

  • 서버 간 인앱 이벤트 보내기.
  • 백엔드 시스템의 사용자 기록을 AppsFlyer ID와 맞추기.
  • 풀(pull) 혹은 푸시(push) API로 수신한 데이터 병합하기.

 고유한 앱스플라이어 ID를 확보하는 방법:

string AppsFlyerUID = AppsFlyer.getAppsFlyerId();

고객 사용자 ID 설정하기

서비스 자체에 고유한 고객 사용자 ID(CUID)를 설정하고, 이를 고유한 앱스플라이어 ID와 상호 참조하십시오.

고유한 고객 사용자 ID는:

  • 앱스플라이어 로데이터 CSV 보고서에 표시됩니다.
  • 포스트백 API에서 내부 ID와 상호 참조하는데 사용할 수 있습니다.

CUID를 설정하려면 다음을 사용하십시오.

AppsFlyer.setCustomerUserId("someId");

추천 항목! 고객 사용자 ID를 앱 활동 흐름 초기에 셋팅하십시오—고객 사용자 ID가 설정된 이후에만 인앱 이벤트 기록이 연결되기 때문입니다.

setCustomerUserId를 호출한 다음 startSDK를 호출

  • 그리고 기록되는 이벤트들은 고객 사용자 ID와 연결됩니다.
  • 관련된 데이터가 인스톨, 인앱 이벤트 로데이터 보고서에 표시됩니다.
AppsFlyer.setCustomerUserId("someId");

고객 사용자 ID 가져오기

자세한 내용은 고객 사용자 ID 안내를 확인하십시오.

customerUserID에 대한 플러그인 초기화 지연시키기

고객 사용자 ID(CUID)를 설정한 이후에 플러그인을 초기화하십시오. 앱 설치 및 이벤트 데이터에 고객 사용자 ID를 포함하려는 경우에 유용합니다.

관련된 OS별 안내를 참조하십시오:

  1. Android
  2. iOS

 주의

비즈니스 로직에 적합한 경우에만 고객 사용자 ID 설정을 지연하십시오. 고객 사용자 ID 설정을 지연하면, 수치 차이가 발생할 가능성이 높아지고, 앱이 fraud 시도에 노출될 수 있습니다.

OAID 수집

OAID는 어트리뷰션을 가능하게 하는 고유한 기기 식별자 중 하나입니다.

OAID를 수집하는 방법:

Unity 플러그인 V5.4 이상 Unity 플러그인 V5.3 이하

OAID는 기본적으로 자동으로 수집됩니다. 옵트아웃하려면 AppsFlyerAndroid.setCollectOaid(false);를 호출합니다.

사용자 프라이버시

옵트아웃

법률 및 개인 정보 보호 규정 준수와 같은 특정 상황에서, 모든 기록(트래킹)을 중지하는 결정을 내릴 수도 있습니다.

추천 항목! 앱과 관련된 각 상황에 맞는 정확한 지침을 따르십시오.

트래킹을 중지하려면:

  • stopSDK를 호출하고 true로 설정합니다.
    AppsFlyer.stopSDK(true);
  • 플러그인이 작동을 멈추고 더 이상 앱스플라이어 서버와 통신하지 않습니다.

트래킹을 다시 활성화하려면: stopSDK을 호출하고 false로 설정합니다.

 주의

특정 앱 사용자의 트래킹을 완전히 중지하려면 stopSDK API를 사용하십시오. 이 API를 사용하면 어트리뷰션, 데이터 수집과 딥링킹 메카니즘에 심각한 영향을 줄 수 있습니다.

사용자 데이터 익명 처리

앱스플라이어 분석에서 특정 사용자 식별자를 익명화하여 개인 정보 보호 규정과 페이스북 데이터 및 개인 정보 보호 정책을 준수합니다.

앱 사용자를 익명처리 하려면:

  1. 아래 API를 SDK 초기화 중에 설정하십시오.
  2. anonymizeUser를 호출하고 true로 설정합니다.
    AppsFlyer.anonymizeUser(true);
  3. 앱 사용자의 인스톨, 이벤트 및 세션이 익명 처리됩니다.

트래킹을 재시작하려면: anonymizeUser를 호출하고 false로 설정합니다.

 주의

사용자를 익명 처리하면 어트리뷰션 정보에 심각한 영향을 줄 수 있습니다. 사용자 정보 수집이 법적으로 금지된 지역에서만 이 옵션을 사용하십시오.

파트너사와 데이터 공유 차단하기

광고주는 특정 사용자들의 사용자 레벨 데이터를 애드 네트워크/파트너사와 공유하지 않을 경우가 있습니다. 사용자 정보를 공유하지 않는 이유는 다음과 같습니다. 

  • CCPA나 GDPR과 같은 개인정보 보호 정책 준수
  • 사용자 옵트아웃(개인정보 제 3자와의 공유 거부)
  • 파트너사(애드 네트워크, 제 3자 기업)가 경쟁사이기도 한 경우

앱스플라이어는 일부 또는 모든 파트너와 데이터 공유를 중단하는 API 메서드를 다음과 같이 두 가지 제공합니다.

  • setSharingFilter광고주가 이 메서드를 이용하여 일부(하나 이상) 애드 네트워크/연동 파트너를 데이터 공유 대상에서 제외할 수 있습니다.
  • setSharingFilterForAllPartners: 광고주가 모든 네트워크/연동 파트너와 데이터 공유를 중단할 때 사용합니다.

이 필터링 메서드는 SDK V5.4.1.에서 지원됩니다.

이 필터링 메서드는 SDK가 구동을 시작할 때마다 호출되어야 하고 전체 세션에 영향을 미칩니다. 파트너와의 데이터 공유 필터를 설정해야할지 판단하는 데 시간이 걸리면, SDK 구동 시작을 지연시키십시오. 

첫  startSDK를 호출하기 전에 메서드가 활성화된 경우:

  • SRN에서 유입된 사용자들이 오가닉으로 기록되고 사용자 정보는 연동 파트너와 공유되지 않습니다.
  • 애드 네트워크(SRN 제외) 클릭으로 유입된 사용자 는 논오가닉으로 기록되지만 사용자 정보는 포스트백, API, 로데이터 리포트 혹은 다른 어떤 방법으로도 애드 네트워크와 공유되지 않습니다.

현재 앱 삭제 데이터는 이 메서드를 이용하여 필터링할 수 없습니다. 대신, 앱스플라이어 대시보드의 설정 페이지에서 앱 삭제 이벤트를 파트너사에 전송하는 것을 중단할 수 있습니다.