Mediacja

Zapośredniczenie AdMob to funkcja, która umożliwia wyświetlanie w aplikacjach reklam z wielu źródeł, m.in. z sieci AdMob, zewnętrznych sieci reklamowych i kampanii AdMob. Zapośredniczenie AdMob pomaga zmaksymalizować współczynnik wypełnienia oraz zwiększyć przychody przez wysyłanie żądań reklamy do różnych sieci, aby znaleźć najlepszą sieć do wyświetlania reklam. Studium przypadku.

Wymagania wstępne

Zanim zintegrujesz zapośredniczenie z danym formatem reklamy, musisz zintegrować go z aplikacją:

Dopiero zaczynasz korzystać z zapośredniczenia? Przeczytaj artykuł Zapośredniczenie AdMob.

Zainicjowanie pakietu SDK do reklam mobilnych

Z krótkiego przewodnika dowiesz się, jak zainicjować pakiet SDK do reklam mobilnych. Podczas tego wywołania inicjowania inicjowane są również adaptery zapośredniczenia i określania stawek. Przed wczytaniem reklam należy poczekać na zakończenie inicjowania, aby zapewnić pełny udział każdej sieci reklamowej w pierwszym żądaniu reklamy.

Przykładowy kod poniżej pokazuje, jak możesz sprawdzić stan inicjowania każdego adaptera przed wysłaniem żądania reklamy.

// 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.
}

Więcej informacji o pracy z transakcjami terminowymi znajdziesz w artykule Używanie transakcji terminowych do monitorowania stanu ukończenia wywołań metod.

Sprawdź wartość adNetworkClassName

Każdy wynik wyszukiwania zawiera informacje o nazwie klasy sieci reklamowej, która pobrała bieżącą reklamę.

Oto przykładowy kod, który rejestruje nazwę klasy sieci reklamowej z AdResult zwróconego z AdView. Podobny kod można zastosować w reklamach pełnoekranowych i reklamach z nagrodą:

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.
}

Pamiętaj, by wyłączyć odświeżanie w interfejsie wszystkich zewnętrznych sieci reklamowych w przypadku jednostek banerów reklamowych w zapośredniczeniu AdMob. Zapobiegnie to podwójnemu odświeżeniu, ponieważ AdMob uruchamia też odświeżanie na podstawie częstotliwości odświeżania jednostki z banerem reklamowym.

Dalsze kroki

Pakiet SDK do reklam mobilnych Google w C++ pakuje implementacje pakietów SDK na Androida i iOS na potrzeby zapośredniczenia. Dlatego dalsza konfiguracja, w tym instalacja adapterów zapośredniczenia, dotyczy tylko platform Android i iOS. Więcej informacji znajdziesz w przewodniku po wyborze sieci przez pakiet SDK do reklam mobilnych Google na Androida oraz w przewodniku wyboru sieci przez pakiet SDK do reklam mobilnych Google na iOS.