Wymagania wstępne
Dokończ konfigurację zdarzeń niestandardowych.
Żądanie reklamy pełnoekranowej
Po dotarciu do elementu zamówienia zdarzenia niestandardowego w łańcuchu zapośredniczenia kaskadowegothe loadInterstitialAd()
method zostaje wywołana z nazwą klasy podaną podczas tworzenia zdarzenia niestandardowego. W tym przypadku jest to metoda SampleCustomEvent
, która wywołuje metodęthe loadInterstitialAd()
method in SampleInterstitialCustomEventLoader
.
Aby zażądać reklamy pełnoekranowej, utwórz lub zmodyfikuj klasę rozszerzenia Adapter
, aby zaimplementować loadInterstitialAd()
. Oprócz tego utwórz nową klasę do implementacji MediationInterstitialAd
.
W naszym przykładzie zdarzenia niestandardowego SampleCustomEvent
implementuje tagthe Adapter
interface , a potem przekazuje dostęp do funkcjiSampleInterstitialCustomEventLoader
.
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
jest odpowiedzialny za następujące zadania:
Wczytywanie reklamy pełnoekranowej i wywołanie
MediationAdLoadCallback
method po zakończeniu jej wczytywaniaWdrożenie funkcji
MediationInterstitialAd
interfaceOdbieranie i raportowanie wywołań zwrotnych zdarzeń reklamowych do pakietu SDK do reklam mobilnych Google
Opcjonalny parametr zdefiniowany w interfejsie AdMob jest uwzględniany w konfiguracji reklamy. Dostęp do parametru możesz uzyskać poprzez adConfiguration.getServerParameters().getString(MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD)
.
Ten parametr to zwykle identyfikator jednostki reklamowej, którego pakiet SDK sieci reklamowej wymaga do utworzenia instancji obiektu reklamowego.
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 się pobierze czy wystąpi błąd, wywołaj metodę onSuccess()
lub onFailure()
.
onSuccess()
jest wywoływane przez przekazanie instancji klasy, która implementuje MediationInterstitialAd
.
Zwykle metody te są implementowane w wywołaniach zwrotnych z zewnętrznego pakietu SDK zaimplementowanego przez adapter. W tym przykładzie przykładowy pakiet SDK zawiera element SampleAdListener
ze 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()
, by wyświetlić reklamę:
Java
@Override public void showAd(@NonNull Context context) { sampleInterstitialAd.show(); }
Przekierowywanie zdarzeń zapośredniczenia do pakietu SDK do reklam mobilnych Google
Po wywołaniu onSuccess()
zwrócony obiekt MediationInterstitialAdCallback
może zostać użyty przez adapter do przekazywania zdarzeń prezentacji z pakietu SDK firmy zewnętrznej do pakietu SDK do reklam mobilnych Google. Klasa SampleInterstitialCustomEventLoader
rozszerza interfejs SampleAdListener
, aby przekazywać wywołania zwrotne z przykładowej sieci reklamowej do pakietu SDK do reklam mobilnych Google.
Ważne jest, aby zdarzenie niestandardowe przekazywało jak najwięcej takich wywołań zwrotnych, aby aplikacja otrzymywała równoważne zdarzenia z 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(); }
Na tym kończy się implementacja zdarzeń niestandardowych w przypadku reklam pełnoekranowych. Pełny przykład znajdziesz na GitHub. Możesz go używać w sieci reklamowej, która jest już obsługiwana, lub zmodyfikować ją tak, aby wyświetlała niestandardowe reklamy pełnoekranowe zdarzeń.