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


Медиация 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 .