Rozpocznij

Zapośredniczenie AdMob to funkcja, która pozwala wyświetlać w aplikacjach reklamy z wielu źródeł, w tym z sieci AdMob i zewnętrznych źródeł reklam. Pośrednictwo AdMob pomaga maksymalizować współczynnik wypełnienia i zwiększać przychody przez wysyłanie żądań reklamy do różnych sieci, by znaleźć najlepszą sieć do wyświetlania reklam. Studium przypadku.

Wymagania wstępne

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

Dopiero zaczynasz korzystać z zapośredniczenia? Zapoznaj się z omówieniem zapośredniczenia AdMob.

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

Zainicjowanie pakietu SDK do reklam mobilnych

W tym przewodniku znajdziesz informacje o tym, jak inicjować pakiet SDK do reklam mobilnych. W jego trakcie inicjowane są również adaptery zapośredniczenia. Zanim załadujesz reklamy, musisz poczekać na zakończenie inicjalizacji, by w przypadku pierwszego żądania reklamy wszystkie sieci reklamowe były w pełni aktywne.

Poniższy przykładowy kod pokazuje, jak 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 wczytała reklamę

Oto przykładowy kod, który rejestruje nazwę klasy sieci reklamowej w przypadku 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 na stronie getMediationAdapterClassName().

Inicjalizacja obiektu reklamy za pomocą instancji Activity

W konstruktorze nowego obiektu reklamy (np. AdView) musisz podać obiekt typu Context. Wartość Context jest przekazywana do innych sieci reklamowych podczas korzystania z zapośredniczenia. Niektóre sieci reklamowe wymagają bardziej restrykcyjnego atrybutu Context typu Activity, który może nie być w stanie wyświetlać reklam bez wystąpienia Activity. Dlatego podczas inicjowania obiektów reklamowych zalecamy przekazanie wystąpienia Activity, aby zapewnić spójność w działaniu z zapośredniczonymi sieciami reklamowymi.

Pamiętaj, aby wyłączyć odświeżanie we wszystkich interfejsach zewnętrznych źródeł reklam w jednostkach z banerami reklamowymi używanymi w zapośredniczeniu AdMob. Zapobiega to podwójnemu odświeżaniu, ponieważ AdMob także uruchamia odświeżanie na podstawie częstotliwości odświeżania jednostki z banerem reklamowym.

Korzystanie z reklam natywnych w ramach zapośredniczenia AdMob

Poniżej znajdziesz kilka sprawdzonych metod, które warto wziąć pod uwagę przy implementacji reklam natywnych w zapośredniczeniu AdMob.

Zasady dotyczące prezentacji reklam natywnych
Każda sieć reklamowa ma własne zasady. Pamiętaj, że korzystając z zapośredniczenia, musisz przestrzegać zasad sieci zapośredniczącej, która dostarczyła reklamę.
Użyj loadAd() zamiast loadAds()
Metoda loadAds() wyświetla tylko reklamy Google. W przypadku reklam pośredniczących użyj zamiast tego tagu loadAd().

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

Jeśli musisz przestrzegać przepisów stanowych USA o ochronie prywatności lub Ogólnego rozporządzenia o ochronie danych (RODO), wykonaj czynności opisane w ustawieniach dotyczących przepisów stanowych USA lub ustawieniach RODO, aby dodać partnerów pośredniczących do listy partnerów reklamowych w narzędziu Prywatność i wyświetlanie wiadomości w AdMob (stany USA) lub RODO. Jeśli tego nie zrobisz, partnerzy mogą nie wyświetlać reklam w Twojej aplikacji.

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