Konfigurowanie zapośredniczenia

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

Wymagania wstępne

Zanim zintegrujesz mediację w przypadku formatu reklamy, musisz zintegrować ten format reklamy z aplikacją:

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

Inicjowanie GMA Next-Gen SDK

Z tego krótkiego przewodnika dowiesz się, jak zainicjować GMA Next-Gen SDK. Podczas tego połączenia inicjującego inicjowane są też adaptery mediacji. Aby mieć pewność, że w pierwszym żądaniu reklamy uczestniczą wszystkie sieci reklamowe, przed wczytaniem reklam poczekaj na zakończenie inicjowania.

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

Kotlin

import com.google.android.libraries.ads.mobile.sdk.MobileAds
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig
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 GMA Next-Gen SDK on a background thread.
      MobileAds.initialize(this@MainActivity, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
        initializationStatus ->
        for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
          Log.d(
            "MyApp",
            String.format(
              "Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
              adapterName,
              adapterStatus.initializationState,
              adapterStatus.description,
              adapterStatus.latency,
            ),
          )
        }
        // Adapter initialization is complete.
      }
      // Other methods on MobileAds can now be called.
    }
  }
}

Java

import com.google.android.libraries.ads.mobile.sdk.MobileAds;
import com.google.android.libraries.ads.mobile.sdk.initialization.AdapterStatus;
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig;

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(
            () -> {
              // Initialize GMA Next-Gen SDK on a background thread.
              MobileAds.initialize(
                  this,
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    Map<String, AdapterStatus> adapterStatusMap =
                        initializationStatus.getAdapterStatusMap();
                    for (String adapterClass : adapterStatusMap.keySet()) {
                      AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
                      Log.d(
                          "MyApp",
                          String.format(
                              "Adapter name: %s, Status code: %s, Status description: %s,"
                                  + " Latency: %d",
                              adapterClass,
                              adapterStatus.getInitializationState(),
                              adapterStatus.getDescription(),
                              adapterStatus.getLatency()));
                    }
                    // Adapter initialization is complete.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}

Wykluczanie modułów com.google.android.gms w integracjach zapośredniczenia

Adaptery mediacji nadal zależą od Google Mobile Ads SDK (Legacy). JednakGMA Next-Gen SDK obejmuje wszystkie klasy wymagane przez adaptery do zapośredniczenia. Aby uniknąć błędów kompilacji związanych ze zduplikowanymi symbolami, musisz wykluczyć Google Mobile Ads SDK (Legacy) z pobierania jako zależności przez adaptery mediacji.

W pliku build.gradle na poziomie aplikacji wyklucz globalnie moduły play-services-adsplay-services-ads-lite ze wszystkich zależności:

Kotlin

configurations.configureEach {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Zakręcony

configurations.configureEach {
    exclude group: "com.google.android.gms", module: "play-services-ads"
    exclude group: "com.google.android.gms", module: "play-services-ads-lite"
}

Sprawdzanie, która klasa adaptera sieci reklamowej wczytała reklamę

Oto przykładowy kod, który rejestruje nazwę klasy sieci reklamowej w przypadku reklamy banerowej:

Kotlin

BannerAd.load(
  BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  object : AdLoadCallback<BannerAd> {
    override fun onAdLoaded(ad: BannerAd) {
      Log.d(
        "MyApp", "Adapter class name: " +
          ad.getResponseInfo().mediationAdapterClassName
      )
    }
  }
)

Java

BannerAd.load(
  new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  new AdLoadCallback<BannerAd>() {
    @Override
    public void onAdLoaded(@NonNull BannerAd ad) {
      Log.d("MyApp",
          "Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
    }
  }
);

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

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 sekcjach Ustawienia dotyczące przepisów stanowych USA lub Ustawienia dotyczące RODO, aby dodać partnerów zapośredniczających reklamy do listy partnerów reklamowych w ramach amerykańskich przepisów stanowych lub RODO w sekcji Prywatność i wyświetlanie wiadomości w usłudze Ad Manager. 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) od Google.