Посредничество


AdMob Mediation — это функция, позволяющая показывать рекламу в ваших приложениях из нескольких источников, включая сеть AdMob, сторонние рекламные сети и кампании AdMob . AdMob Mediation помогает максимизировать коэффициент заполнения и увеличить монетизацию, отправляя запросы на показ рекламы в несколько сетей, чтобы вы могли найти наилучшую доступную сеть для показа рекламы. Пример из практики .

Предварительные требования

Прежде чем интегрировать медиацию для рекламного формата, необходимо интегрировать этот рекламный формат в ваше приложение:

Впервые сталкиваетесь с медиацией? Ознакомьтесь с обзором медиации AdMob .

Инициализируйте SDK для мобильной рекламы.

Краткое руководство по началу работы показывает, как инициализировать SDK для мобильной рекламы . Во время этой инициализации также инициализируются адаптеры медиации. Важно дождаться завершения инициализации, прежде чем загружать рекламу, чтобы обеспечить полное участие всех рекламных сетей при первом запросе рекламы.

Приведённый ниже пример кода показывает, как проверить состояние инициализации каждого адаптера перед отправкой запроса на показ рекламы.

// Initialize the Google Mobile Ads library
firebase::gma::Initialize(*app);

// In a game loop, monitor the initialization status
auto initialize_future = firebase::gma::InitializeLastResult();

if (initialize_future.status() == firebase::kFutureStatusComplete &&
    initialize_future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed successfully, log the adapter status:
  std::map<std::string, firebase::gma::AdapterStatus> adapter_status_map =
      firebase::gma::GetInitializationStatus().GetAdapterStatusMap();

  for (auto it = adapter_status_map.begin(); it != adapter_status_map.end(); ++it) {
    std::string adapter_class_name = it->first;
    firebase::gma::AdapterStatus adapter_status = it->second;
    printf(adapter: %s \t description: %s \t is_initialized: %d latency: %d\n,
       adapter_class_name.c_str(),
       adapter_status.description().c_str(),
       adapter_status.is_initialized(),
       adpater_status.latency());
  }
} else {
  // Handle initialization error.
}

Для получения дополнительной информации о работе с объектами Future см. раздел «Использование объектов Future для отслеживания статуса завершения вызовов методов» .

Проверьте значение параметра adNetworkClassName

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

Вот пример кода, который выводит в консоль имя класса рекламной сети из объекта AdResult , возвращаемого объектом AdView . Аналогичный код можно использовать для межстраничной и платной рекламы:

firebase::Future<AdResult> load_ad_future = banner_view.loadAd(ad_request);

// In a game loop, monitor the ad load status
if (load_ad_future.status() == firebase::kFutureStatusComplete &&
    load_ad_future.error() == firebase::gma::kAdErrorCodeNone) {
  const AdResult* ad_result = load_ad_future.result();
  printf(Loaded ad with adapter class name: %s\n,
    ad_result->adapter_class_name().c_str());
} else {
  // Handle the load ad error.
}

Обязательно отключите функцию обновления во всех интерфейсах сторонних рекламных сетей для баннерных объявлений, используемых в AdMob Mediation. Это предотвратит двойное обновление, поскольку AdMob также запускает обновление в зависимости от частоты обновления вашего баннерного объявления.

Следующие шаги

SDK Google Mobile Ads на C++ использует реализации SDK для Android и iOS для медиации. Поэтому дальнейшая настройка, включая установку адаптеров медиации, зависит от платформы Android и iOS. Для получения дополнительной информации см. руководство по выбору сетей в SDK Google Mobile Ads для Android и руководство по выбору сетей в SDK Google Mobile Ads для iOS .