Wymagania wstępne
Dokończ konfigurowanie zdarzeń niestandardowych.
Prośba o reklamę pełnoekranową
Gdy element zamówienia zdarzenia niestandardowego zostanie osiągnięty w łańcuchu zapośredniczenia kaskadowego,
metoda loadInterstitialAd()
jest wywoływana dla nazwy klasy podanej przez Ciebie podczas
utworzenie niestandardowego
. W tym przypadku
ta metoda jest w komórce SampleCustomEvent
, która wywołuje metodę
Metoda loadInterstitialAd()
w SampleInterstitialCustomEventLoader
.
Aby wysłać żądanie reklamy pełnoekranowej, utwórz lub zmodyfikuj klasę, która stanowi rozszerzenie Adapter
.
w celu zaimplementowania loadInterstitialAd()
. Dodatkowo utwórz nową klasę, aby zaimplementować MediationInterstitialAd
.
W przykładzie zdarzenia niestandardowego:
SampleCustomEvent
rozszerza zajęcia Adapter
, a następnie przekazuje dostęp do
SampleInterstitialCustomEventLoader
.
Java
package com.google.ads.mediation.sample.customevent; import com.google.android.gms.ads.mediation.Adapter; import com.google.android.gms.ads.mediation.MediationAdConfiguration; import com.google.android.gms.ads.mediation.MediationAdLoadCallback; import com.google.android.gms.ads.mediation.MediationInterstitialAd; import com.google.android.gms.ads.mediation.MediationInterstitialAdCallback; ... public class SampleCustomEvent extends Adapter { private SampleInterstitialCustomEventLoader interstitialLoader; @Override public void loadInterstitialAd( @NonNull MediationInterstitialAdConfiguration adConfiguration, @NonNull MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback> callback) { interstitialLoader = new SampleInterstitialCustomEventLoader(adConfiguration, callback); interstitialLoader.loadAd(); } }
SampleInterstitialCustomEventLoader
odpowiada za następujące zadania:
Wczytanie reklamy pełnoekranowej i wywołanie
MediationAdLoadCallback
po zakończeniu wczytywania.Zaimplementuj interfejs
MediationInterstitialAd
.Odbieranie i raportowanie wywołań zwrotnych zdarzeń reklamowych do pakietu SDK do reklam mobilnych Google
Opcjonalny parametr zdefiniowany w interfejsie Ad Managera jest uwzględniany w konfiguracji reklamy. Dostęp do parametru można uzyskać za pomocą:
adConfiguration.getServerParameters().getString(MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD)
Ten parametr to zwykle identyfikator jednostki reklamowej, którego pakiet SDK sieci reklamowej wymaga podczas tworzenia obiektu reklamy.
Java
package com.google.ads.mediation.sample.customevent; import com.google.android.gms.ads.mediation.Adapter; import com.google.android.gms.ads.mediation.MediationInterstitialAdConfiguration; import com.google.android.gms.ads.mediation.MediationAdLoadCallback; import com.google.android.gms.ads.mediation.MediationInterstitialAd; import com.google.android.gms.ads.mediation.MediationInterstitialAdCallback; ... public class SampleInterstitialCustomEventLoader extends SampleAdListener implements MediationInterstitialAd { /** A sample third-party SDK interstitial ad. */ private SampleInterstitial sampleInterstitialAd; /** Configuration for requesting the interstitial ad from the third-party network. */ private final MediationInterstitialAdConfiguration mediationInterstitialAdConfiguration; /** Callback for interstitial ad events. */ private MediationInterstitialAdCallback interstitialAdCallback; /** Callback that fires on loading success or failure. */ private final MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback> mediationAdLoadCallback; /** Constructor. */ public SampleInterstitialCustomEventLoader( @NonNull MediationInterstitialAdConfiguration mediationInterstitialAdConfiguration, @NonNull MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback> mediationAdLoadCallback) { this.mediationInterstitialAdConfiguration = mediationInterstitialAdConfiguration; this.mediationAdLoadCallback = mediationAdLoadCallback; } /** Loads the interstitial ad from the third-party ad network. */ public void loadAd() { // All custom events have a server parameter named "parameter" that returns // back the parameter entered into the UI when defining the custom event. Log.i("InterstitialCustomEvent", "Begin loading interstitial ad."); String serverParameter = mediationInterstitialAdConfiguration.getServerParameters().getString( MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD); Log.d("InterstitialCustomEvent", "Received server parameter."); sampleInterstitialAd = new SampleInterstitial(mediationInterstitialAdConfiguration.getContext()); sampleInterstitialAd.setAdUnit(serverParameter); // Implement a SampleAdListener and forward callbacks to mediation. sampleInterstitialAd.setAdListener(this); // Make an ad request. Log.i("InterstitialCustomEvent", "start fetching interstitial ad."); sampleInterstitialAd.fetchAd( SampleCustomEvent.createSampleRequest(mediationInterstitialAdConfiguration)); } public SampleAdRequest createSampleRequest( MediationAdConfiguration mediationAdConfiguration) { SampleAdRequest request = new SampleAdRequest(); request.setTestMode(mediationAdConfiguration.isTestRequest()); request.setKeywords(mediationAdConfiguration.getMediationExtras().keySet()); return request; } }
W zależności od tego, czy reklama została pobrana, czy też wystąpił błąd,
wywoła albo
onSuccess()
lub
onFailure()
Funkcja onSuccess()
jest wywoływana przez przekazanie instancji klasy, która implementuje
MediationInterstitialAd
Te metody są zwykle implementowane wewnątrz wywołań zwrotnych z funkcji
pakietu SDK innej firmy wdrożonego przez adapter. W tym przykładzie pakiet SDK Sample ma element SampleAdListener
z odpowiednimi wywołaniami zwrotnymi:
Java
@Override public void onAdFetchSucceeded() { interstitialAdCallback = mediationAdLoadCallback.onSuccess(this); } @Override public void onAdFetchFailed(SampleErrorCode errorCode) { mediationAdLoadCallback.onFailure(SampleCustomEventError.createSampleSdkError(errorCode)); }
Aby wyświetlać, MediationInterstitialAd
wymaga implementacji metody showAd()
reklama:
Java
@Override public void showAd(@NonNull Context context) { sampleInterstitialAd.show(); }
Przekierowywanie zdarzeń zapośredniczenia do pakietu SDK do reklam mobilnych Google
Po wywołaniu funkcji onSuccess()
zwrócona wartość MediationInterstitialAdCallback
może być następnie używany przez adapter do przekazywania zdarzeń prezentacji z interfejsu
zewnętrznego pakietu SDK do pakietu SDK do reklam mobilnych Google.
Klasa SampleInterstitialCustomEventLoader
rozszerza zakres SampleAdListener
do przekazywania wywołań zwrotnych z przykładowej sieci reklamowej do usługi Google Mobile
Pakiet SDK do wyświetlania reklam.
Ważne jest, aby zdarzenie niestandardowe przekazuje jak najwięcej z tych wywołań zwrotnych by aplikacja otrzymywała te same zdarzenia z Google Pakiet SDK do reklam mobilnych. Oto przykład użycia wywołań zwrotnych:
Java
@Override public void onAdFullScreen() { interstitialAdCallback.reportAdImpression(); interstitialAdCallback.onAdOpened(); } @Override public void onAdClosed() { interstitialAdCallback.onAdClosed(); }
To kończy implementację zdarzeń niestandardowych w przypadku reklam pełnoekranowych. Pełny przykład jest dostępny na GitHubie. Możesz go używać w sieci reklamowej, która jest już obsługiwana, lub zmienić ją na wyświetlać pełnoekranowe reklamy zdarzeń niestandardowych.