Mediacja


Zapośredniczenie AdMob to funkcja, która umożliwia wyświetlanie reklam we własnych aplikacjach z wielu źródeł, w tym z sieci AdMob, sieci reklamowych innych firm oraz z kampanii AdMob. Zapośredniczenie w AdMob pomaga maksymalizować współczynnik wypełnienia i zwiększać przychody, ponieważ wysyła żądania reklamy do różnych sieci, aby znaleźć najlepszą sieć do wyświetlania reklam. Studium przypadku.

Wymagania wstępne

Zanim zintegrujesz mediację z danym formatem reklamy, musisz go zintegrować z aplikacją:

Zapoznałeś się już z zaproszeniem? Przeczytaj omówienie zapośredniczenia AdMob.

Inicjowanie pakietu SDK do reklam mobilnych

W tym przewodniku znajdziesz informacje o tym, jak inicjować pakiet SDK do reklam mobilnych. Podczas tego wywołania inicjalizacji są również inicjowane adaptery pośrednictwa. Zanim zaczniesz wczytywać reklamy, musisz poczekać na zakończenie inicjowania, aby mieć pewność, że każda sieć reklamowa będzie w pełni uczestniczyć w procesie po pierwszym żądaniu reklamy.

Przykładowy kod poniżej pokazuje, jak sprawdzić stan inicjowania poszczególnych adapterów 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 obiektmi typu Future znajdziesz w artykule Korzystanie z obiektów typu Future do monitorowania stanu zakończenia wywołań metod.

Sprawdź wartość adNetworkClassName.

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

Oto przykładowy kod, który rejestruje nazwę klasy sieci reklamowej z AdResultzwracanego przez AdView. Podobny kod można użyć w przypadku reklam pełnoekranowych i reklam 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 w interfejsie wszystkich zewnętrznych sieci reklamowych w przypadku jednostek reklam banerowych używanych w zapośredniczeniu AdMob. Zapobiegnie to podwójnemu odświeżaniu, 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 języku C++ otacza implementacje pakietów SDK na Androida i iOS w celu pośredniczenia. Dlatego dalsza konfiguracja, w tym instalacja pośredniczących adapterów, jest specyficzna dla platform Android i iOS. Więcej informacji znajdziesz w instrukcji wyboru sieci w pakiecie SDK do reklam mobilnych Google na Androida oraz w instrukcji wyboru sieci w pakiecie SDK do reklam mobilnych Google na iOS.