Rozpocznij

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 wielu sieci, by 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 Omówienie zapośredniczenia AdMob.

Na potrzeby określania stawek: pakiet SDK do reklam mobilnych Google w wersji 18.3.0 lub nowszej.

Zainicjowanie pakietu SDK do reklam mobilnych

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

Poniższy przykładowy kod pokazuje, jak możesz sprawdzić stan inicjowania każdego adaptera przed wysłaniem żądania reklamy.

Java

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.AdapterStatus;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        new Thread(
                () ->
                    // Initialize the Google Mobile Ads SDK on a background thread.
                    MobileAds.initialize(
                        this,
                        initializationStatus -> {
                          Map<String, AdapterStatus> statusMap =
                              initializationStatus.getAdapterStatusMap();
                          for (String adapterClass : statusMap.keySet()) {
                            AdapterStatus status = statusMap.get(adapterClass);
                            Log.d(
                                "MyApp",
                                String.format(
                                    "Adapter name: %s, Description: %s, Latency: %d",
                                    adapterClass, status.getDescription(), status.getLatency()));
                          }
                          // Start loading ads here...
                        }))
            .start();
    }
}

Kotlin

import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) { initializationStatus ->
        val statusMap =
          initializationStatus.adapterStatusMap
        for (adapterClass in statusMap.keys) {
          val status = statusMap[adapterClass]
          Log.d(
            "MyApp", String.format(
              "Adapter name: %s, Description: %s, Latency: %d",
              adapterClass, status!!.description, status.latency
            )
          )
        }
        // Start loading ads here...
      }
    }
  }
}

Sprawdź, która klasa adaptera sieci reklamowej załadowała reklamę.

Oto przykładowy kod, który rejestruje nazwę klasy sieci reklamowej na potrzeby banera reklamowego:

Java

public void onAdLoaded() {
  Log.d("Banner adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
}

Kotlin

override fun onAdLoaded() {
  Log.d("Banner adapter class name:" + ad.responseInfo.mediationAdapterClassName)
}

Więcej informacji o tej metodzie znajdziesz w dokumentacji ResponseInfo w getMediationAdapterClassName().

Inicjowanie obiektu reklamowego za pomocą wystąpienia aktywności

W konstruktorze nowego obiektu reklamy (np. AdView) musisz przekazać obiekt typu Context. Podczas korzystania z zapośredniczenia ten parametr Context jest przekazywany do innych sieci reklamowych. Niektóre sieci reklamowe wymagają bardziej restrykcyjnego elementu Context typu Activity i mogą nie być w stanie wyświetlać reklam bez wystąpienia Activity. Dlatego zalecamy, aby podczas inicjowania obiektów reklamowych przekazać wystąpienie Activity, aby zapewnić spójność z zapośredniczonymi sieciami reklamowymi.

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

Zapośredniczenie reklam natywnych

Poniżej znajdziesz kilka sprawdzonych metod, które warto wziąć pod uwagę przy wdrażaniu zapośredniczenia natywnego.

Zasady dotyczące prezentacji reklam natywnych
Każda sieć reklamowa ma własne zasady. Korzystając z zapośredniczenia, pamiętaj, że Twoja aplikacja musi być zgodna z zasadami sieci zapośredniczonej, która dostarczyła reklamę.
Używaj loadAd() zamiast loadAds()
Metoda loadAds() wyświetla tylko reklamy Google. W przypadku reklam zapośredniczonych użyj parametru loadAd().

Amerykańskie przepisy stanowe o ochronie prywatności i RODO

Jeśli musisz zachować zgodność z amerykańskimi przepisami stanowymi o ochronie prywatności lub Ogólnym rozporządzeniem o ochronie danych (RODO), wykonaj czynności opisane w ustawieniach amerykańskich przepisów stanowych lub ustawieniach RODO, aby dodać partnerów zapośredniczenia do listy partnerów reklamowych korzystających z usługi „Prywatność i wyświetlanie wiadomości” w AdMob lub na liście partnerów reklamowych zgodnych z RODO. Jeśli tego nie zrobisz, partnerzy nie będą mogli wyświetlać reklam w Twojej aplikacji.

Dowiedz się więcej o włączaniu ograniczonego przetwarzania danych (RDP) i uzyskiwaniu zgody na wykorzystanie danych zgodnie z RODO za pomocą pakietu SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom (UMP).