AppLovin MAX S2S Impression Revenue API
서드파티 데이터 통합으로 생성된 데이터는 클러스터의 소비 데이터양에 포함됩니다
개요
인터페이스 소개
| 인터페이스명 | 타입 | 세분화 | 어트리뷰션 | 비용 | 수익 | 노출 | 클릭 | 전환 |
|---|---|---|---|---|---|---|---|---|
| MAX S2S Impression Revenue API | 콜백 | 유저 수준 | ✅ | ✅ |
AppLovin은 MAX S2S Impression Revenue API를 통해 데이터를 콜백하는 방법을 제공합니다. 수익화 광고가 표시될 때마다 AppLovin이 노출 수준의 수익 데이터를 설정된 콜백 링크로 콜백합니다.
통합 절차
- AppLovin SDK와 AE SDK를 연동하고, AppLovin SDK에 AE의 유저 식별 ID를 설정합니다
- AE 백엔드에 로그인하여 서드파티 통합 모듈로 이동한 후 AppLovin MAX S2S Impression Revenue API 계획을 추가하고 관련 설정을 완료합니다
- AppLovin 백엔드에 로그인하여 콜백 주소 설정을 완료합니다
- AE 시스템이 데이터를 정상적으로 수신했는지 확인하고 리포트를 구축합니다
1. 클라이언트 SDK 설정
AppLovin 데이터 통합의 첫 단계는 클라이언트에서 AE SDK와 AppLovin SDK를 연결하는 것입니다.
1.1 방안 1(자동 연결)
-
Android, iOS SDK를 연동한 경우
- SDK 버전이 2.8.0~2.8.1이면 이 방안을 바로 사용할 수 있습니다
- SDK 버전이 2.8.2 이상이면 서드파티 데이터 플러그인도 설치해야 합니다. 자세한 내용은 Android SDK 서드파티 데이터와 iOS SDK 서드파티 데이터를 참고하십시오
AE SDK 초기화와 자동 통합 활성화 코드는 반드시 AppLovin SDK 초기화 전에 완료해야 합니다. 다음 단계에 따라 진행하십시오:
1. AE SDK를 초기화합니다.
2. `enableThirdPartySharing`을 호출하여 게스트 ID를 자동으로 설정합니다.
3. AppLovin SDK를 초기화합니다.
다음은 각 플랫폼 SDK의 코드 예시입니다:
- Android
- iOS
// 1. Android SDK 초기화
TDConfig config = TDConfig.getInstance(this, APPID, TE_SERVER_URL);
TDAnalytics.init(config);
// 2. enableThirdPartySharing 인터페이스를 호출하여 ta_distinct_id를 applovin 이벤트에 설정
TDAnalytics.enableThirdPartySharing(TDThirdPartyType.APPLOVIN_IMPRESSION)
// 3. applovin SDK 초기화
// ...
// 1. iOS SDK 초기화
TDConfig *config = [[TDConfig alloc] init];
config.appid = appid;
config.serverUrl = url;
[TDAnalytics startAnalyticsWithConfig:config];
// 2. enableThirdPartySharing 인터페이스를 호출하여 ta_distinct_id를 applovin 이벤트에 설정
[TDAnalytics enableThirdPartySharing:TDThirdPartyTypeAppLovin];
// 3. applovin SDK 초기화
// ...
이 방안의 원리는 내부에서 AppLovinSdk SDK의 setUserIdentifier() 메서드를 자동으로 호출하여 AE 프로젝트의 게스트 ID를 전달하는 것입니다.
1.2 방안 2(수동 연결)
수동 연결 방안에서는 AppLovin에서 setUserIdentifier() 인터페이스를 사용하여 AE 프로젝트의 게스트 ID를 설정해야 합니다.
AE SDK 초기화와 setUserIdentifier 인터페이스 호출은 반드시 AppLovin SDK 초기화 전에 완료해야 합니다. 다음 단계에 따라 진행하십시오:
1. AE SDK를 초기화합니다.
2. `setUserIdentifier`를 호출하여 게스트 ID를 설정합니다.
3. AppLovin SDK를 초기화합니다.
다음은 각 플랫폼 SDK의 수동 통합 코드 예시입니다:
- Android
- iOS
- Unity
// 1. Android SDK 초기화
TDConfig config = TDConfig.getInstance(this, APPID, TE_SERVER_URL);
TDAnalytics.init(config);
// 2. AE의 게스트 ID 가져오기(AE의 #distinct_id에 해당)
String distinctId = TDAnalytics.getDistinctId();
// 3. 게스트 ID를 applovin 수집 이벤트에 설정
AppLovinSdk.getInstance(context).setUserIdentifier(distinctId);
// 4. applovin SDK 초기화
// ...
// 1. iOS SDK 초기화
TDConfig *config = [[TDConfig alloc] init];
config.appid = appid;
config.serverUrl = url;
[TDAnalytics startAnalyticsWithConfig:config];
// 2. AE의 게스트 ID 가져오기(AE의 #distinct_id에 해당)
NSString *distinctId = [TDAnalytics getDistinctId];
// 3. 게스트 ID를 applovin 수집 이벤트에 설정
[ALSdk shared].userIdentifier = distinctId;
// 4. applovin SDK 초기화
// ...
// 1. Unity SDK 초기화
TDConfig config = new TDConfig("APPID","SERVER");
TDAnalytics.Init(config);
// 2. AE의 게스트 ID 가져오기(AE의 #distinct_id에 해당)
var distinctId = TDAnalytics.GetDistinctId();
// 3. 게스트 ID를 Applovin 수집 이벤트에 설정
MaxSdk.SetUserId(distinctId);
// 4. Applovin SDK 초기화
// ...
2. 계획 설정
SDK 설정을 완료한 후에는 AE 시스템 백엔드에 로그인하여 서드파티 통합 모듈에서 AppLovin MAX S2S Impression Revenue API 설정을 완료해야 합니다. 다음은 AppLovin 설정 화면입니다:
2.1 유저 식별 필드
AppLovin이 콜백하는 데이터는 유저 수준 데이터이므로 유저 식별 규칙, 즉 AppLovin 콜백 데이터에서 #distinct_id 및 #account_id에 대응하는 필드를 설정해야 합니다. AE 시스템은 이 설정에 따라 콜백 데이터를 변환할 때 해당 필드를 데이터의 유저 식별 필드로 설정합니다.
이 문서의 이전 단계에 따라 클라이언트 SDK를 설정한 경우 다음 설정을 사용하십시오:
- 계정 ID 연관 필드: 없음
- 게스트 ID 연관 필드: user_id
2.2 이벤트 테이블 저장 설정
이벤트 테이블 저장 설정 스위치를 켜면 콜백 데이터가 모두 이벤트 테이블에 기록됩니다. 이벤트 데이터 저장을 활성화할 것을 권장합니다.
2.3 유저 속성 저장 규칙
기본적으로 AE 시스템은 AppLovin 콜백 데이터를 유저 속성에 기록하지 않습니다. 일부 필드를 유저 테이블에 기록하려면 먼저 규칙을 켜서 실행되도록 한 다음, 속성 매핑 기능으로 유저 테이블에 기록할 필드를 추가하십시오. 소스 속성명에는 필드의 저장명을 입력해야 하며, 3.1절의 내용을 참고하십시오:
2.4 통합 설정
통합 설정 모듈에서 데이터 수집의 세부 설정을 제어할 수 있습니다. 예를 들어 저장 후 이벤트 이름 등을 설정할 수 있습니다.
| 모듈 | 이름 | 의미 |
|---|---|---|
| sink_event | event_name | 저장 후 이벤트 이름, 커스텀 가능 |
2.5 엔드포인트 주소
엔드포인트 주소에는 AE 시스템이 AppLovin 콜백 데이터를 수신하는 주소가 표시됩니다. 이 주소를 그대로 복사하여 이후 AppLovin 콜백을 설정할 때 콜백의 기본 주소로 사용하십시오:
여기에 주소가 표시되지 않으면 오른쪽 상단 메뉴의 프로젝트 관리 → 프로젝트 구성 → 연동 설정에서 공용 네트워크 주소를 설정하십시오. 이 주소는 AE SDK에 설정한 데이터 수집 주소입니다. 설정한 후 AppLovin 설정 페이지의 엔드포인트 주소로 돌아와 엔드포인트 주소를 복사하십시오.
3. AppLovin 콜백 설정 완료
3.1 콜백 매크로 설정
마지막으로 콜백 주소를 설정해야 합니다. 콜백 데이터에서 수신할 수 있는 필드를 "매크로"라고 하며, 기본적으로 모든 필드를 수집하는 것(즉 모든 매크로를 설정하는 것)을 권장합니다. 다음 표는 MAX S2S Impression Revenue API가 지원하는 모든 매크로입니다:
| 매크로 | 저장명 | 설명 | 필수 여부 |
|---|---|---|---|
| {AD_UNIT_ID} | ad_unit_id | MAX 광고 ID | |
| {AD_UNIT_NAME} | ad_unit_name | MAX 광고 이름 | |
| {AD_UNIT_TEST_NAME} | ad_unit_test_name | 광고 테스트 그룹 이름 | |
| {ALL_REVENUE} | all_revenue | 예상 수익, FB Bidding 시의 수익 포함 | 예 |
| {CC} | cc | 영문 두 글자 Country Code | |
| {CUSTOM_DATA} | custom_data | SDK로 설정한 커스텀 데이터 | |
| {EVENT_ID} | event_id | 이벤트 고유 ID | |
| {EVENT_TOKEN} | event_token | 이벤트 Token(이벤트 고유 ID로 생성) | |
| {EVENT_TOKEN_ALL} | event_token_all | 전역 이벤트 Token(이벤트 고유 ID와 모든 요청 파라미터 매크로로 생성) | |
| {FORMAT} | format | 광고 유형 | |
| {IDFA} | idfa | iOS의 IDFA 또는 Android의 Google Advertising ID | |
| {IDFV} | idfv | IDFV | |
| {IP} | ip | 유저의 IP 주소 | |
| {NETWORK} | network | 광고를 표시한 Ad Network | |
| {NETWORK_PLACEMENT} | network_placement | Ad Network의 내부 Placement 이름 | |
| {PACKAGE_NAME} | package_name | 패키지명, Android의 App Package Name과 iOS의 Bundle ID (iOS) | |
| {PLACEMENT} | placement | SDK에서 정의한 커스텀 Placement 이름 | |
| {PLATFORM} | platform | 플랫폼 | |
| {PRECISION} | precision | 수익 데이터의 정밀도이며, 데이터 출처와 관련이 있습니다:
| |
| {REVENUE} | revenue | 예상 수익, FB Bidding 시 이 값은 0 | 예 |
| {TS} | ts | 광고 노출 시간 | 예 |
| {USER_ID} | user_id | SDK에서 설정한 유저 ID, AE 프로젝트의 게스트 ID에 대응 | 예 |
| {WATERFALL_NAME} | waterfall_name | 광고 Waterfall 이름 |
다음은 사용을 권장하는 콜백 매크로입니다. 앞부분은 2.5절에서 가져온 콜백 주소입니다. ? 기호와 그 뒤의 내용을 엔드포인트 주소 뒤에 추가한 후 AppLovin 담당자에게 제공하여 콜백 주소 설정을 완료하십시오(Server-to-Server Impression Revenue API를 사용하십시오):
https://{receiver-host}/attribution/callback/applovin/{app-id}?ad_unit_id={AD_UNIT_ID}&ad_unit_name={AD_UNIT_NAME}&ad_unit_test_name={AD_UNIT_TEST_NAME}&all_revenue={ALL_REVENUE}&cc={CC}&custom_data={CUSTOM_DATA}&event_id={EVENT_ID}&event_token={EVENT_TOKEN}&event_token_all={EVENT_TOKEN_ALL}&format={FORMAT}&idfa={IDFA}&idfv={IDFV}&ip={IP}&network={NETWORK}&network_placement={NETWORK_PLACEMENT}&package_name={PACKAGE_NAME}&placement={PLACEMENT}&platform={PLATFORM}&precision={PRECISION}&revenue={REVENUE}&ts={TS}&user_id={USER_ID}&waterfall_name={WATERFALL_NAME}
3.2 데이터 저장 규칙
- 데이터의 user_id를 데이터의 게스트 ID로 사용합니다. 이 필드는 AE 프로젝트의 게스트 ID와 대응해야 합니다
- 데이터의 ts 필드, 즉 광고 표시 시간을 이벤트의 #event_time으로 사용합니다
- 기본 설정을 사용하면 이벤트 이름은 -- applovin_max_s2s_impression_revenue입니다
- 콜백 링크에 설정한 기타 필드는 모두 저장됩니다
3.3 표준화 필드
다음 이벤트 속성은 표준화 처리됩니다:
| 원본 필드 | 표준화 필드 | 의미 |
|---|---|---|
| network_name | te_ads_object.media_source | 미디어 채널 |
| ad_mediation_platform | te_ads_object.media_source | 수익화 채널 |
| campaign_name | te_ads_object.campaign_name | 캠페인 이름 |
| google_ads_campaign_name | te_ads_object.campaign_name | 캠페인 이름(Google Ads 데이터만) |
| google_ads_campaign_id | te_ads_object.campaign_id | 캠페인 ID(Google Ads 데이터만) |
| adgroup_name | te_ads_object.ad_group_name | 광고 그룹 이름 |
| google_ads_adgroup_name | te_ads_object.ad_group_name | 광고 그룹 이름(Google Ads 데이터만) |
| google_ads_adgroup_id | te_ads_object.ad_group_id | 광고 그룹 ID(Google Ads 데이터만) |
| creative_name | te_ads_object.ad_name | 광고 이름 |
| google_ads_creative_id | te_ads_object.ad_id | 광고 ID(Google Ads 데이터만) |
| ad_revenue_placement | te_ads_object.placement | 수익화 광고 위치 |
| google_ads_placement | te_ads_object.placement | 광고 위치(Google Ads 데이터만) |
| cost_amount | te_ads_object.cost | 집행 비용 |
| cost_currency | te_ads_object.currency | UA 집행 통화 |
| revenue_usd | te_ads_object.revenue | 수익화 수익 |
| USD 고정값 | te_ads_object.currency | 수익화 수익의 통화 |
| country | te_ads_object.country | 국가/지역 코드 |
| os_name | te_ads_object.platform | 플랫폼(Android, iOS 등) |
| app_id | te_ads_object.app_id | 앱 ID |
| app_name | te_ads_object.app_name | 앱 이름 |

