요약: 앱 삭제 측정, 사용자 초대 어트리뷰션, 푸시 알림 및 프라이버시 설정과 같은 API를 구현하기 위해 사용 가능한 추가 SDK 기능.
관련 자료
앱에 Unity 플러그인을 연동하는 방법에 대해 완전히 이해하려면 다음 문서를 읽어보십시오.
- Unity 플러그인 V6 연동 가이드 - 개요
- Unity 플러그인 V6 연동 가이드 - 기본 SDK 연동
- Unity 플러그인 V6 연동 가이드 - 추가 SDK 연동(본 기사)
- Unity 플러그인 V6 연동 가이드 - API 참조
어트리뷰션
앱 삭제 측정
다양한 소스에서 유입된 사용자의 앱 삭제 비율을 측정해보십시오.
앱 삭제 측정의 설정에 대해서는, 아래 OS별 가이드를 참조하십시오.
- https://firebase.google.com/docs/unity/setup 에서 유니티 Firebase SDK를 다운로드하십시오.
- FirebaseMessaging.unitypackage를 프로젝트에 임포트 합니다.
- google-services.json을 Firebase 콘솔에서 획득한 프로젝트로 임포트 합니다.
일러두기
유니티 Firebase SDK는 manifest 리시버를 자동으로 추가합니다.
- 앱스플라이어 코드를 다루는 유니티 클래스에 다음 코드를 추가합니다:
Firebase.Messaging 사용; Firebase.Unity 사용;
- Start() 메서드에 추가합니다:
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
- 이 메서드를 추가합니다:
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를 가져옵니다.
- 이에 따라, 안드로이드에서 디버그 경고를 발생시킬 수 있습니다.
UnityEngine.iOS.NotificationServices.deviceToken
에서 기기 토큰을 가져옵니다.
기기 토큰을 받을 때 이 메서드를 호출하십시오 (탭 콘텐트 이슈):
AppsFlyer.registerUninstall("device_push_notification_token");
예:
AppsFlyerSDK 사용;
public class AppsFlyerObjectScript : MonoBehaviour, IAppsFlyerConversionData
{
private bool tokenSent;
void Start()
{
AppsFlyer.initSDK("devKey", "appID", this);
AppsFlyer.startSDK();
#if UNITY_IOS
UnityEngine.iOS.NotificationServices.RegisterForNotifications(UnityEngine.iOS.NotificationType.Alert | UnityEngine.iOS.NotificationType.Badge | UnityEngine.iOS.NotificationType.Sound);
#endif
}
void Update()
{
#if UNITY_IOS
if (!tokenSent)
{
byte[] token = UnityEngine.iOS.NotificationServices.deviceToken;
if (token != null)
{
AppsFlyer.registerUninstall(token);
tokenSent = true;
}
}
#endif
}
}
더 자세한 내용은 앱 삭제 가이드를 참조하십시오.
추가 커스텀 데이터 설정
플러그인 수준에서 여러 외부 파트너 플랫폼(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별 안내를 참조하십시오:
주의
비즈니스 로직에 적합한 경우에만 고객 사용자 ID 설정을 지연하십시오. 고객 사용자 ID 설정을 지연하면, 수치 차이가 발생할 가능성이 높아지고, 앱이 fraud 시도에 노출될 수 있습니다.
OAID 수집
OAID는 어트리뷰션을 가능하게 하는 고유한 기기 식별자 중 하나입니다.
OAID를 수집하는 방법:
OAID는 기본적으로 자동으로 수집됩니다. 옵트아웃하려면 AppsFlyerAndroid.setCollectOaid(false);
를 호출합니다.
- MSA alliance에서 제공하는 AAR을 다운로드하십시오.
- 다운로드한 AAR를 자산/플러그인/안드로이드 폴더에 추가합니다.
- 화웨이 기기의 경우
hms-ads-identifier
라이브러리를 자산/플러그인/안드로이드 폴더에 추가합니다. - appsflyer-oaid를 프로젝트에 추가합니다. 이는 AAR를 자산/플러그인/안드로이드 폴더에 추가하거나 다음을 자산/앱스플라이어/편집기/AppsFlyerDependencies.xml에 추가하여 달성할 수 있습니다.
<androidPackage spec="com.appsflyer:oaid:5.2.0">
</androidPackage>
사용자 프라이버시
옵트아웃
법률 및 개인 정보 보호 규정 준수와 같은 특정 상황에서, 모든 기록(트래킹)을 중지하는 결정을 내릴 수도 있습니다.
추천 항목! 앱과 관련된 각 상황에 맞는 정확한 지침을 따르십시오.
트래킹을 중지하려면:
- stopSDK를 호출하고 true로 설정합니다.
AppsFlyer.stopSDK(true);
- 플러그인이 작동을 멈추고 더 이상 앱스플라이어 서버와 통신하지 않습니다.
트래킹을 다시 활성화하려면: stopSDK을 호출하고 false로 설정합니다.
주의
특정 앱 사용자의 트래킹을 완전히 중지하려면 stopSDK API를 사용하십시오. 이 API를 사용하면 어트리뷰션, 데이터 수집과 딥링킹 메카니즘에 심각한 영향을 줄 수 있습니다.
사용자 데이터 익명 처리
앱 사용자를 익명처리 하려면:
- 아래 API를 SDK 초기화 중에 설정하십시오.
anonymizeUser
를 호출하고 true로 설정합니다.
AppsFlyer.anonymizeUser(true);
- 앱 사용자의 인스톨, 이벤트 및 세션이 익명 처리됩니다.
트래킹을 재시작하려면: anonymizeUser
를 호출하고 false로 설정합니다.
주의
사용자를 익명 처리하면 어트리뷰션 정보에 심각한 영향을 줄 수 있습니다. 사용자 정보 수집이 법적으로 금지된 지역에서만 이 옵션을 사용하십시오.파트너사와 데이터 공유 차단하기
광고주는 특정 사용자들의 사용자 레벨 데이터를 애드 네트워크/파트너사와 공유하지 않을 경우가 있습니다. 사용자 정보를 공유하지 않는 이유는 다음과 같습니다.
- CCPA나 GDPR과 같은 개인정보 보호 정책 준수
- 사용자 옵트아웃(개인정보 제 3자와의 공유 거부)
- 파트너사(애드 네트워크, 제 3자 기업)가 경쟁사이기도 한 경우
앱스플라이어는 일부 또는 모든 파트너와 데이터 공유를 중단하는 API 메서드를 다음과 같이 두 가지 제공합니다.
- setSharingFilter: 광고주가 이 메서드를 이용하여 일부(하나 이상) 애드 네트워크/연동 파트너를 데이터 공유 대상에서 제외할 수 있습니다.
- setSharingFilterForAllPartners: 광고주가 모든 네트워크/연동 파트너와 데이터 공유를 중단할 때 사용합니다.
이 필터링 메서드는 SDK V5.4.1.에서 지원됩니다.
이 필터링 메서드는 SDK가 구동을 시작할 때마다 호출되어야 하고 전체 세션에 영향을 미칩니다. 파트너와의 데이터 공유 필터를 설정해야할지 판단하는 데 시간이 걸리면, SDK 구동 시작을 지연시키십시오.
첫 startSDK를 호출하기 전에 메서드가 활성화된 경우:
- SRN에서 유입된 사용자들이 오가닉으로 기록되고 사용자 정보는 연동 파트너와 공유되지 않습니다.
- 애드 네트워크(SRN 제외) 클릭으로 유입된 사용자 는 논오가닉으로 기록되지만 사용자 정보는 포스트백, API, 로데이터 리포트 혹은 다른 어떤 방법으로도 애드 네트워크와 공유되지 않습니다.
현재 앱 삭제 데이터는 이 메서드를 이용하여 필터링할 수 없습니다. 대신, 앱스플라이어 대시보드의 설정 페이지에서 앱 삭제 이벤트를 파트너사에 전송하는 것을 중단할 수 있습니다.