Zapośredniczenie w AdMob to funkcja, która umożliwia wyświetlanie w aplikacjach reklam z wielu źródeł, w tym z sieci AdMob i zewnętrznych źródeł reklam. 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 danym formatem reklamy, musisz go zintegrować z aplikacją:
- Banery reklamowe
- Reklamy pełnoekranowe
- Reklamy natywne
- Reklamy z nagrodą
- Reklamy pełnoekranowe z nagrodą
Zapoznałeś się już z zaproszeniem? Zapoznaj się z omówieniem zapośredniczenia AdMob.
Do określania stawek: pakiet SDK do reklam mobilnych Google w wersji 18.3.0 lub nowszej.
Inicjowanie pakietu SDK do reklam mobilnych
W tym przewodniku znajdziesz informacje o tym, jak inicjować pakiet SDK do reklam mobilnych. Podczas tego wywołania inicjalizacji są też inicjowane adaptery mediacji. Zanim zaczniesz wczytywać reklamy, musisz poczekać na zakończenie inicjowania, aby mieć pewność, że każda sieć reklamowa będzie w pełni uczestniczyć w procesie po pierwszym żądaniu reklamy.
Poniższy przykładowy kod pokazuje, jak sprawdzić stan inicjowania poszczególnych adapterów 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...
}
}
}
}
Sprawdzanie klasy adaptera sieci reklamowej, która wczytała reklamę
Oto przykładowy kod, który rejestruje nazwę klasy sieci reklamowej dla 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)
}
Szczegóły na temat tej metody znajdziesz w dokumentacji ResponseInfo
w 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 Context
typu Activity
i mogą nie być w stanie wyświetlać reklam bez instancji Activity
. Dlatego podczas inicjowania obiektów reklam zalecamy przekazanie instancji Activity
, aby zapewnić spójność w przypadku zapośredniczonych sieci reklamowych.
Korzystanie z banerów reklamowych w ramach zapośredniczenia AdMob
Pamiętaj, aby wyłączyć odświeżanie we wszystkich interfejsach zewnętrznych źródeł reklam w przypadku jednostek reklamy typu baner używanej w ramach zapośredniczenia AdMob. Zapobiega to podwójnemu odświeżaniu, ponieważ AdMob uruchamia też odświeżanie na podstawie częstotliwości odświeżania jednostki z banerem reklamowym.
Korzystanie z reklam natywnych w ramach zapośredniczenia AdMob
Oto kilka sprawdzonych metod, które warto zastosować podczas implementowania 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 ustawień 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 do listy partnerów reklamowych 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 (RDP) i uzyskiwaniu zgody na podstawie RODO za pomocą pakietu SDK User Messaging Platform (UMP) od Google.