Google AdMob 통합 계획
서드파티 데이터 통합으로 생성된 데이터는 클러스터의 소비 데이터양에 포함됩니다
개요
인터페이스 소개
| 인터페이스명 | 타입 | 세분화 | 어트리뷰션 | 비용 | 수익 | 노출 | 클릭 | 전환 |
|---|---|---|---|---|---|---|---|---|
| Reporting API | API | 집계 지표 | ✅ | ✅ | ✅ |
Google AdMob Reporting API 인터페이스는 집계된 수익화 광고 데이터를 반환하며, 수익화 광고의 노출, 클릭, 수익 데이터를 포함합니다
통합 절차
- AdMob 계정에 로그인하여 Publisher ID를 가져옵니다
- Google Cloud Platform 백엔드에 로그인하여 AdMob API 권한이 있는 프로젝트를 생성하고 Client ID와 Client Secret을 생성합니다
- AE 백엔드에 로그인하여 서드파티 통합 모듈로 이동한 후 Google AdMob 계획을 추가하고 관련 설정을 완료합니다
- 이전에 생성한 GCP 백엔드 프로젝트로 돌아가 올바른 콜백 주소를 설정하고 인증 작업을 완료합니다
- AE 시스템이 데이터를 정상적으로 수신했는지 확인하고 리포트를 구축합니다
1. 통합 전 준비 작업
1.1 Publisher ID 가져오기
AdMob 백엔드에 로그인하여 아래 그림의 경로에서 Publisher ID를 가져옵니다
1.2 Google Cloud Platform에서 프로젝트 생성
다음으로 Google Cloud Platform 프로젝트를 생성해야 합니다. GCP 프로젝트를 생성한 적이 없다면 Google Cloud Platform에 로그인하여 CREATE PROJECT를 클릭해 프로젝트를 생성합니다. 이미 프로젝트를 생성했다면 이 단계를 건너뛸 수 있습니다.
1.3 AdMob API 활성화
다음으로 AdMob API 권한을 활성화해야 합니다. GCP 프로젝트에서 상단 검색창에 AdMob API를 검색하여 소개 페이지로 이동합니다. 아래 그림에 표시된 영역에 ENABLE이 표시되면 프로젝트에서 AdMob API 권한이 활성화되지 않은 것이므로 ENABLE을 클릭하여 권한을 활성화하십시오.
1.4 Oauth consent screen 설정
AdMob API 권한을 활성화하면 다음 페이지로 이동합니다. 이 페이지로 이동하지 않았다면 페이지 왼쪽 상단의 메뉴에서 APIs & Services - Enabled APIs & services를 찾고, API 리스트에서 AdMob API를 찾아 클릭하여 설정 페이지로 이동할 수도 있습니다.
- 리스트에서 AdMob API를 찾아 클릭해도 아래 그림의 페이지로 이동할 수 있습니다. 아래 그림의 화살표에 따라 Oauth consent screen을 설정합니다.
- 다음으로 User Type에서 External을 선택하고 CREATE를 선택하여 다음 단계로 이동합니다:
- * 표시가 있는 항목을 설정한 후(이메일은 Google 계정 이메일을 사용하면 됩니다) SAVE AND CONTINUE를 클릭합니다
- Scopes 탭에서 ADD OR REMOVE SCOPES를 선택하고 AdMob API의 scopes 중 admob.readonly를 선택한 후 UPDATE를 클릭하여 확인하고, SAVE AND CONTINUE를 클릭하여 계속합니다
- 다음으로 Test users 탭에서 ADD USERS를 클릭하여 AdMob 백엔드에 로그인하는 Google 계정의 이메일을 테스트 유저로 추가합니다. 추가를 완료한 후 SAVE AND CONTINUE를 클릭하여 계속합니다
- 마지막 Summary 탭에는 이전에 설정한 내용이 표시되며, 그대로 확인하면 Oauth consent screen 설정이 완료됩니다
1.5 Client ID와 Client Secret 생성
Oauth consent screen 설정을 마친 후 AdMob API로 다시 돌아가 Client ID와 Client Secret을 생성합니다
이 페이지를 찾을 수 없다면 왼쪽 상단의 메뉴에서 APIs & Services - Enabled APIs & services를 찾고, API 리스트에서 AdMob API를 찾아 클릭하여 설정 페이지로 이동하십시오.
- CREDENTIALS 탭에서 + CREATE CREDENTIALS를 클릭하고 Help me choose를 선택하여 Client ID와 Client Secret 생성 절차로 이동합니다.
- Credential Type 페이지에서 AdMob API, User Data를 차례로 선택하고 NEXT를 클릭합니다
- Oauth consent screen을 생성할 때 이미 Scopes 설정을 완료했으므로 여기서는 바로 SAVE AND CONTINUE를 클릭하여 계속하면 됩니다
- 다음으로 Application type에서 Web application을 선택합니다. Authorized redirect URIs의 빨간색 상자로 표시된 곳에 콜백 주소를 설정해야 합니다. 아직 AE 시스템에서 계획을 생성하지 않았으므로 인증 주소에는 우선 www.thinkingdata.cn을 입력하고, 계획 생성을 마친 후 정식 콜백 주소로 수정합니다.
- 모든 설정을 마친 후 CREATE를 클릭하여 자격 증명을 생성합니다. 생성이 완료되면 페이지에 Client ID와 Client Secret이 표시되므로 이 두 정보를 안전하게 보관하십시오
- 마지막으로 OAuth consent screen으로 이동하여 Publishing status 항목에서 PUBLISH APP을 클릭하여 앱을 정식 버전으로 게시합니다
1.6 요약
이 장에서는 통합 전에 Google 플랫폼에서 완료해야 하는 작업을 소개했습니다. 현재 다음 정보를 얻었는지 확인하십시오:
- AdMob의 Publisher ID
- AdMob API가 활성화된 GCP 프로젝트, 그리고 해당 프로젝트의 Client ID와 Client Secret
2. 계획 설정
Google 플랫폼에서 준비 작업을 마친 후 AE 시스템에 로그인하여 서드파티 통합 모듈에서 새 계획을 설정할 수 있습니다. 아래 그림은 Google AdMob의 설정 화면입니다. 이 장의 내용에 따라 계획을 생성하십시오
2.1 인증 정보 설정
인증 정보 아래의 인증 정보 설정 버튼을 클릭하고 팝업 창에 이전 단계에서 얻은 정보를 입력합니다:
2.2 동기화
동기화 모듈에서 AE 시스템이 Google AdMob 데이터를 정기적으로 수집하는 정책을 설정할 수 있으며, 매일 특정 시각에 일정 기간의 데이터를 수집하도록 선택할 수 있습니다. 수집한 데이터도 데이터양에 포함되므로 너무 긴 기간의 데이터를 정기적으로 수집하지 않는 것을 권장합니다
2.3 저장 설정
데이터를 이벤트 형태로 기록할지 제어할 수 있습니다. 끄면 데이터가 이벤트 테이블에 기록되지 않으므로 이 설정을 끄지 마십시오.
2.4 통합 설정
마지막으로 통합 설정 모듈에서 데이터 수집의 세부 설정을 제어할 수 있습니다. 데이터의 시간 집계 단위, 수집할 지표 필드와 차원, 저장 후 이벤트 이름 등이 포함됩니다.
통합 설정의 내용은 JSON이며, 다음 내용에 따라 커스텀 설정할 수 있습니다:
| 모듈 | 이름 | 의미 |
|---|---|---|
| sink_event | event_mapping | 저장 후 이벤트 이름, 커스텀 가능, JSON 타입. Key는 source.report_types에 대응하고, Value는 해당 리포트 타입의 저장 이벤트 이름입니다. |
| source | report_types | 수집할 리포트 타입. AdMob Reporting API는 두 가지 리포트 타입을 지원합니다. 리스트 타입이며, 요소를 하나만 입력하여 한 번에 하나의 리포트 데이터만 수집하는 것을 권장합니다 선택 가능한 값: network_report, mediation_report. 자세한 내용은 아래 내용을 참고하십시오 |
| metrics | 데이터의 지표, 리스트 타입. 리포트 타입마다 지원하는 metrics가 다르므로 입력 시 주의 필요 | |
| group_by | 데이터의 그룹 차원, 리스트 타입. 리포트 타입마다 지원하는 group_by가 다르므로 입력 시 주의 필요 |
리포트 타입마다 데이터 설정이 크게 다르므로 각 계층의 구성 템플릿을 그대로 사용하거나 템플릿을 약간 조정하여 사용하는 것을 권장합니다
2.4.1 Network Report 템플릿
Network Report에는 AdMob 수익화 광고 데이터만 포함됩니다. 다음은 이 인터페이스의 템플릿이며, 전체를 그대로 통합 설정에 복사할 수 있습니다. 조정이 필요하면 이 절의 내용을 참고하십시오:
{
"sink_event": {
"event_mapping": {
"network_report": "admob_network_report",
"mediation_report": "admob_mediation_report"
}
},
"source": {
"report_types": [
"network_report"
],
"metrics": [
"AD_REQUESTS",
"CLICKS",
"ESTIMATED_EARNINGS",
"IMPRESSIONS",
"IMPRESSION_CTR",
"IMPRESSION_RPM",
"MATCHED_REQUESTS",
"MATCH_RATE",
"SHOW_RATE"
],
"group_by": [
"DATE",
"AD_UNIT",
"APP",
"COUNTRY",
"FORMAT",
"PLATFORM",
"MOBILE_OS_VERSION",
"GMA_SDK_VERSION",
"APP_VERSION_NAME",
"SERVING_RESTRICTION"
]
}
}
- 포함 지표
AdMob API의 Network Report 데이터에서는 다음 지표를 가져올 수 있으며, 기본적으로 모든 지표를 저장합니다. 조정하려면 지표명을 source.metrics에 추가하십시오:
| 지표 | 이름 | 비고 |
|---|---|---|
| AD_REQUESTS | 광고 요청 수 | 분석 차원 AD_TYPE과 호환되지 않음 |
| CLICKS | 광고 클릭 수 | |
| ESTIMATED_EARNINGS | 예상 수익 | 예상 총수익. 이 값은 1000000배로 확대되어 있으므로(예: $6.50의 값은 6500000) 사용할 때 1000000으로 나누어야 함 |
| IMPRESSIONS | 광고 노출 수 | 총 노출 수 |
| IMPRESSION_CTR | 클릭률 | |
IMPRESSION_RPM | 1000회 노출당 광고 수익 | 예상 1000회 노출당 광고 수익으로, 백엔드의 eCPM에 해당. 이 값은 1000000배로 확대되어 있으므로(예: $1.03의 값은 1030000) 사용할 때 1000000으로 나누어야 함, 분석 차원 AD_TYPE과 호환되지 않음 |
| MATCHED_REQUESTS | 광고 요청 성공 수 | 광고를 요청한 후 응답을 받은 횟수 |
| MATCH_RATE | 요청 성공률 | 광고 요청 성공 수 / 광고 요청 수와 같음, 분석 차원 AD_TYPE과 호환되지 않음 |
| SHOW_RATE | 광고 노출률 | 광고 노출 수 / 광고 요청 성공 수와 같음 |
- 분석 차원
다음은 AdMob API의 Network Report 데이터의 분석 차원입니다. 조정하려면 차원 이름을 source.group_by에 추가하십시오:
| 차원 | 의미 | 설명 | 기본 여부 |
|---|---|---|---|
| DATE | 일별 그룹화 | YYYYMMDD 형식(예: "20210701")으로 시간 그룹화, 시간 차원이 최소 1개 필요 | 예 |
| MONTH | 월별 그룹화 | YYYYMM 형식(예: "202107")으로 시간 그룹화, 시간 차원이 최소 1개 필요 | |
| WEEK | 주별 그룹화 | 한 주의 첫날 기준 YYYYMMDD 형식(예: "20210701")으로 시간 그룹화, 시간 차원이 최소 1개 필요 | |
| AD_UNIT | ad unit별 그룹화 | ad unit의 unique ID(예: "ca-app-pub-1234/1234"), 이 차원을 사용하면 APP 차원이 자동으로 추가됨 | 예 |
| APP | 앱별 그룹화 | 앱 ID(예: "ca-app-pub-1234~1234") | 예 |
| AD_TYPE | 광고 타입별 그룹화 | 값 예: "text" or "image", 지표 AD_REQUESTS, MATCH_RATE, IMPRESSION_RPM과 호환되지 않으므로 주의 | |
| COUNTRY | 국가(지역)별 그룹화 | Unicode CLDR 규격의 국가(지역) 코드(예: "US", "FR") | 예 |
| FORMAT | 광고 단위 타입별 그룹화 | ad unit의 타입(예: "banner", "native") | 예 |
| PLATFORM | 플랫폼별 그룹화 | 값 예: "Android", "iOS" | 예 |
| MOBILE_OS_VERSION | OS 버전별 그룹화 | 값 예: "iOS 13.5.1" | 예 |
| GMA_SDK_VERSION | GoogleMobileAds SDK 버전별 그룹화 | 값 예: "iOS 7.62.0". | 예 |
| APP_VERSION_NAME | APP 버전별 그룹화 | Android는 PackageInfo의 versionName, iOS는 CFBundleShortVersionString의 app version name 사용 | 예 |
| SERVING_RESTRICTION | 광고 게재 제한 모드별 그룹화 | 값 예: "Non-personalized ads" | 예 |
- 저장 규칙
템플릿은 데이터의 DATE 필드, 즉 일 단위로 집계된 시간을 0으로 채운 후 해당 데이터의 #event_time으로 사용합니다
템플릿에서 사용하는 이벤트 이름은 -- admob_network_report입니다
2.4.2 Mediation Report 템플릿
Mediation Report에는 AdMob 수익화 광고와 기타 서드파티 플랫폼의 광고 데이터가 포함됩니다. 다음은 이 인터페이스의 템플릿이며, 전체를 그대로 통합 설정에 복사할 수 있습니다. 조정이 필요하면 이 절의 내용을 참고하십시오:
{
"sink_event": {
"event_mapping": {
"network_report": "admob_network_report",
"mediation_report": "admob_mediation_report"
}
},
"source": {
"report_types": [
"mediation_report"
],
"metrics": [
"AD_REQUESTS",
"CLICKS",
"ESTIMATED_EARNINGS",
"IMPRESSIONS",
"IMPRESSION_CTR",
"MATCHED_REQUESTS",
"MATCH_RATE",
"OBSERVED_ECPM"
],
"group_by": [
"DATE",
"AD_SOURCE",
"AD_SOURCE_INSTANCE",
"AD_UNIT",
"APP",
"MEDIATION_GROUP",
"COUNTRY",
"FORMAT",
"PLATFORM"
]
}
}
- 포함 지표
AdMob API의 Mediation Report 데이터에서는 다음 지표를 가져올 수 있으며, 기본적으로 모든 지표를 저장합니다. 조정하려면 지표명을 source.metrics에 추가하십시오:
| 지표 | 이름 | 설명 및 비고 |
|---|---|---|
| AD_REQUESTS | 광고 요청 수 | |
| CLICKS | 광고 클릭 수 | |
ESTIMATED_EARNINGS | 예상 수익 | AdMob 예상 총수익. 이 값은 1000000배로 확대되어 있으므로(예: $6.50의 값은 6500000) 사용할 때 1000000으로 나누어야 함 |
| IMPRESSIONS | 광고 노출 수 | 총 노출 수 |
| IMPRESSION_CTR | 클릭률 | |
| MATCHED_REQUESTS | 광고 요청 성공 수 | 광고를 요청한 후 응답을 받은 횟수 |
| MATCH_RATE | 요청 성공률 | 광고 요청 성공 수 / 광고 요청 수와 같음 |
| OBSERVED_ECPM | 예상 eCPM | 서드파티 플랫폼의 예상 eCPM 값(서드파티 데이터 권한 문제로 현재 이 값은 0일 수 있음) |
- 분석 차원
다음은 AdMob API의 Mediation Report 데이터의 분석 차원입니다. 조정하려면 차원 이름을 source.group_by에 추가하십시오:
| 차원 | 의미 | 설명 | 기본 여부 |
|---|---|---|---|
| DATE | 일별 그룹화 | YYYYMMDD 형식(예: "20210701")으로 시간 그룹화, 시간 차원이 최소 1개 필요하며 기본적으로 DATE를 시간 그룹으로 사용 | 예 |
| MONTH | 월별 그룹화 | YYYYMM 형식(예: "202107")으로 시간 그룹화, 시간 차원이 최소 1개 필요 | |
| WEEK | 주별 그룹화 | 한 주의 첫날 기준 YYYYMMDD 형식(예: "20210701")으로 시간 그룹화, 시간 차원이 최소 1개 필요 | |
| AD_SOURCE | 미디어 채널별 그룹화 | 미디어 채널 ID와 채널명으로 그룹화 | 예 |
| AD_SOURCE_INSTANCE | 미디어 채널 인스턴스별 그룹화 | 미디어 채널 인스턴스 ID와 미디어 채널 인스턴스 이름으로 그룹화 | 예 |
| AD_UNIT | ad unit별 그룹화 | ad unit의 unique ID(예: "ca-app-pub-1234/1234"), 이 차원을 사용하면 APP 차원이 자동으로 추가됨 | 예 |
| APP | 앱별 그룹화 | 앱 ID(예: "ca-app-pub-1234~1234") | 예 |
| MEDIATION_GROUP | 미디에이션 그룹별 그룹화 | 미디에이션 그룹 ID와 미디에이션 그룹 이름으로 그룹화 | 예 |
| COUNTRY | 국가(지역)별 그룹화 | Unicode CLDR 규격의 국가(지역) 코드(예: "US", "FR") | 예 |
| FORMAT | 광고 단위 타입별 그룹화 | ad unit의 타입(예: "banner", "native") | 예 |
| PLATFORM | 플랫폼별 그룹화 | 값 예: "Android", "iOS" | 예 |
| MOBILE_OS_VERSION | OS 버전별 그룹화 | 값 예: "iOS 13.5.1", 지표 ESTIMATED_EARNINGS, OBSERVED_ECPM과 호환되지 않으므로 주의 | |
| GMA_SDK_VERSION | GoogleMobileAds SDK 버전별 그룹화 | 값 예: "iOS 7.62.0", 지표 ESTIMATED_EARNINGS, OBSERVED_ECPM과 호환되지 않으므로 주의 | |
| APP_VERSION_NAME | APP 버전별 그룹화 | Android는 PackageInfo의 versionName, iOS는 CFBundleShortVersionString의 app version name 사용, 지표 ESTIMATED_EARNINGS, OBSERVED_ECPM과 호환되지 않으므로 주의 | |
| SERVING_RESTRICTION | 광고 게재 제한 모드별 그룹화 | 값 예: "Non-personalized ads", 지표 ESTIMATED_EARNINGS와 호환되지 않으므로 주의 |
- 저장 규칙
템플릿은 데이터의 DATE 필드, 즉 일 단위로 집계된 시간을 0으로 채운 후 해당 데이터의 #event_time으로 사용합니다
템플릿에서 사용하는 이벤트 이름은 -- admob_mediation_report입니다
2.4.3 App ID로 필터링
지정한 앱의 데이터만 수집하려면 통합 설정의 extra_params.dimension_filters에서 App ID로 필터링할 수 있습니다. 이 설정은 APP 차원을 사용하므로 예시의 App ID를 실제 값으로 바꾸십시오:
{
"extra_params": {
"dimension_filters": [
{
"dimension": "APP",
"matches_any": {
"values": [
"ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX"
]
}
}
]
}
}
2.4.4 수익 통화 설정
AdMob 수익 관련 지표를 지정한 통화로 가져오려면 통합 설정의 extra_params.localization_settings에서 currency_code를 설정할 수 있습니다. 이 설정은 Network Report와 Mediation Report에 모두 적용됩니다:
{
"extra_params": {
"localization_settings": {
"currency_code": "JPY",
"language_code": "en-US"
}
}
}
currency_code는 ISO 4217 세 글자 통화 코드를 사용합니다(예:JPY,USD). 설정하지 않으면 기본값으로USD를 사용하며, 유효하지 않은 코드를 사용하면 파라미터 유효성 검사에 실패합니다.language_code는 리포트 언어를 설정하는 데 사용하며, 설정하지 않으면 기본값으로en-US를 사용합니다. 일본어가 필요하면ja-JP로 설정할 수 있습니다. 통화 코드JPY를 이 필드에 입력하지 마십시오.- 설정이 적용되면 이후 수집하는 데이터의 수익 통화는 표준화 필드
te_ads_object.currency와 일치합니다. 이미 저장된 과거 데이터는 변경되지 않습니다.
2.5 표준화 필드
데이터에 다음 이벤트 속성이 있으면 자동으로 표준화 처리합니다:
| 원본 필드 | 표준화 필드 | 의미 |
|---|---|---|
| publisher_id | te_ads_object.ad_account_id | 광고 계정 ID |
| ad_unit | te_ads_object.ad_group_id | 광고 그룹 ID |
| ad_source | te_ads_object.media_source | 미디어 채널 또는 수익화 채널 |
| app | te_ads_object.app_id | 앱 ID |
| platform | te_ads_object.platform | 플랫폼(Android, iOS 등) |
| country | te_ads_object.country | 국가/지역 코드 |
| localization_settings_currency_code | te_ads_object.currency | 수익 통화. 설정하지 않으면 USD |
| impressions | te_ads_object.impressions | 노출 수 |
| clicks | te_ads_object.clicks | 클릭 수 |
| estimated_earnings(데이터를 1000000으로 나눔) | te_ads_object.revenue | 수익화 수익 |
2.6 인증 완료
설정을 마친 후 오른쪽 상단의 저장 및 인증을 클릭하여 계획 설정을 저장할 수 있습니다. 이어서 마지막 인증 작업을 완료해야 합니다:
먼저 팝업된 인증 정보 페이지에서 첫 번째 단계의 주소를 복사합니다
다음으로 Google Cloud Platform으로 돌아가 이전에 생성한 credentials를 편집합니다(사이드바의 APIs & Services - Credentials에서 이전에 생성한 Oauth 2.0 Client ID를 확인할 수 있으며, 뒤에 있는 편집 버튼을 클릭하면 편집 페이지로 이동합니다). Authorized redirect URIs에 방금 복사한 콜백 주소를 추가하고 Save를 클릭하여 수정을 완료합니다.
마지막으로 AE 화면으로 돌아와 권한 설정으로 이동을 클릭하면 Google AdMob의 인증 페이지가 열립니다
AdMob에서 사용하는 Google 계정으로 로그인하고 Google의 안내에 따라 이후 인증 작업을 완료하십시오
인증을 완료한 후 인증 정보에서 왼쪽 하단의 위의 두 단계를 완료했습니다를 클릭한 다음 오른쪽 하단의 인증 완료를 클릭하여 설정을 마칩니다. 이로써 Google AdMob 데이터 연동이 완료됩니다.

