The AdMob API lets you create, list, and update mediation groups, including:
- Specifying mediation group targeting including regions, format, platform, and IDFA targeting
- Adding new mediation group lines to an existing mediation group
- Viewing which mediation groups are part of a mediation A/B experiment and what mediation group lines belong to each variant: A or B
Examples
With OAuth 2.0 credentials created, you're ready to start using the AdMob API. To request access using OAuth 2.0, your application will also need the scope information.
Here's the OAuth 2.0 scope information:
Scope | Meaning |
---|---|
https://www.googleapis.com/auth/admob.monetization |
See, create, and edit your AdMob monetization settings. |
https://www.googleapis.com/auth/admob.readonly |
See all AdMob data. This may include account information, inventory and mediation settings, reports, and other data. This doesn't include sensitive data, such as payments or campaign details. |
Create
To create a mediation group, you must specify the mediation group targeting information, including the relevant ad units. The following example creates a new mediation group for Android interstitial ads for 2 ad units. One mediation group line is added at creation for the InMobi ad source. You don't need to include the AdMob network as it will be added at creation time by default.
In the code snippet below, replace pub-XXXXXXXXXXXXXXXX
with your publisher
ID.
Then, replace YYYYYYYYYY
with the last 10 digits of your ad unit
ID, complying
to the format:
ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY
As there are two ad units in this example, YYYYY11111
refers to the first ad
unit and WWWWW11111
to the first ad unit's mapping. YYYYY22222
and
WWWWW22222
refer to the second ad unit and ad unit mapping.
curl (command line)
Replace WWWWWWWWWW
with your ad unit mapping ID. The ad unit mapping ID
can be found using the
accounts.adUnits.adUnitMappings.list
method.
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" } } }
List
Replace pub-XXXXXXXXXXXXXXXX
with your publisher
ID to view your mediation groups.
curl (command line)
Sample request:
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)"
Sample response:
{ "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" } }, }] }
Patch
Here is the list of field masks to update a mediation group. Updates to repeated fields, such as items in a list, fully replace existing values with new values. Updates to individual values in a map can be done through indexing by the key.
The following field masks are supported for mediation group updates:
targeting.adUnitIds
mediationGroupLines[mediationGroupLineId]
mediationGroupLines[mediationGroupLineId].state
mediationGroupLines[mediationGroupLineId].adUnitMappings[adUnitId]
To update a mediation group with a new mediation group line, use a distinct
negative number for the mediationGroupLineId
. To update existing mediation
group lines, reference the mediation group line ID in both the update_mask
and
the payload as seen below.
"updateMask" {
paths: "mediation_group_lines["123"].ad_unit_mappings["456"]"
}
"mediationGroup" {
"mediationGroupLines": {
"123": {
"id": "123"
"adUnitMappings": {
"456": "newAdUnitMappingId"
}
}
}
}
curl (command line)
The example below adds 3 new mediation lines to an existing mediation group.
The updateMask
includes the 3 mediation group lines with distinct negative
values as the placeholder:
updateMask=mediationGroupLines["-1"],mediationGroupLines["-2"],mediationGroupLines["-3"]
You need to translate special characters because all URLs need to conform to
the syntax specified by the Uniform Resource Identifier (URI) specification,
so the updateMask
becomes:
updateMask=mediationGroupLines%5B%22-1%22%5D,mediationGroupLines%5B%22-2%22%5D,mediationGroupLines%5B%22-3%22%5D
To run the following example, replace pub-XXXXXXXXXXXXXXXX
with your
publisher ID and ZZZZZZZZZZ
with your mediation group ID. The mediation
group ID can be found in the AdMob UI or by using the accounts.mediationGroups:list
method.
Replace YYYYYYYYYY
with the last 10 digits of your ad unit
ID, following the format:
ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY`
Replace WWWWWWWWWW
with your ad unit mapping ID. The ad unit mapping ID
can be found using the
accounts.adUnits.adUnitMappings.list
method.
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