# AppLovin MAX S2S Impression Revenue API
::: Tip
플랫폼 데이터 통합을 통해 생성된 데이터는 클러스터의 데이터 소비량에 포함된다는 점을 유의하십시오.
:::
# 개요
API 이름 | 통합 유형 | 데이터 세분화 | 어트리뷰션 | 비용 | 수익 | 노출 | 클릭 | 전환 |
---|---|---|---|---|---|---|---|---|
MAX S2S Impression Revenue API | 콜백 | 유저 | ✅ | ✅ |
AppLovin은 MAX S2S Impression Revenue API (opens new window)를 사용하여 콜백 데이터를 전송하는 방법을 제공하며, 수익 광고가 표시될 때마다 AppLovin은 노출 레벨의 수익 데이터를 사전 설정된 콜백 링크로 전송합니다.
# 통합 절차
- AppLovin SDK와 TE SDK에 연결한 후, AppLovin SDK에서 TE의 유저 식별 ID를 설정
- TE에 로그인한 후, 서드파티 통합 페이지에서 AppLovin MAX S2S Impression Revenue API의 통합을 설정
- AppLovin의 백엔드에 로그인한 후, 콜백을 설정
- TE 시스템이 데이터를 정상적으로 수신한 후, 리포트 구축이 완료되었는지 확인
# 클라이언트 SDK 설정
AppLovin 데이터를 통합하는 첫 번째 단계는 클라이언트에서 TE SDK와 AppLovin SDK를 연동하는 것입니다.
# 1.1 방법① (자동 통합)
- TE의 SDK 버전이 2.8.0~2.8.1인 경우, 이 방법을 직접 사용할 수 있습니다.
- TE의 SDK 버전이 2.8.2 이상인 경우, 서드파티 데이터 플러그인을 설치해야 합니다. 자세한 내용은 Android SDK와 iOS SDK를 참조하세요.
// TE SDK 초기화
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);
// AppLovinSkid 연결 설정
instance.enableThirdPartySharing(TDThirdPartyShareType. TD_APPLOVIN_IMPRESSION);
// AppLovinSdk SDK 초기화
이 솔루션의 원리는 내부에서 AppLovinSdk SDK의 setUserIdentifier()
메소드를 자동으로 호출하고, TE 프로젝트의 게스트 ID를 전달하는 것입니다.
# 1.2 방법②(수동 통합)
API에서의 데이터를 TE 프로젝트의 데이터와 연결하기 위해, AppLovin SDK에서는 TE 시스템의 게스트 ID를 AppLovin 사용자 정의 식별 ID로 지정해야 합니다. 아래는 Android와 iOS (Swift)의 코드 예시입니다:
- Android
// TE의 게스트 ID를 가져옵니다, TE에서는 #distinct_id에 해당합니다.
String ta_distinct_id = ThinkingAnalyticsAPI.GetDistinctId();
AppLovinSdk.getInstance(context).setUserIdentifier(ta_distinct_id);
- iOS
ALSdk.shared()!.userIdentifier = ThinkingAnalyticsAPI.GetDistinctId()
# TE의 서드파티 통합 설정
SDK 설정을 완료한 후, TE 시스템 백엔드에 로그인하여 '서드파티 통합' 모듈에서 AppLovin MAX S2S Impression Revenue API의 설정을 완료해야 합니다. 아래는 AppLovin의 설정 화면입니다:
# 2.1 유저 식별 및 연결
AppLovin이 사용자 레벨 데이터를 전송하기 위해, 사용자 식별 규칙을 설정해야 합니다. 즉, AppLovin이 전송하는 데이터와 #distinct_id 및 #account_id에 해당하는 필드입니다. TE 시스템은 이 설정을 기반으로 전송된 데이터를 변환할 때 이러한 필드를 데이터 내의 사용자 식별 필드로 설정합니다.
이전 가이드의 단계에서 클라이언트 SDK 설정을 진행했다면, 다음 설정을 사용하세요:
- 계정 ID 관련 필드: 없음
- 게스트 ID 관련 필드: user_id
# 2.2 이벤트 테이블 저장 설정
[이벤트 테이블]을 활성화하면, 전송된 데이터는 모두 이벤트 테이블에 기록됩니다. 이벤트 데이터 입력을 권장합니다.
# 2.3 유저 속성 저장
TE 시스템은 기본적으로 AppLovin 콜백 데이터를 유저 속성에 기록하지 않습니다. 규칙을 활성화한 후, 속성 매핑 기능을 사용하여 유저 붐에 기록하고 싶은 필드를 추가할 수 있습니다. 소스 속성 이름은 필드의 저장 이름을 입력하세요. 3.1절 (opens new window)의 내용을 참조하세요.
# 2.4 통합 구성
데이터 수집의 자세한 설정을 '통합 구성' 모듈에서 제어할 수 있습니다. 예를 들어, 데이터베이스에 저장된 후의 이벤트 이름 등입니다.
모듈 | 이름 | 의미 |
---|---|---|
sink_event | event_name | 저장 후의 이벤트 이름, 커스텀 가능 |
# 2.5 터미널 주소
터미널 주소에는 TE 시스템이 AppLovin의 콜백 데이터를 수신하는 주소가 표시됩니다. 그 주소를 직접 복사하세요. 이후 AppLovin의 콜백 설정을 진행할 때, 이 주소를 주요 반환 주소로 사용하세요.
이 주소가 표시되지 않는 경우, 우측 상단 메뉴 '프로젝트 관리' - '프로젝트 설정' - '데이터 전송 주소'로 이동하여, 공용 네트워크 주소를 설정하세요. 이 주소는 TE SDK에서 설정된 데이터 전송 대상 주소입니다. 설정 후 AppLovin 설정 화면으로 돌아가 '데이터 소스'에서 주소를 복사하세요.
# 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의 수익도 포함됩니다 | yes |
{CC} | cc | Country Code | |
{CUSTOM_DATA} | custom_data | SDK에서 설정된 커스텀 데이터 | |
{EVENT_ID} | event_id | 이벤트 고유 ID | |
{EVENT_TOKEN} | event_token | 이벤트 토큰(이벤트의 고유 ID에서 생성됨) | |
{EVENT_TOKEN_ALL} | event_token_all | 글로벌 이벤트 토큰(이벤트의 고유 ID와 모든 요청 매개변수 매크로에 의해 생성됨) | |
{FORMAT} | format | 광고 유형 | |
{IDFA} | idfa | iOS의 IDFA 또는 Android의 Google 광고 ID | |
{IDFV} | idfv | IDFV | |
{IP} | ip | 사용자의 IP | |
{NETWORK} | network | 광고가 표시된 Ad Network | |
{NETWORK_PLACEMENT} | network_placement | Ad Network의 내부 Placement 이름 | |
{PACKAGE_NAME} | package_name | 패키지 이름, Android 앱의 패키지 이름과 iOS 앱의 번들 ID(iOS) | |
{PLACEMENT} | placement | SDK 내에서 커스텀된 Placement 이름 | |
{PLATFORM} | platform | 플랫폼 | |
{PRECISION} | precision | 수익 데이터의 정확도는 데이터 소스에 따라 다릅니다: 1. publisher_defined: 발행자가 설정한 가격 1. exact: 실시간 입찰 결과 값 1. estimated: Auto CPM 또는 FB Bidding에서의 추정 값 1. undefined: 수익을 추정하기 위한 충분한 데이터가 없음 | |
{REVENUE} | revenue | 추정 수익, FB Bidding 시 그 값은 0 | yes |
{TS} | ts | 광고 노출 시간 | yes |
{USER_ID} | user_id | SDK에서 설정된 사용자 ID는 TE 프로젝트의 게스트 ID | yes |
{WATERFALL_NAME} | waterfall_name | 광고 Waterfall의 이름 |
다음은 2.5절에서 얻은 반환 URL의 전반부분, 즉 우리가 권장하는 콜백 주소입니다. '?'와 그 뒤의 부분을 터미널 URL 뒤에 추가하여, AppLovin 스태프가 URL 설정을 완료하도록 하세요(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로 사용하며, 이 필드는 TE 프로젝트 내의 게스트 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 | 비용의 통화 |
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 | 앱 이름 |