# Google AdMob 集成方案
TIP
请注意,第三方数据集成产生的数据会被纳入集群的消耗数据量
# 概要
# 接口简介
接口名 | 类型 | 粒度 | 归因 | 成本 | 收益 | 展示 | 点击 | 转化 |
---|---|---|---|---|---|---|---|---|
Reporting API | API | 聚合指标 | ✅ | ✅ | ✅ |
Google Admob Reporting API 接口 (opens new window)回传聚合的变现广告数据,包含变现广告展示、点击和收入数据
# 集成流程
- 登录您的 AdMob 账号,获取 Publisher ID
- 登录 Google Cloud Platform (opens new window) 后台,创建带有 AdMob API 权限的项目,并生成 Client ID 与 Client Secret
- 登录 TE 后台,进入三方集成模块,新增 Google Admob 方案,并完成相关配置
- 回到之前创建的 GCP 后台项目,配置正确的回调地址,并完成授权工作
- 查看 TE 系统否成功接收数据,并完成报表搭建
# 一、集成前准备工作
# 1.1 获取 Publisher ID
登陆 AdMob 后台 (opens new window),以下图所示路径获取 Publisher ID
# 1.2 在 Google Cloud Platform 内创建一个项目
接下来,您需要创建一个 Google Cloud Platform 项目。如果您没有创建过 GCP 项目,可以登录 Google Cloud Platform (opens new window),点击「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 的红框标注处需要配置回调地址,由于目前我们还没有在 TE 系统中创建方案,因此授权地址请先填写「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
# 二、方案配置
当您在 Google 平台的准备工作后,您可以登录 TE 系统,在「三方集成」模块中完成新方案的配置。下图是 Google Admob 的配置界面,请您按照本章节内容完成方案的创建
# 2.1 授权信息配置
点击「授权信息」按钮,在弹出框内填写您在上一步中获得的信息:
# 2.2 定时拉取
您可以在「定时拉取」模块设置 TE 系统定时拉取 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 | 千次广告展示收入 | 预估的千次广告展示收入,对应后台的 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")进行时间分组,至少需要一个时间维度 | 是 |
MONTH | 按月分组 | 按照 YYYYMM格式 (如 "202107")进行时间分组,至少需要一个时间维度 | |
WEEK | 按周分组 | 按照一周第一天的 YYYYMM 格式 (如 "202107")进行时间分组,至少需要一个时间维度 | |
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 | 按操作系统版本进行分组 | 取值如 "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 字段,即以天为聚合的时间,补零后作为该条数据的 #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")进行时间分组,至少需要一个时间维度,我们默认使用 DATE 作为时间分组 | 是 |
MONTH | 按月分组 | 按照 YYYYMM格式 (如 "202107")进行时间分组,至少需要一个时间维度 | |
WEEK | 按周分组 | 按照一周第一天的 YYYYMM 格式 (如 "202107")进行时间分组,至少需要一个时间维度 | |
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 | 按操作系统版本进行分组 | 取值如 "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 字段,即以天为聚合的时间,补零后作为该条数据的 #event_time
模板中使用的事件名为 -- admob_mediation_report
# 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 | 国家地区编码 |
【USD】 | te_ads_object.currency | 成本或收益的币种 |
impressions | te_ads_object.impressions | 曝光量 |
clicks | te_ads_object.clicks | 点击量 |
estimated_earnings(数据会除以 1000000) | te_ads_object.revenue | 变现收益 |
# 2.6 完成授权
完成配置后,您可以点击右上角的「保存并授权」将方案配置保存下来。接下来,您需要完成最后的授权工作:
首先,请在弹出的「授权信息」页面中,将第一步中的地址复制下来
其次,回到 Google Cloud Platform (opens new window),编辑之前创建的 credentials(您可以在侧边栏「APIs & Services」-「Credentials」查看到之前创建的 Oauth 2.0 Client ID,点击后面的编辑按钮即可进入到编辑页面)。Authorized redirect URIs 处将刚刚复制的回调地址添加进去,点击「Save」完成修改。
最后,再回到 TE 界面,点击「前往授权」,此时将打开 Google AdMob 的授权页面
请您登录您在 AdMob 的 Google 账号,并按照 Google 的指示完成接下来的授权操作
当您完成了授权之后,请在「授权信息」中点击左下角的「我已完成以上两步操作」后点击右下角的「完成授权」结束配置。至此,您完成了 Google AdMob 的数据集成。