Rozpocznij

Z tego przewodnika dowiesz się, jak zintegrować adapter zapośredniczenia z aplikacją na Androida.

Wymagania wstępne

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

Dopiero zaczynasz korzystać z zapośredniczenia? Przeczytaj Wprowadzenie do zapośredniczenia.

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. 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. AdManagerAdView) 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.

Używanie banerów reklamowych w zapośredniczeniu

Pamiętaj, aby wyłączyć odświeżanie we wszystkich interfejsach zewnętrznych źródeł reklam w przypadku jednostek banerów reklamowych używanych w zapośredniczeniu. Zapobiega to podwójnemu odświeżaniu, ponieważ Ad Manager uruchamia też odświeżanie na podstawie częstotliwości odświeżania jednostki z banerem reklamowym.

Używanie reklam natywnych z zapośredniczeniem

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 zapośredniczenia na liście stanów USA w usłudze Ad Manager lub na liście 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).