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


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

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

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

Впервые в медиации? Прочтите обзор медиации AdMob .

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

В кратком руководстве показано, как инициализировать Mobile Ads 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.
}

Дополнительные сведения о работе с Futures см. в разделе Использование Futures для отслеживания состояния завершения вызовов методов .

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

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

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