Wymagania wstępne
Dokończ konfigurowanie zdarzeń niestandardowych.
Prośba o reklamę pełnoekranową
Gdy w łańcuchu pośrednictwa kaskadowego zostanie osiągnięty element zamówienia zdarzenia niestandardowego, metoda loadInterstitialAd()
zostanie wywołana z nazwą klasy podaną podczas tworzenia zdarzenia niestandardowego. W tym przypadku metoda znajduje się w SampleCustomEvent
, a następnie wywołuje metodę loadInterstitialAd()
w SampleInterstitialCustomEventLoader
.
Aby poprosić o reklamę pełnoekranową, utwórz lub zmodyfikuj klasę rozszerzającą Adapter
, aby zaimplementować loadInterstitialAd()
. Dodatkowo utwórz nową klasę, aby zaimplementować MediationInterstitialAd
.
W naszym przykładzie zdarzenia niestandardowego klasa SampleCustomEvent
rozszerza klasę Adapter
, a potem deleguje do niej wywołanie metody 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 te zadania:
Po zakończeniu wczytywania reklamy wyskakującej wywołaj metodę
MediationAdLoadCallback
.Zaimplementuj interfejs
MediationInterstitialAd
.Odbieranie i zgłaszanie wywołań zwrotnych zdarzeń reklamy do pakietu SDK do reklam mobilnych Google
Opcjonalny parametr zdefiniowany w interfejsie AdMob 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 udało się pobrać reklamę, czy wystąpił błąd, wywołasz metodę onSuccess()
lub onFailure()
.
Funkcja onSuccess()
jest wywoływana przez przekazanie wystąpienia klasy, która implementuje funkcję MediationInterstitialAd
.
Zwykle te metody są implementowane w ramach wywołań zwrotnych z zewnętrznego pakietu SDK, który jest używany 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)); }
MediationInterstitialAd
wymaga zaimplementowania metody showAd()
, aby wyświetlić reklamę:
Java
@Override public void showAd(@NonNull Context context) { sampleInterstitialAd.show(); }
Przekazywanie zdarzeń zapośredniczenia do pakietu SDK do reklam mobilnych Google
Po wywołaniu funkcji onSuccess()
adapter może użyć zwróconego obiektu MediationInterstitialAdCallback
do przekazywania zdarzeń prezentacji z zewnętrznego pakietu SDK do pakietu SDK do reklam mobilnych Google. Klasa SampleInterstitialCustomEventLoader
rozszerza interfejs SampleAdListener
, aby przekazywać wywołania zwrotne z próbnej sieci reklamowej do pakietu SDK do reklam mobilnych Google.
Ważne jest, aby Twoje zdarzenie niestandardowe przekazywało jak najwięcej wywołań zwrotnych, aby aplikacja otrzymywała te zdarzenia od pakietu SDK do reklam mobilnych Google. 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 GitHub. Możesz go używać z siecią reklamową, która jest już obsługiwana, lub zmodyfikować go, aby wyświetlać reklamy przejściowe zdarzeń niestandardowych.