Zapośredniczenie AdMob to funkcja, która pozwala wyświetlać w aplikacjach reklamy z wielu źródeł, w tym z sieci AdMob i zewnętrznych źródeł reklam. Pośrednictwo AdMob pomaga maksymalizować współczynnik wypełnienia i zwiększać przychody przez wysyłanie żądań reklamy do różnych sieci, by znaleźć najlepszą sieć do wyświetlania reklam. Studium przypadku.
Wymagania wstępne
Zanim zintegrujesz mediację z danym formatem reklamy, musisz go zintegrować z aplikacją:
- Banery reklamowe
- Reklamy pełnoekranowe
- Reklamy natywne
- Reklamy z nagrodą
- Reklamy pełnoekranowe z nagrodą
Dopiero zaczynasz korzystać z zapośredniczenia? Zapoznaj się z omówieniem 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
W tym przewodniku znajdziesz informacje o tym, jak inicjować 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 wczytał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()
.
Inicjalizacja obiektu reklamy za pomocą instancji Activity
W konstruktorze nowego obiektu reklamy (np.
AdView
)
musisz podać obiekt typu
Context
.
Wartość Context
jest przekazywana do innych sieci reklamowych podczas korzystania z zapośredniczenia. 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 z zapośredniczonymi sieciami reklamowymi.
Korzystanie z banerów reklamowych w zapośredniczeniu AdMob
Pamiętaj, aby wyłączyć odświeżanie we wszystkich interfejsach zewnętrznych źródeł reklam w jednostkach z banerami reklamowymi używanymi 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.
Korzystanie z reklam natywnych w ramach zapośredniczenia AdMob
Poniżej znajdziesz kilka sprawdzonych metod, które warto wziąć pod uwagę przy implementacji reklam natywnych w zapośredniczeniu AdMob.
- Zasady dotyczące prezentacji reklam natywnych
- Każda sieć reklamowa ma własne zasady. Pamiętaj, że korzystając z zapośredniczenia, musisz przestrzegać zasad sieci zapośredniczącej, która dostarczyła reklamę.
- Użyj
loadAd()
zamiastloadAds()
- Metoda
loadAds()
wyświetla tylko reklamy Google. W przypadku reklam pośredniczących użyj zamiast tego taguloadAd()
.
Amerykańskie przepisy stanowe o ochronie prywatności a RODO
Jeśli musisz przestrzegać przepisów stanowych USA o ochronie prywatności lub Ogólnego rozporządzenia o ochronie danych (RODO), wykonaj czynności opisane w ustawieniach dotyczących przepisów stanowych USA lub ustawieniach RODO, aby dodać partnerów pośredniczących do listy partnerów reklamowych w narzędziu Prywatność i wyświetlanie wiadomości w AdMob (stany USA) lub 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).