Rozpocznij

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

Wymagania wstępne

Zanim zintegrujesz mediację z formatem reklamy, musisz zintegrować ten format reklamy z aplikacją:

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

Inicjowanie pakietu GMA SDK nowej generacji

Krótki przewodnik pokazuje, jak zainicjować pakiet SDK do reklam mobilnych Google nowej generacji. Podczas tego wywołania inicjującego inicjowane są też adaptery mediacji. Aby mieć pewność, że każda sieć reklamowa uczestniczy w pierwszym żądaniu reklamy, 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 do zapośredniczenia nadal zależą od bieżącej wersji pakietu SDK do reklam mobilnych Google nowej generacji. Jednak pakiet SDK nowej generacji do reklam mobilnych Google zawiera wszystkie klasy wymagane przez adaptery zapośredniczenia. Aby uniknąć błędów kompilacji związanych ze zduplikowanymi symbolami, musisz wykluczyć bieżący pakiet SDK do reklam mobilnych Google nowej generacji z pobierania jako zależności przez adaptery do zapośredniczenia.

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

configurations {
  all {
    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 przestrzegać amerykańskich przepisów stanowych o ochronie prywatności lub Ogólnego rozporządzenia o ochronie danych (RODO), wykonaj czynności opisane w sekcji 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 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 użytkowników zgodnie z RODO za pomocą pakietu SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom od Google.