Rozpocznij

Zapośredniczenie AdMob to funkcja, która umożliwia wyświetlanie we własnych 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 i zwiększać przychody przez wysyłanie żądań reklamy do różnych sieci, aby znaleźć najlepszą sieć do wyświetlania reklam. Studium przypadku

Wymagania wstępne

Aby zintegrować zapośredniczenie dla danego formatu reklamy, musisz zintegrować ten format z aplikacją:

Dopiero zaczynasz korzystać z zapośredniczenia? Przeczytaj Omówienie 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

Z tego krótkiego przewodnika dowiesz się, jak zainicjować pakiet SDK do reklam mobilnych. W jego trakcie inicjowane są również adaptery zapośredniczenia i określania stawek. 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 załadował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().

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

W konstruktorze nowego obiektu reklamy (np. AdView) musisz przekazać obiekt typu Context. Podczas korzystania z zapośredniczenia ta wartość Context jest przekazywana do innych sieci reklamowych. 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 zapośredniczonych sieci reklamowych.

Pamiętaj, aby w interfejsach wszystkich zewnętrznych sieci reklamowych wyłączyć odświeżanie w przypadku jednostek banerów reklamowych używanych 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.

Zapośredniczenie reklam natywnych

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

Zasady dotyczące prezentacji reklam natywnych
Każda sieć reklamowa ma własne zasady. Podczas korzystania z zapośredniczenia pamiętaj, że Twoja aplikacja musi przestrzegać zasad sieci, która wyświetliła reklamę.
Użyj loadAd() zamiast loadAds()
Metoda loadAds() powoduje wyświetlanie tylko reklam Google. W przypadku reklam zapośredniczonych użyj loadAd().

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

Jeśli chcesz 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 w zakresie zapośredniczenia z amerykańskich stanów USA lub listy partnerów reklamowych zgodnych z 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).