Группы медиации

С помощью AdMob API можно создавать, просматривать и изменять группы медиации, в том числе:

  • Таргетинг на группы медиации, в том числе на регионы, форматы, платформы и IDFA.
  • Добавление новых строк группы медиации в существующую группу медиации.
  • Просмотр групп медиации, участвующих в A/B-эксперименте, и строк группы медиации, относящихся к вариантам A и B.

Примеры

После того как вы создадите учетные данные 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. К таким сведениям относится информация об аккаунте, настройках инвентаря и медиации, отчетах и другие данные. Сюда не входят конфиденциальные данные, например информация о платежах и кампаниях.

Создать

Чтобы создать группу медиации, необходимо указать настройки таргетинга группы медиации, в том числе подходящие рекламные блоки. В следующем примере создается новая группа медиации для межстраничных объявлений для Android в двух рекламных блоках. При создании группы медиации для источника объявлений InMobi добавляется одна строка. Сеть AdMob добавляется по умолчанию при создании группы, поэтому указывать ее не нужно.

Во фрагменте кода ниже замените pub-XXXXXXXXXXXXXXXX на свой идентификатор издателя.

Затем замените YYYYYYYYYY последними 10 цифрами идентификатора рекламного блока в следующем формате:

ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY

В этом примере два рекламных блока, поэтому YYYYY11111 относится к первому рекламному блоку, а WWWWW11111 – к его сопоставлению. YYYYY22222 и WWWWW22222 относятся ко второму рекламному блоку и сопоставлению рекламных блоков.

curl (командная строка)

Замените WWWWWWWWWW идентификатором сопоставления рекламных блоков. Идентификатор сопоставления рекламных блоков можно найти с помощью метода accounts.adUnits.adUnitMappings.list.

 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 на идентификатор издателя, чтобы посмотреть свои группы медиации.

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.adUnitIds
  • mediationGroupLines[mediationGroupLineId]
  • mediationGroupLines[mediationGroupLineId].state
  • mediationGroupLines[mediationGroupLineId].adUnitMappings[adUnitId]

Чтобы добавить в группу медиации новую строку, используйте для параметра mediationGroupLineId уникальное отрицательное число. Чтобы обновить существующие строки группы медиации, укажите идентификатор строки группы медиации в заголовке update_mask и в полезной нагрузке, как показано ниже.

"updateMask" {
    paths: "mediation_group_lines["123"].ad_unit_mappings["456"]"
}

"mediationGroup" {
  "mediationGroupLines": {
   "123": {
     "id": "123"
     "adUnitMappings": {
      "456": "newAdUnitMappingId"
     }
    }
  }
}

curl (командная строка)

В примере ниже в существующую группу медиации добавляются три новые линии медиации. В updateMask входят три строки группы медиации с разными отрицательными значениями в качестве плейсхолдера:

updateMask=mediationGroupLines["-1"],mediationGroupLines["-2"],mediationGroupLines["-3"]

Необходимость преобразования символов связана с тем, что все URL должны соответствовать синтаксису, указанному в спецификации унифицированного идентификатора ресурсов (URI). В результате символ updateMask преобразуется в:

updateMask=mediationGroupLines%5B%22-1%22%5D,mediationGroupLines%5B%22-2%22%5D,mediationGroupLines%5B%22-3%22%5D

Чтобы выполнить приведенный ниже пример, замените pub-XXXXXXXXXXXXXXXX на идентификатор издателя, а ZZZZZZZZZZ – на идентификатор группы медиации. Идентификатор группы медиации можно найти в интерфейсе AdMob или с помощью метода accounts.mediationGroups:list.

Замените YYYYYYYYYY последними 10 цифрами идентификатора рекламного блока в следующем формате:

ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY`

Замените WWWWWWWWWW идентификатором сопоставления рекламных блоков. Идентификатор сопоставления рекламных блоков можно найти с помощью метода accounts.adUnits.adUnitMappings.list.

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