借助 AdMob API,您可以创建、列出和更新中介组,包括:
示例
创建 OAuth 2.0 凭据后,您就可以开始使用 AdMob API 了。要通过 OAuth 2.0 请求访问权限,您的应用还需要授权范围信息。
以下是 OAuth 2.0 范围信息:
| 范围 | 含义 |
|---|---|
https://www.googleapis.com/auth/admob.monetization |
查看、创建和修改 AdMob 创收设置。 |
https://www.googleapis.com/auth/admob.readonly |
查看所有 AdMob 数据。这可能包括账号信息、广告资源和中介设置、报告以及其他数据。 这不包括付款或广告系列详情等敏感数据。 |
创建
如需创建中介组,您必须指定中介组定位信息,包括相关的广告单元。以下示例为 2 个广告单元创建了一个新的 Android 插页式广告中介组。创建时,系统会为 InMobi 广告来源添加一个中介组行。您无需添加 AdMob 广告联盟,因为系统会在创建时默认添加该广告联盟。
在下面的代码段中,将 pub-XXXXXXXXXXXXXXXX 替换为您的发布商 ID。
然后,将 YYYYYYYYYY 替换为广告单元 ID 的后 10 位数字,并遵循以下格式:
ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY
在此示例中有两个广告单元,因此 YYYYY11111 指的是第一个广告单元,而 WWWWW11111 指的是第一个广告单元的映射。YYYYY22222 和 WWWWW22222 分别指第二个广告单元和广告单元映射。
curl(命令行)
将 WWWWWWWWWW 替换为您的广告单元映射 ID。您可以使用 accounts.adUnits.adUnitMappings.list 方法查找广告单元映射 ID。
curl --http1.0 -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups
-H "Content-Type:application/json"
-H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)"
--data @- << EOF
{
"displayName": "Test Mediation Group"
"targeting": {
"platform": "ANDROID",
"format": "INTERSTITIAL"
"adUnitIds":["ca-app-pub-XXXXXXXXXXXXXXXX/YYYYY11111", "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYY22222"}
}
"mediationGroupLines": {
"-1": {
"displayName": "test line",
"adSourceId": "7681903010231960328",
"cpmMode": "MANUAL",
"cpmMicros": "150000",
"state": "ENABLED",
"adUnitMappings": {
"ca-app-pub-XXXXXXXXXXXXXXXX/YYYYY11111": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYY11111/adUnitMappings/WWWWW11111",
"ca-app-pub-XXXXXXXXXXXXXXXX/YYYYY22222": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYY22222/adUnitMappings/WWWWW22222"
}
}
}
列表
将 pub-XXXXXXXXXXXXXXXX 替换为您的发布商 ID,以查看您的中介组。
curl(命令行)
示例请求:
curl --http1.0 -X GET https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups \ -H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)"
示例响应:
{ "mediationGroups": [ { "name": "accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ", "mediationGroupId": "ZZZZZZZZZZ", "displayName": "Test Mediation Group", "state": "ENABLED", "state": "NOT_RUNNING", "targeting": { "platform": "iOS", "format": "BANNER", "targetedRegionCodes": "[CA]", "adUnits": ["YYYYY11111", "YYYYY22222"] }, "mediationGroupLines": { "11111111111111111": { "id": "11111111111111111", "displayName": "AdMob Network", "adSourceId": "5450213213286189855", "cpmMode": "LIVE", "state": "ENABLED", "experimentVariant": "ORIGINAL" }, "22222222222222222": { "id": "22222222222222222", "displayName": "test line", "adSourceId": "7681903010231960328", "cpmMode": "MANUAL", "cpmMicros": "150000", "adUnitMappings": { "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYY11111": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYY11111/adUnitMappings/WWWWW11111", "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYY22222": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYY22222/adUnitMappings/WWWWW22222" }, "state": "ENABLED", "experimentVariant": "ORIGINAL" } }, }] }
修补
以下是用于更新中介组的字段掩码列表。对重复字段(例如列表中的项)的更新会完全替换现有值。可以通过按键进行索引来更新映射中的各个值。
中介组更新支持以下字段掩码:
targeting.adUnitIdsmediationGroupLines[mediationGroupLineId]mediationGroupLines[mediationGroupLineId].statemediationGroupLines[mediationGroupLineId].adUnitMappings[adUnitId]
如需使用新的中介组行更新中介组,请为 mediationGroupLineId 使用不同的负数。如需更新现有的中介组行,请在 update_mask 和载荷中引用中介组行 ID,如下所示。
"updateMask" {
paths: "mediation_group_lines["123"].ad_unit_mappings["456"]"
}
"mediationGroup" {
"mediationGroupLines": {
"123": {
"id": "123"
"adUnitMappings": {
"456": "newAdUnitMappingId"
}
}
}
}
curl(命令行)
以下示例向现有中介组添加了 3 条新的中介行。
updateMask 包含 3 个中介组行,其中包含不同的负值作为占位符:
updateMask=mediationGroupLines["-1"],mediationGroupLines["-2"],mediationGroupLines["-3"]
您需要转换特殊字符,因为所有网址都需要符合统一资源标识符 (URI) 规范所规定的语法,因此 updateMask 会变为:
updateMask=mediationGroupLines%5B%22-1%22%5D,mediationGroupLines%5B%22-2%22%5D,mediationGroupLines%5B%22-3%22%5D
如需运行以下示例,请将 pub-XXXXXXXXXXXXXXXX 替换为您的发布商 ID,并将 ZZZZZZZZZZ 替换为您的中介组 ID。您可以在 AdMob 界面中找到中介组 ID,也可以使用 accounts.mediationGroups:list 方法找到该 ID。
将 YYYYYYYYYY 替换为您的广告单元 ID 的后 10 位数字,格式如下:
ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY`
将 WWWWWWWWWW 替换为您的广告单元映射 ID。您可以使用 accounts.adUnits.adUnitMappings.list 方法查找广告单元映射 ID。
curl --http1.0 -X PATCH https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ?
updateMask=mediationGroupLines%5B%22-1%22%5D,mediationGroupLines%5B%22-2%22%5D,mediationGroupLines%5B%22-3%22%5D
-H "Content-Type:application/json"
-H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)"
--data @- << EOF
{
"mediationGroupLines": {
"-1": {
"displayName": "test line 2",
"adSourceId": "7681903010231960458",
"cpmMode": "MANUAL",
"cpmMicros": "150000",
"state": "ENABLED",
"adUnitMappings": {
"ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/WWWWWWWWWW"
}
},
"-2": {
"displayName": "test line 3",
"adSourceId": "7681903010231960328",
"cpmMode": "MANUAL",
"cpmMicros": "120000",
"state": "ENABLED",
"adUnitMappings": {
"ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/WWWWWWWWWW"
}
},
"-3": {
"displayName": "test line 4",
"adSourceId": "7681903010231960328",
"cpmMode": "MANUAL",
"cpmMicros": "130000",
"state": "ENABLED",
"adUnitMappings": {
"ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/WWWWWWWWWW"
}
}
}
}
EOF