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. Pośrednictwo AdMob pomaga zmaksymalizować współczynnik wypełnienia oraz zwiększyć przychody przez wysyłanie żądań reklamy do różnych sieci w celu znalezienia najlepszej sieci 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, aby wyłączyć odświeżanie we wszystkich zewnętrznych sieciach reklamowych w przypadku jednostek banerów reklamowych używanych 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.