AppLovin 데이터 연동 솔루션
최종 업데이트 날짜: 2023-07-05
1. 통합 계획 소개
서드파티 데이터 통합으로 생성된 데이터는 클러스터의 소비 데이터양에 포함됩니다
개요
이 문서에서는 AppLovin의 데이터를 Agentic Engine(이하 AE 시스템)으로 콜백하는 방법을 소개합니다. 이 계획은 다음을 지원합니다:
제목을 클릭하면 해당 계획의 장으로 이동할 수 있습니다
| 통합 방법 | 데이터 세분화 | 통합 타입 | 포함 데이터 |
|---|---|---|---|
| Impression-Level User Revenue API | 유저 데이터 | 클라이언트 SDK | 수익 데이터, 노출 데이터 |
| MAX S2S Impression Revenue API | 유저 데이터 | 푸시 방식 | 수익 데이터, 노출 데이터 |
| User Revenue API(노출 수준) | 유저 데이터 | 풀 방식 | 수익 데이터, 노출 데이터 |
| 집계 지표 | 풀 방식 | 비용 데이터, 수익 데이터, 노출 데이터, 클릭 데이터, 전환 데이터 | |
| Revenue Reporting API | 집계 지표 | 풀 방식 | 수익 데이터, 노출 데이터 |
| 집계 지표 | 풀 방식 | 비용 데이터, 노출 데이터, 클릭 데이터, 전환 데이터 |
2. Impression-Level User Revenue API(클라이언트 SDK 전송)
인터페이스 기본 정보
| 인터페이스명 | API 타입 | 제품화 | 데이터 세분화 | 어트리뷰션 데이터 | 비용 데이터 | 수익 데이터 | 노출 데이터 | 클릭 데이터 | 전환 데이터 |
|---|---|---|---|---|---|---|---|---|---|
| Impression-Level User Revenue API | 클라이언트 SDK | 아니요 | 유저 수준 | 예 | 예 |
AppLovin SDK 버전 10.3.0부터 AppLovin SDK의 Impression-Level User Revenue API로 노출 수준의 유저 수익 데이터를 가져올 수 있습니다. 이어서 AE SDK로 데이터를 전송하여 수익 데이터를 AE 시스템에 직접 전달하면 실시간 수익 데이터 전송을 구현할 수 있습니다.
수익 데이터를 가져오려면 MaxAdRevenueListener를 생성하고 onAdRevenuePaid() 메서드를 오버라이드하여 이 메서드에서 수익 데이터 가져오기와 AE SDK의 데이터 전송을 구현한 다음, 마지막으로 이 리스너를 setRevenueListener()에 전달해야 합니다. 다음 코드 예시는 onAdRevenuePaid() 메서드를 오버라이드하여 수익 데이터를 가져오고 AE SDK를 통해 AE 서버로 업로드하는 방법을 보여 줍니다:
예시 코드 1:
연동한 AE SDK 버전이 2.8.0~2.8.1이면 이 방안을 사용하는 것을 권장합니다
연동한 AE SDK 버전이 2.8.2 이상이면 이 방안을 사용할 때 서드파티 데이터 플러그인도 설치해야 합니다
자세한 내용은 Android SDK 서드파티 데이터 및 iOS SDK 서드파티 데이터를 참고하십시오
void onAdRevenuePaid(final MaxAd ad){
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPLOVIN_USER,ad)
}
이 방안의 원리는 내부에서 MaxAd의 파라미터를 자동으로 파싱하여 appLovin_sdk_ad_revenue 이벤트를 전송하는 것입니다
예시 코드 2:
void onAdRevenuePaid(final MaxAd ad)
{
JSONObject properties = new JSONObject();
try {
properties.put("revenue",ad.getRevenue());
properties.put("countryCode",AppLovinSdk.getInstance(context).getConfiguration().getCountryCode());
properties.put("networkName", ad.getNetworkName());
properties.put("adUnitId", ad.getAdUnitId());
properties.put("adFormat", ad.getFormat());
properties.put("placement", ad.getPlacement());
}catch(JSONException e){
}
instance.track("appLovin_sdk_ad_revenue", properties);
}
3. MAX S2S Impression Revenue API
인터페이스 기본 정보
| 인터페이스명 | API 타입 | 제품화 | 데이터 세분화 | 어트리뷰션 데이터 | 비용 데이터 | 수익 데이터 | 노출 데이터 | 클릭 데이터 | 전환 데이터 |
|---|---|---|---|---|---|---|---|---|---|
| MAX S2S Impression Revenue API | 콜백 | 아니요 | 유저 수준 | 예 | 예 |
AppLovin은 MAX S2S Impression Revenue API를 통해 데이터를 콜백하는 방법을 제공합니다. 수익화 광고가 표시될 때마다 AppLovin이 노출 수준의 수익 데이터를 설정된 콜백 링크로 콜백합니다.
3.1 AppLovin 클라이언트 SDK 설정
콜백 데이터를 AE 프로젝트 데이터와 연결하려면 AppLovin SDK에 AE 시스템의 게스트 ID를 AppLovin의 유저 커스텀 식별 ID로 전달해야 합니다. 다음은 Android와 iOS(Swift)의 코드 예시입니다:
- Android 예시
// AE의 게스트 ID 가져오기(AE의 #distinct_id에 해당)
String ta_distinct_id = ThinkingAnalyticsSDK.sharedInstance(context, TA_APP_ID).getDistinctId();
AppLovinSdk.getInstance(context).setUserIdentifier(ta_distinct_id);
- iOS 예시
ALSdk.shared()!.userIdentifier = ThinkingAnalyticsSDK.sharedInstance()!.getDistinctId()
3.2 콜백 주소 설정
다음으로 콜백 주소를 설정해야 합니다. 콜백 데이터에서 수신할 수 있는 필드를 "매크로"라고 하며, 기본적으로 모든 필드를 수집합니다(즉 모든 매크로를 설정). 다음 표는 MAX S2S Impression Revenue API가 지원하는 모든 매크로이며, 실제 필요에 따라 수집할 필드를 조정할 수 있습니다:
| 매크로 | 필수 여부 | 설명 | 예시 |
|---|---|---|---|
| {AD_UNIT_ID} | MAX 광고 ID | 9ad0816ac071552a | |
| {AD_UNIT_NAME} | MAX 광고 이름 | My%20App%20Banners | |
| {AD_UNIT_TEST_NAME} | 광고 테스트 그룹 이름 | Control | |
| {ALL_REVENUE} | 예 | 예상 수익, FB Bidding 시의 수익 포함 | 0.0121, 5.74466e-05 |
| {CC} | 영문 두 글자 Country Code | gb | |
| {CUSTOM_DATA} | SDK로 설정한 커스텀 데이터 | gb | |
| {EVENT_ID} | 이벤트 고유 ID | 8dc948013d71f04264b8e5c1c61933154b226e08 | |
| {EVENT_TOKEN} | 이벤트 Token(이벤트 고유 ID로 생성) | e000949f6d851c1f34adae08e6ef1076ba43cf31 | |
| {EVENT_TOKEN_ALL} | 전역 이벤트 Token(이벤트 고유 ID와 모든 요청 파라미터 매크로로 생성) | eba615583ed59bc679a495ec58439f4b82b5460d822348eff6be5f218702a97a | |
| {FORMAT} | 광고 유형 | reward, banner, inter | |
| {IDFA} | iOS의 IDFA 또는 Android의 Google Advertising ID | 860635ea-65bc-eaed-d355-1b5283b30b94 | |
| {IDFV} | IDFV | 4CD1C3C4-3FD7-00F5-1635-7BC6D9387E60 | |
| {IP} | 유저의 IP 주소 | 162.1.1.1, fe80%3A%3A1ff%3Afe23%3A4567%3A890a%0A | |
| {NETWORK} | 광고를 표시한 Ad Network | 값 참고(MAX Mediation Documentation (applovin.com))APPLOVIN_NETWORK | |
| {NETWORK_PLACEMENT} | Ad Network의 내부 Placement 이름 | ca-app-pub-12345678%2F0987654321 | |
| {PACKAGE_NAME} | 패키지명, Android의 App Package Name과 iOS의 Bundle ID (iOS) | com.test.app | |
| {PLACEMENT} | SDK에서 정의한 커스텀 Placement 이름 | Launch%20Screen | |
| {PLATFORM} | 플랫폼 | android, ios | |
| {PRECISION} | 수익 데이터의 정밀도이며, 데이터 출처와 관련이 있습니다:
| exact | |
| {REVENUE} | 예 | 예상 수익, FB Bidding 시 이 값은 0 | 0.0121, 5.74466e-05 |
| {TS} | 예 | 광고 노출 시간 | 1546300800 |
| {USER_ID} | 예 | SDK에서 설정한 유저 ID, AE 프로젝트의 게스트 ID에 대응 | 7634657898 |
| {WATERFALL_NAME} | 광고 Waterfall 이름 | LAT |
이후 ThinkingAI 담당자가 콜백 주소를 보내 드리면, AppLovin 담당자에게 연락하여 이 콜백 링크를 설정해야 합니다.
3.3 데이터 저장 규칙
기본적으로 콜백 데이터는 이벤트 형태로 AE 프로젝트에 기록되며, 콜백 데이터 1건(즉 노출 1회)이 이벤트 데이터 1건으로 기록됩니다:
- 데이터의 {USER_ID}를 데이터의 게스트 ID로 사용하며, 이 필드는 AE 프로젝트의 게스트 ID에 대응해야 합니다
- 데이터의 {TS} 필드, 즉 광고 노출 시간을 이벤트의 #event_time으로 사용합니다
- 데이터 이벤트 이름은 applovin_max_s2s_impression_revenue입니다
- 콜백 링크에 설정한 기타 필드는 모두 저장됩니다
이후 이벤트 이름이 applovin_max_s2s_impression_revenue인 이벤트를 기반으로 AE 시스템에서 분석할 수 있습니다.
3.4 데이터 연동 설정 정보 템플릿
위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:
데이터 인터페이스: AppLovin MAX S2S Impression Revenue API
---------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
콜백 매크로 설정
필요한 필드: {AD_UNIT_ID}, {AD_UNIT_NAME}, {AD_UNIT_TEST_NAME}, {ALL_REVENUE}, {CC}, {CUSTOM_DATA}, {EVENT_ID}, {EVENT_TOKEN}, {EVENT_TOKEN_ALL}, {FORMAT}, {IDFA}, {IDFV}, {IP}, {NETWORK}, {NETWORK_PLACEMENT}, {PACKAGE_NAME}, {PLACEMENT}, {PLATFORM}, {PRECISION}, {REVENUE}, {TS}, {USER_ID}, {WATERFALL_NAME}
4. User Revenue API(노출 수준)
인터페이스 기본 정보
| 인터페이스명 | API 타입 | 제품화 | 데이터 세분화 | 어트리뷰션 데이터 | 비용 데이터 | 수익 데이터 | 노출 데이터 | 클릭 데이터 | 전환 데이터 |
|---|---|---|---|---|---|---|---|---|---|
| User Revenue API(노출 수준) | 풀 방식 | 아니요 | 유저 수준 | 예 | 예 |
AppLovin은 SDK와 콜백 링크 외에도 데이터 수집 인터페이스인 User Revenue API를 제공하며, 유저 수준 또는 노출 수준의 광고 수익 데이터를 수집할 수 있습니다.
현재 AE는 노출 수준의 데이터 수집만 지원합니다(비집계, 데이터 1건이 광고 노출 1회에 대응)
4.1 AppLovin 클라이언트 SDK 설정
방안 1(자동 연결):
연동한 AE SDK 버전이 2.8.0~2.8.1이면 이 방안을 사용하는 것을 권장합니다
연동한 AE SDK 버전이 2.8.2 이상이면 이 방안을 사용할 때 서드파티 데이터 플러그인도 설치해야 합니다
자세한 내용은 Android SDK 서드파티 데이터 및 iOS SDK 서드파티 데이터를 참고하십시오
// AE SDK 초기화
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);
// AppLovinSdk id 연결 활성화
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPLOVIN_IMPRESSION);
// AppLovinSdk SDK 초기화
이 방안의 원리는 내부에서 AppLovinSdk SDK의 setUserIdentifier() 메서드를 자동으로 호출하여 AE 프로젝트의 게스트 ID를 전달하는 것입니다.
방안 2(수동 연결):
API로 수집한 데이터를 AE 프로젝트 데이터와 연결하려면 AppLovin SDK에 AE 시스템의 게스트 ID를 AppLovin의 유저 커스텀 식별 ID로 전달해야 합니다. 다음은 Android와 iOS(Swift)의 코드 예시입니다:
- Android 예시
// AE의 게스트 ID 가져오기(AE의 #distinct_id에 해당)
String ta_distinct_id = ThinkingAnalyticsSDK.sharedInstance(context, TA_APP_ID).getDistinctId();
AppLovinSdk.getInstance(context).setUserIdentifier(ta_distinct_id);
- iOS 예시
ALSdk.shared()!.userIdentifier = ThinkingAnalyticsSDK.sharedInstance()!.getDistinctId()
4.2 인터페이스 파라미터
-
API Key:
- 리포트 수집용 API Key(즉 Report Key)를 제공해야 하며, AppLovin 백엔드의 Keys 탭에서 확인할 수 있습니다
-
플랫폼:
- 수집할 데이터의 플랫폼, 즉 Android인지 iOS인지를 별도로 지정해야 합니다
-
App:
- 어느 App의 데이터를 수집할지 지정해야 하며, Android와 iOS에서는 해당 패키지명 또는 앱 마켓 ID를 전달해야 합니다. 이 정보를 ThinkingAI 담당자에게 제공하십시오
-
시간:
- 일 단위로 데이터를 수집합니다
- 매 UTC 일의 8시에 전날(UTC 기준)의 데이터를 수집할 수 있습니다. 예를 들어 UTC 날짜 2019-01-01의 데이터는 UTC 시간 2019-01-02 08:00:00 이후에 가져올 수 있습니다
4.3 데이터 저장 규칙
기본적으로 수집한 데이터는 이벤트 형태로 AE 프로젝트에 기록되며, 데이터 1건(즉 노출 1회)이 이벤트 데이터 1건으로 기록됩니다:
- 데이터의 user_id를 데이터의 게스트 ID로 사용합니다. 이 필드는 AE 프로젝트의 게스트 ID와 대응해야 합니다
- 데이터의 date 필드, 즉 광고 표시 시간을 이벤트의 #event_time으로 사용합니다
- 데이터 이벤트 이름은 -- applovin_ad_revenue_impression_level입니다
- 그 밖의 필드는 모두 저장되며, 반환되는 모든 데이터 필드의 의미는 다음과 같습니다:
| 필드 | 설명 | 예시 |
|---|---|---|
| Ad Format | 광고 유형 | INTER, BANNER, REWARD |
| Ad Placement | SDK에서 정의한 커스텀 Placement 이름 | Launch%20Screen |
| Ad Unit ID | MAX 광고 ID | 9ad0816ac071552a |
| Ad Unit Name | MAX 광고 이름 | Control |
| Country | 영문 두 글자 Country Code | gb |
| Custom Data | SDK로 설정한 커스텀 데이터 | gb |
| Date | 광고 노출 시간 | 2019-07-29 15:53:07.39 |
| Device Type | 디바이스 타입 | PHONE, TABLET |
| IDFA | iOS의 IDFA 또는 Android의 Google Advertising ID | 860635ea-65bc-eaed-d355-1b5283b30b94 |
| IDFV | IDFV | 4CD1C3C4-3FD7-00F5-1635-7BC6D9387E60 |
| Network | 광고를 표시한 Ad Network | 값 참고(MAX Mediation Documentation (applovin.com))APPLOVIN_NETWORK |
| Placement | Ad Network의 Placement 이름 | MY_NATIVE_PLACEMENT |
| Revenue | 예상 수익, FB Bidding 값 포함 | 0.0121, 5.74466e-05 |
| User ID | SDK에서 설정한 유저 ID, AE 프로젝트의 게스트 ID에 대응 | 7634657898 |
| Waterfall | 광고 Waterfall 이름 | LAT |
4.4 데이터 연동 설정 정보 템플릿
위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:
인터페이스: User Revenue API(노출 수준)
--------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
AppLovin api_key(즉 Report Key): XXX
앱 마켓 App ID: XXX(Android는 com.으로 시작, iOS는 id로 시작)
--------
API 설정
과거 데이터 수집 기간: yyyy/mm/dd - yyyy/mm/dd
정기 수집: 매일 X시에 전날 데이터 수집(베이징 시간 16:00 이후, 즉 UTC 시간 8:00 이후 권장)
5. Basic Reporting API
인터페이스 기본 정보
| 인터페이스명 | API 타입 | 제품화 | 데이터 세분화 | 어트리뷰션 데이터 | 비용 데이터 | 수익 데이터 | 노출 데이터 | 클릭 데이터 | 전환 데이터 |
|---|---|---|---|---|---|---|---|---|---|
| Basic Reporting API | 풀 방식 | 아니요 | 집계 데이터 | 예 | 예 | 예 | 예 | 예 |
유저 단위의 수익 데이터 외에도 AppLovin은 집계 지표 API인 Basic Reporting API를 제공합니다.
5.1 리포트 타입
Basic Reporting API는 완전히 다른 두 가지 리포트, 즉 광고주 리포트(advertiser)와 퍼블리셔 리포트(publisher)를 제공합니다. 다음 절에서 두 리포트를 각각 소개합니다:
5.2 광고주 리포트(advertiser)
5.2.1 인터페이스 파라미터
- API Key:
- 리포트 수집용 API Key(즉 Report Key)를 제공해야 하며, AppLovin 백엔드의 Keys 탭에서 확인할 수 있습니다
- 시간:
- UTC 일 단위로 데이터를 수집하며, 최근 45일의 데이터만 수집할 수 있습니다
- 필터:
- 지표 타입 필드에 대한 필터링을 지원합니다. 예를 들어 클릭 수가 500보다 큰 데이터를 필터링할 수 있으며, SQL의 having 로직과 유사합니다
5.2.2 포함 필드
다음은 광고주 리포트가 반환하는 필드입니다. 실제 필요에 따라 반환할 필드를 선택할 수 있습니다
| 필드 이름 | 기본 여부 | 의미 |
|---|---|---|
| day | 예 | 리포트 날짜 |
| impressions | 예 | 노출 수 |
| clicks | 예 | 클릭 수 |
| ctr | 예 | 클릭률 |
| conversions | 예 | 전환 수(즉 설치 수) |
| conversion_rate | 예 | 전환율(설치 수 / 클릭 수) |
| average_cpa | 예 | 평균 CPA(설치) |
| average_cpc | 예 | 평균 CPC |
| ad | 예 | 광고 이름 |
| country | 예 | 영문 두 글자 Country Code |
| campaign | 예 | Campaign 이름 |
| app_id_external | 예 | 해시 처리된 앱 ID |
| external_placement_id | 인코딩된 앱 ID | |
| traffic_source | 예 | 트래픽 소스, 값은 AppLovin 또는 기타 exchange 채널 이름 |
| ad_type | 예 | 광고 유형, 값 예시: GRAPHIC, VIDEO, REWARD 또는 PLAY |
| cost | 예 | 광고 비용 |
| sales | 예 | 인앱 구매 횟수(Revenue 콜백 설정 필요) |
| first_purchase | 첫 인앱 구매 유저 수(Revenue 콜백 설정 필요) | |
| size | 예 | 광고 크기, 값 예시: INTER, BANNER, MREC, LEADER 또는 NATIVE |
| device_type | 예 | 기기 유형, 값 예시: phone, tablet 또는 other |
| platform | 예 | 기기 플랫폼, 값 예시: android, ios, fireos, tvos |
| campaign_package_name | 예 | 홍보 App의 패키지명, Android는 package name, iOS는 Bundle ID |
| campaign_store_id | 홍보 App의 앱 마켓 ID, Android는 package name, iOS는 iTunes ID의 숫자 부분 | |
| campaign_id_external | 예 | Campaign의 고유 식별자 |
| campaign_ad_type | 예 | User Acquisition Campaign이면 값은 ua, Retargeting Campaign이면 값은 rt |
| application | 홍보 App 이름 |
5.2.3 저장 규칙
기본적으로 수집한 데이터는 이벤트 형태로 AE 프로젝트에 기록됩니다:
- Basic Reporting API는 집계 데이터이므로 고정값을 유저 식별자로 사용합니다. 모든 데이터가 하나의 가상 유저에 연결되어 있다고 보면 됩니다
- 데이터의 day 필드, 즉 데이터의 날짜를 집계 데이터의 #event_time으로 설정합니다
- 데이터 이벤트 이름은 applovin_advertiser입니다
- 나머지 필드는 모두 저장됩니다
5.3 퍼블리셔 리포트(publisher)
5.3.1 인터페이스 파라미터
- API Key:
- 리포트 수집용 API Key(즉 Report Key)를 제공해야 하며, AppLovin 백엔드의 Keys 탭에서 확인할 수 있습니다
- 시간:
- UTC 일 단위로 데이터를 수집하며, 최근 45일의 데이터만 수집할 수 있습니다
- 필터:
- 지표 타입 필드에 대한 필터링을 지원합니다. 예를 들어 클릭 수가 500보다 큰 데이터를 필터링할 수 있으며, SQL의 having 로직과 유사합니다
5.3.2 포함 필드
다음은 퍼블리셔 리포트가 반환하는 필드입니다. 실제 필요에 따라 반환할 필드를 선택할 수 있습니다
| 필드 이름 | 기본 여부 | 의미 |
|---|---|---|
| day | 예 | 리포트 날짜 |
| hour | 예 | 리포트의 시간 값(최근 30일 데이터를 수집할 때만 이 필드가 존재) |
| impressions | 예 | 노출 수 |
| clicks | 예 | 클릭 수 |
| ctr | 예 | 클릭률 |
| revenue | 예 | 수익화 총수익 |
| ecpm | 예 | ECPM |
| country | 예 | 영문 두 글자 Country Code |
| ad_type | 예 | 광고 유형, 값 예시: GRAPHIC, PLAY, VIDEO, REWARD 또는 MRAID |
| size | 예 | 광고 크기, 값 예시: INTER, BANNER, MREC, LEADER 또는 NATIVE |
| device_type | 예 | 기기 유형, 값 예시: phone, tablet 또는 other |
| platform | 예 | 기기 플랫폼, 값 예시: android, ios, fireos, tvos |
| application | 예 | App 이름 |
| package_name | 예 | 홍보 App의 패키지명, Android는 package name, iOS는 Bundle ID |
| store_id | 홍보 App의 앱 마켓 ID, Android는 package name, iOS는 iTunes ID의 숫자 부분이며 가져올 수 없으면 Bundle ID 사용 | |
| placement | 예 | Placement 이름 |
| application_is_hidden | 예 | 해당 App이 AppLovin 대시보드에서 숨겨졌는지 여부 |
| zone | 예 | Zone 이름(계정에서 Zones를 활성화한 경우에만) |
| zone_id | 예 | Zone ID(계정에서 Zones를 활성화한 경우에만) |
| bidding_integration | 통합된 입찰 방식(값 예시: MAX 또는 Admob Open Bidding) |
5.3.3 저장 규칙
기본적으로 수집한 데이터는 이벤트 형태로 AE 프로젝트에 기록됩니다:
- Basic Reporting API는 집계 데이터이므로 고정값을 유저 식별자로 사용합니다. 모든 데이터가 하나의 가상 유저에 연결되어 있다고 보면 됩니다
- 데이터의 day 필드, 즉 데이터의 날짜를 집계 데이터의 #event_time으로 설정합니다
- 데이터 이벤트 이름은 applovin_publisher입니다
- 나머지 필드는 모두 저장됩니다
5.4 데이터 연동 설정 정보 템플릿
위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:
인터페이스: Basic Reporting API
--------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
AppLovin api_key(즉 Report Key): XXX
수집할 데이터 타입: [광고주/퍼블리셔]
수집할 필드: XXX, XXX
과거 데이터 수집 기간: yyyy/mm/dd - yyyy/mm/dd(최근 45일의 데이터만 수집 가능)
정기 수집: 매일 X시에 전날 데이터 수집
5.5 데이터 검증
AE 시스템 백엔드의 데이터 관리 - 이벤트 관리 페이지 또는 SQL IDE 페이지에서 다음 이벤트가 저장되었는지 검색할 수 있습니다:
- 광고주 리포트 데이터: applovin_advertiser
- 퍼블리셔 리포트 데이터: applovin_publisher
6. Revenue Reporting API
인터페이스 기본 정보
| 인터페이스명 | API 타입 | 제품화 | 데이터 세분화 | 어트리뷰션 데이터 | 비용 데이터 | 수익 데이터 | 노출 데이터 | 클릭 데이터 | 전환 데이터 |
|---|---|---|---|---|---|---|---|---|---|
| Revenue Reporting API | 풀 방식 | 아니요 | 집계 데이터 | 예 | 예 |
AppLovin은 Max 수익화 전용 집계 지표 API인 Revenue Reporting API도 제공합니다.
6.1 인터페이스 파라미터
- API Key:
- 리포트 수집용 API Key(즉 Report Key)를 제공해야 하며, AppLovin 백엔드의 Keys 탭에서 확인할 수 있습니다
- 시간:
- UTC 일 단위로 데이터를 수집하며, 최근 45일의 데이터만 수집할 수 있습니다
- 필터:
- 지표 타입 필드에 대한 필터링을 지원합니다. 예를 들어 클릭 수가 500보다 큰 데이터를 필터링할 수 있으며, SQL의 having 로직과 유사합니다
6.2 포함 필드
다음은 리포트가 반환하는 필드입니다. 실제 필요에 따라 반환할 필드를 선택할 수 있습니다
| 필드 | 기본 여부 | 설명 | 예시 |
|---|---|---|---|
| ad_format | 예 | 광고 유형 | INTER, BANNER, REWARD |
| ad_unit_waterfall_name | 예 | 광고 Waterfall 이름 | LAT |
| application | 예 | 앱 이름 | My App |
| attempts | 예 | Ad Network의 광고 요청 시도 수(그룹 수집 필드에 network 또는 network_placement가 있을 때만 사용 가능, max_placement가 있으면 사용 불가) | 41734 |
| country | 예 | 영문 두 글자 Country Code | gb |
| custom_network_name | 예 | 커스텀 광고 Ad Network 이름 | Custom Network |
| day | 예 | 광고 노출 날짜 | 2019-07-29 |
| device_type | 예 | 디바이스 타입 | PHONE, TABLET |
| ecpm | 예 | 예상 eCPM(USD) | 8.47 |
| estimated_revenue | 예 | 예상 총수익(USD) | 245.12 |
fill_rate | 예 | 광고 채움률 = 광고 응답 수 / 요청 시도 수(그룹 수집 필드에 network 또는 network_placement가 있을 때만 사용 가능, max_placement가 있으면 사용 불가) | .8512 |
has_idfa | 예 | 유저의 광고 ID를 가져올 수 있는지 여부. 유저가 LAT를 활성화했거나 GDPR 적용 지역에서 데이터 추적을 끈 경우 값은 0, 그렇지 않으면 1 | 1 |
| hour | 예 | 리포트의 시간 값(최근 30일 데이터를 수집할 때만 이 필드가 존재) | 20:00 |
| impressions | 예 | 광고 노출 수 | 28942 |
| max_ad_unit | 예 | MAX 광고 이름 | My%20App%20Banners |
| max_ad_unit_id | 예 | MAX 광고 ID | 9ad0816ac071552a |
| max_ad_unit_test | 예 | 광고 테스트 그룹 이름 | Control |
| max_placement | SDK에서 정의한 커스텀 Placement 이름 | Launch%20Screen | |
| network | 예 | 광고를 표시한 Ad Network | 값 참고(MAX Mediation Documentation (applovin.com))APPLOVIN_NETWORK |
| network_placement | 예 | Ad Network의 Placement 이름 | MY_NATIVE_PLACEMENT |
| package_name | 예 | 패키지명, Android의 App Package Name과 iOS의 Bundle ID (iOS) | com.test.app |
| platform | 예 | 플랫폼 | android, ios |
| requests | 광고 요청 수(network 또는 network_placement, max_placement가 있으면 사용 불가) | 45651 | |
| responses | 예 | 광고 응답 수(그룹 수집 필드에 network 또는 network_placement가 있을 때만 사용 가능, max_placement가 있으면 사용 불가) | 39841 |
| store_id | 홍보 App의 앱 마켓 ID, Android는 package name, iOS는 iTunes ID의 숫자 부분 | 1207472156 |
6.3 저장 규칙
기본적으로 수집한 데이터는 이벤트 형태로 AE 프로젝트에 기록됩니다:
- Revenue Reporting API는 집계 데이터이므로 고정값을 유저 식별자로 사용합니다. 모든 데이터가 하나의 가상 유저에 연결되어 있다고 보면 됩니다
- hour 필드가 없는 경우(즉 30일 이전 데이터) 데이터의 day 필드, 즉 데이터의 날짜를 집계 데이터의 #event_time으로 설정합니다. hour가 있는 경우 day와 hour 필드를 결합하여 집계 데이터의 #event_time으로 설정합니다
- 데이터 이벤트 이름은 -- applovin_maxreport입니다
- 나머지 필드는 모두 저장됩니다
6.4 데이터 연동 설정 정보 템플릿
위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:
인터페이스: Revenue Reporting API
--------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
AppLovin api_key(즉 Report Key): XXX
과거 데이터 수집 기간: yyyy/mm/dd - yyyy/mm/dd(최근 45일의 데이터만 수집 가능)
수집할 필드: XXX, XXX
정기 수집: 매일 X시에 전날 데이터 수집
7. Probabilistic Report
인터페이스 기본 정보
| 인터페이스명 | API 타입 | 제품화 | 데이터 세분화 | 어트리뷰션 데이터 | 비용 데이터 | 수익 데이터 | 노출 데이터 | 클릭 데이터 | 전환 데이터 |
|---|---|---|---|---|---|---|---|---|---|
| Probabilistic Report | 풀 방식 | 아니요 | 집계 데이터 | 예 | 예 | 예 | 예 |
Probabilistic Report는 Basic Reporting API와 유사하며, 주요 차이점은 다음과 같습니다:
- 광고주 리포트 데이터만 지원하며 퍼블리셔 리포트는 지원하지 않습니다
- 설치 및 비용 관련 지표는 모두 추정 설치 데이터를 기반으로 합니다
7.1 인터페이스 파라미터
- API Key:
- 리포트 수집용 API Key(즉 Report Key)를 제공해야 하며, AppLovin 백엔드의 Keys 탭에서 확인할 수 있습니다
- 시간:
- UTC 일 단위로 데이터를 수집하며, 최근 45일의 데이터만 수집할 수 있습니다
- 필터:
- 지표 타입 필드에 대한 필터링을 지원합니다. 예를 들어 클릭 수가 500보다 큰 데이터를 필터링할 수 있으며, SQL의 having 로직과 유사합니다
7.2 포함 필드
다음은 광고주 리포트가 반환하는 필드입니다. 실제 필요에 따라 반환할 필드를 선택할 수 있습니다
| 필드 이름 | 기본 여부 | 의미 |
|---|---|---|
| day | 예 | 리포트 날짜 |
| impressions | 예 | 노출 수 |
| clicks | 예 | 클릭 수 |
| ctr | 예 | 클릭률 |
| conversions | 예 | 전환 수(즉 설치 수) |
| conversion_rate | 예 | 전환율(설치 수 / 클릭 수) |
| average_cpa | 예 | 평균 CPA(설치) |
| average_cpc | 예 | 평균 CPC |
| ad | 예 | 광고 이름 |
| country | 예 | 영문 두 글자 Country Code |
| campaign | 예 | Campaign 이름 |
| app_id_external | 예 | 해시 처리된 앱 ID |
| external_placement_id | 인코딩된 앱 ID | |
| traffic_source | 예 | 트래픽 소스, 값은 AppLovin 또는 기타 exchange 채널 이름 |
| ad_type | 예 | 광고 유형, 값 예시: GRAPHIC, VIDEO, REWARD 또는 PLAY |
| cost | 예 | 광고 비용 |
| sales | 예 | 인앱 구매 횟수(Revenue 콜백 설정 필요) |
| first_purchase | 첫 인앱 구매 유저 수(Revenue 콜백 설정 필요) | |
| size | 예 | 광고 크기, 값 예시: INTER, BANNER, MREC, LEADER 또는 NATIVE |
| device_type | 예 | 기기 유형, 값 예시: phone, tablet 또는 other |
| platform | 예 | 기기 플랫폼, 값 예시: android, ios, fireos, tvos |
| campaign_package_name | 예 | 홍보 App의 패키지명, Android는 package name, iOS는 Bundle ID |
| campaign_store_id | 홍보 App의 앱 마켓 ID, Android는 package name, iOS는 iTunes ID의 숫자 부분 | |
| campaign_id_external | 예 | Campaign의 고유 식별자 |
| campaign_ad_type | 예 | User Acquisition Campaign이면 값은 ua, Retargeting Campaign이면 값은 rt |
| application | 홍보 App 이름 |
7.3 저장 규칙
기본적으로 수집한 데이터는 이벤트 형태로 AE 프로젝트에 기록됩니다:
- Probabilistic Report는 집계 데이터이므로 고정값을 유저 식별자로 사용합니다. 모든 데이터가 하나의 가상 유저에 연결되어 있다고 보면 됩니다
- 데이터의 day 필드, 즉 데이터의 날짜를 집계 데이터의 #event_time으로 설정합니다
- 데이터 이벤트 이름은 applovin_prob_advertiser입니다
- 나머지 필드는 모두 저장됩니다
7.4 데이터 연동 설정 정보 템플릿
위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:
인터페이스: Probabilistic Report
--------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
AppLovin api_key(즉 Report Key): XXX
수집할 필드: XXX, XXX(입력하지 않으면 기본 필드 사용)
과거 데이터 수집 기간: yyyy/mm/dd - yyyy/mm/dd(최근 45일의 데이터만 수집 가능)
정기 수집: 매일 X시에 전날 데이터 수집

