Zapośredniczenie AdMob to funkcja, która umożliwia wyświetlanie reklam w aplikacjach z wielu źródeł, w tym z sieci AdMob, sieci reklamowych innych firm oraz z kampanii AdMob. Zapośredniczenie AdMob pozwala zmaksymalizować współczynnik wypełnienia i zwiększyć przychody przez wysyłanie żądań reklamy do różnych sieci, aby znaleźć najlepszą sieć do wyświetlania reklam. Studium przypadku.
Wymagania wstępne
Zanim zintegrujesz zapośredniczenie z formatem reklamy, musisz zintegrować ten format reklamy z aplikacją:
- Banery reklamowe
- Reklamy pełnoekranowe
- Reklamy z nagrodą
- Reklamy pełnoekranowe z nagrodą
- Reklamy natywne
Dopiero zaczynasz korzystać z zapośredniczenia? Przeczytaj Omówienie zapośredniczenia AdMob.
Do określania stawek: pakiet SDK do reklam mobilnych Google w wersji 18.3.0lub nowszej.
Zainicjuj pakiet SDK do reklam mobilnych
Z tego krótkiego przewodnika dowiesz się, jak zainicjować pakiet SDK do reklam mobilnych. Podczas tego wywołania zainicjowane zostaną również zapośredniczenie i adaptery stawek. Aby mieć pewność, że reklamy zostaną pobrane z każdej sieci reklamowej przy pierwszym żądaniu reklamy, musisz poczekać na zakończenie procesu jej wczytywania.
Przykładowy kod poniżej pokazuje, jak sprawdzić stan zainicjowania 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); MobileAds.initialize(this, new OnInitializationCompleteListener() { @Override public void onInitializationComplete(InitializationStatus 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... } }); } }
Kotlin
import com.google.android.gms.ads.MobileAds MobileAds.initialize(this) { 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 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) }
Więcej informacji o tej metodzie znajdziesz w dokumentacji ResponseInfo
na stronie getMediationAdapterClassName()
.
Inicjowanie obiektu reklamy za pomocą wystąpienia aktywności
W konstruktorze nowego obiektu reklamy (np.AdView
),musisz przekazać obiekt typu Context
.
Podczas korzystania z zapośredniczenia ta Context
jest przekazywana do innych sieci reklamowych. Niektóre sieci reklamowe wymagają bardziej restrykcyjnego typu Context
, który jest typu Activity
, i może nie być w stanie wyświetlać reklam bez instancji Activity
. Z tego powodu zalecamy zainicjowanie obiektu Activity
podczas inicjowania obiektów reklam, aby zapewnić spójność z zapośredniczonymi sieciami reklamowymi.
Zapośredniczenie banerów reklamowych
Pamiętaj, aby wyłączyć odświeżanie we wszystkich interfejsach zewnętrznych sieci reklamowych w przypadku jednostek banerów reklamowych używanych w AdMob zapośredniczeniu. Zapobiegnie to podwójnemu odświeżeniu, AdMob ponieważ spowoduje to też odświeżanie oparte na częstotliwości odświeżania jednostki z banerem reklamowym.
Zapośredniczenie reklam z nagrodą
Zalecamy zastąpienie wszystkich domyślnych wartości nagród poprzez ustawienie ich w AdMob interfejsie. Aby to zrobić, zaznacz pole Zastosuj do wszystkich sieci w grupach zapośredniczenia , aby nagroda była taka sama we wszystkich sieciach. Niektóre sieci reklamowe w ogóle nie oferują żadnej wartości lub typu nagrody. Jeśli zastąpisz wartość nagrody, nagroda będzie taka sama niezależnie od sieci reklamowej, która wyświetliła reklamę.
Więcej informacji o ustawianiu wartości nagród w interfejsie AdMob znajdziesz w artykule o tworzeniu jednostki reklamowej z nagrodą.
Zapośredniczenie reklam natywnych
Poniżej znajdziesz sprawdzone metody, które warto wziąć pod uwagę podczas wdrażania zapośredniczenia natywnego.
- Zasady dotyczące wyświetlania reklam natywnych
- Każda sieć reklamowa ma własne zasady. Korzystając z zapośredniczenia, musisz pamiętać, że Twoja aplikacja musi być zgodna z zasadami zapośredniczonej sieci, która udostępniła reklamę.
- Użyj
loadAd()
zamiastloadAds()
- Metoda
loadAds()
wyświetla obecnie tylko reklamy Google. W przypadku reklam zapośredniczonych zamiast tego użyjloadAd()
.
CCPA i RODO
Jeśli musisz zachować zgodność z kalifornijską ustawą o ochronie prywatności konsumentów (California Consumer Privacy Act, CCPA) lub ogólnym rozporządzeniem o ochronie danych (RODO), wykonaj czynności opisane w ustawieniach dotyczących CCPA lub ustawień RODO, aby dodać partnerów ds. zapośredniczenia na liście partnerów reklamowych w zakresie prywatności i wiadomości zgodnych z CCPA 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 CCPA i uzyskiwaniu zgody na podstawie RODO za pomocą pakietu SDK Google User Messaging Platform (UMP).