API AdMob позволяет проводить эксперименты A/B с посредничеством, чтобы максимизировать эффективность ваших объявлений путем тестирования различных конфигураций. A/B-тест позволяет оценить два варианта группы медиации, сравнить результаты и выбрать предпочтительную конфигурацию.
Вот примеры экспериментов, которые вы можете поставить:
- Добавление или удаление источников объявлений, чтобы увидеть их влияние на вашу группу медиации.
- Использование другого каскадного порядка путем изменения значения эффективной цены за тысячу показов для источников объявлений вручную.
- Включение или отключение оптимизации для источников каскадной рекламы
- Изменение количества вызовов источника объявлений
Примеры
Начните с существующей группы медиации и создайте ее вариант, чтобы увидеть, какой вариант, A или B, работает лучше. В ходе теста пользователи вашего приложения распределяются между существующей настройкой группы медиации и вариантом на основе предоставленного вами процента (1%, 10% или 50%).
локон (командная строка)
Запросы с использованием Curl
Загрузите файл секретов клиента и сгенерируйте учетные данные для авторизации.
При первом выполнении этого шага вам будет предложено принять запрос на авторизацию в браузере. Прежде чем принять предложение, убедитесь, что вы вошли в аккаунт Google, у которого есть доступ к API AdMob. Вашему приложению будет разрешен доступ к данным от имени любой учетной записи, в которую в данный момент выполнен вход.
Для аутентификации и авторизации мы рекомендуем использовать oauth2l — простой инструмент командной строки для работы с Google OAuth 2.0. Установите oauth2l и выполните приведенную ниже команду, заменив path_to_credentials_json путем к файлу
credentials.json
, который вы загружаете при регистрации облачного приложения. При первом запуске команда проведет вас через процесс авторизации OAuth 2.0. Последующие запуски автоматически обновляют токен.oauth2l header --json path_to_credentials_json --scope admob.monetization,admob.readonly
Создайте эксперимент медиации A/B.
Замените
pub-XXXXXXXXXXXXXXXX
на свой идентификатор издателя , аZZZZZZZZZZ
на идентификатор своей группы медиации. Идентификатор группы медиации можно найти в интерфейсе AdMob или с помощью методаaccounts.mediationGroups:list
.Вам необходимо указать
treatmentMediationLines
иtreatmentTrafficPercentage
, однакоcontrolMediationLines
наследуются от родительской группы медиации и их не нужно указывать.Следующий запрос создает эксперимент медиации A/B, в котором вариант обработки, также известный как вариант B, содержит одну строку медиации для сети AdMob, использующей режим
LIVE
.curl --http1.0 \ -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments \ -H "Content-Type:application/json" \ -H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)" \ --data @- << EOF { "displayName":"Mediation A/B Experiment Test Name", "treatmentTrafficPercentage": "50", "treatmentMediationLines": [{ "mediationGroupLine": { "displayName": "Test mediation group line", "adSourceId": "5450213213286189855", "cpm_mode": "LIVE" } }] } EOF
См. пример ответа ниже, где
SSSSSSSSSSSSSSSSSSSSSS
— это идентификатор созданного медиационного эксперимента A/B, аYYYYYYYYYY
— последние 10 цифр идентификатора вашего рекламного блока в формате:ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY
.{ "name": "accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments/SSSSSSSSSSSSSSSSSSSSSS", "displayName": "Mediation A/B Experiment Test Name", "experimentId": "SSSSSSSSSSSSSSSSSSSSSS", "treatmentTrafficPercentage": "50", "treatmentMediationLines": [ { "mediationGroupLine": { "id": "11111111111111111", "displayName": "Test mediation group line", "adSourceId": "5450213213286189855", "cpmMode": "LIVE", "cpmMicros": "10000", "adUnitMappings": { "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ }, "state": "ENABLED" } } ], "controlMediationLines": [ { "mediationGroupLine": { "id": "22222222222222222", "displayName": "AdMob Network (control)", "adSourceId": "5450213213286189855", "cpmMode": "LIVE", "cpmMicros": "10000", "adUnitMappings": { "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ }, "state": "ENABLED" } } ], "state": "RUNNING" }
Убедитесь, что эксперимент медиации A/B запущен.
Вызовите
accounts.mediationGroups:list
, чтобы получить статус эксперимента медиации A/B для этой группы медиации. Более подробную информацию можно найти в руководстве по группам медиации .Для
mediationAbExperimentState
установлено значениеRUNNING
для активных экспериментов медиации A/B иNOT_RUNNING
, если в группе медиации нет ни одного эксперимента.Пример запроса:
curl --http1.0 \ -X GET https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups \ -H "$(oauth2l header --json path_to_credentials_json --scope admob.readonly)"
Остановите эксперимент медиации A/B и выберите вариант.
Замените
pub-XXXXXXXXXXXXXXXX
на свой идентификатор издателя , аZZZZZZZZZZ
на идентификатор своей группы медиации. Идентификатор группы медиации можно найти в интерфейсе AdMob или с помощью методаaccounts.mediationGroups:list
.Для завершения эксперимента укажите в запросе выигрышный вариант:
-
VARIANT_CHOICE_A
: используйте строки-посредники из варианта A и завершите эксперимент. Вариант А содержит исходные строки обслуживания до создания эксперимента. -
VARIANT_CHOICE_B
: используйте линии передачи из варианта B и завершите эксперимент. Вариант Б содержит вновь добавленные строки обслуживания.
Пример запроса:
curl --http1.0 \ -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments:stop \ -H "Content-Type:application/json" \ -H "$(oauth2l header --json
path_to_credentials_json
--scope admob.monetization)" \ --data @- << EOF { "variantChoice": "VARIANT_CHOICE_A" }Пример ответа:
{ "experimentId": "SSSSSSSSSSSSSSSSSSSSSS", "state": "EXPIRED", }
-