Медиация 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 Mediation. Это предотвратит двойное обновление, поскольку AdMob также запускает обновление в зависимости от частоты обновления вашего баннерного рекламного блока.
Следующие шаги
Google Mobile Ads C++ SDK представляет собой оболочку для реализаций Android и iOS SDK для медиации. Поэтому дальнейшая настройка, включая установку адаптеров медиации, специфична для платформ Android и iOS. Подробнее см. в руководстве Google Mobile Ads Android SDK Choose networks и руководстве Google Mobile Ads iOS SDK Choose networks .