Rozpocznij

Zapośredniczenie AdMob to funkcja, która umożliwia wyświetlanie reklam we własnych aplikacjach z wielu źródeł, w tym z sieci AdMob i zewnętrznych źródeł reklam, w jednym miejscu. Zapośredniczenie w AdMob pomaga maksymalizować współczynnik wypełnienia i zwiększać przychody, ponieważ wysyła żądania reklamy do różnych sieci, aby znaleźć najlepszą sieć do wyświetlania reklam. Studium przypadku.

Wymagania wstępne

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

Dopiero zaczynasz korzystać z zapośredniczenia? Przeczytaj artykuł Zapośredniczenie AdMob – omówienie.

Inicjowanie pakietu GMA Next Gen SDK

Krótki przewodnik pokazuje, jak zainicjować pakiet GMA Next Gen SDK. 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 mediacji.

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

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 z banerami używanych w zapośredniczeniu AdMob. Zapobiega to podwójnemu odświeżaniu, ponieważ AdMob również wywołuje odświeżanie na podstawie częstotliwości odświeżania jednostki z banerem reklamowym.

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

Jeśli musisz zachować zgodność z amerykańskimi przepisami stanowymi dotyczącymi 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 narzędziu Prywatność i wyświetlanie wiadomości w AdMob. 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 wymaganej przez RODO za pomocą pakietu SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom (UMP) od Google.