Wymagania wstępne
Dokończ konfigurowanie zdarzeń niestandardowych.
Wysyłanie żądania reklamy z nagrodą
Gdy element zamówienia zdarzenia niestandardowego zostanie osiągnięty w łańcuchu zapośredniczenia kaskadowego,
metoda loadRewardedAd()
jest wywoływana dla nazwy klasy,
podawane podczas tworzenia niestandardowego
. W tym przypadku
ta metoda jest w komórce SampleCustomEvent
, która wywołuje metodę loadRewardedAd()
w komórce SampleRewardedCustomEventLoader
.
Aby wysłać żądanie reklamy z nagrodą, utwórz lub zmodyfikuj klasę, która rozszerza Adapter
do
zaimplementuj loadRewardedAd()
. Dodatkowo utwórz nowe zajęcia, aby wdrożyć MediationRewardedAd
.
W przykładzie zdarzenia niestandardowego:
SampleCustomEvent
rozszerza zajęcia Adapter
, a następnie przekazuje dostęp do
SampleRewardedCustomEventLoader
.
Java
package com.google.ads.mediation.sample.customevent; import com.google.android.gms.ads.mediation.Adapter; import com.google.android.gms.ads.mediation.MediationRewardedAdConfiguration; import com.google.android.gms.ads.mediation.MediationAdConfiguration; import com.google.android.gms.ads.mediation.MediationAdLoadCallback; import com.google.android.gms.ads.mediation.MediationRewardedAd; import com.google.android.gms.ads.mediation.MediationRewardedAdCallback; ... public class SampleCustomEvent extends Adapter { private SampleNativeCustomEventLoader nativeLoader; @Override public void loadRewardedAd( @NonNull MediationRewardedAdConfiguration mediationRewardedAdConfiguration, @NonNull MediationAdLoadCallback<MediationRewardedAd, MediationRewardedAdCallback> mediationAdLoadCallback) { rewardedLoader = new SampleRewardedCustomEventLoader( mediationRewardedAdConfiguration, mediationAdLoadCallback); rewardedLoader.loadAd(); } }
SampleRewardedCustomEventLoader
odpowiada za następujące zadania:
Wczytuję reklamę z nagrodą
Wdrażanie interfejsu
MediationRewardedAd
.Odbieranie i zgłaszanie wywołań zwrotnych zdarzeń reklamy do pakietu SDK do reklam mobilnych Google
Opcjonalny parametr zdefiniowany w interfejsie AdMob to
uwzględnionych w konfiguracji reklamy. Dostęp do parametru można uzyskać za pomocą:
adConfiguration.getServerParameters().getString(MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD)
Jest to zwykle identyfikator jednostki reklamowej wykorzystywany przez pakiet SDK sieci reklamowej
wymagane przy tworzeniu wystąpienia 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.MediationRewardedAdConfiguration; import com.google.android.gms.ads.mediation.MediationAdLoadCallback; import com.google.android.gms.ads.mediation.MediationRewardedAd; import com.google.android.gms.ads.mediation.MediationRewardedAdCallback; ... public class SampleRewardedCustomEventLoader extends SampleRewardedAdListener implements MediationRewardedAd { /** Configuration for requesting the rewarded ad from the third-party network. */ private final MediationRewardedAdConfiguration mediationRewardedAdConfiguration; /** * A {@link MediationAdLoadCallback} that handles any callback when a Sample * rewarded ad finishes loading. */ private final MediationAdLoadCallback<MediationRewardedAd, MediationRewardedAdCallback> mediationAdLoadCallback; /** Callback for rewarded ad events. */ private MediationRewardedAdCallback rewardedAdCallback; /** Constructor. */ public SampleRewardedCustomEventLoader( @NonNull MediationRewardedAdConfiguration mediationRewardedAdConfiguration, @NonNull MediationAdLoadCallback<MediationRewardedAd, MediationRewardedAdCallback> mediationAdLoadCallback) { this.mediationRewardedAdConfiguration = mediationRewardedAdConfiguration; this.mediationAdLoadCallback = mediationAdLoadCallback; } /** Loads the rewarded 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 AdMob UI when defining the custom event. Log.i("RewardedCustomEvent", "Begin loading rewarded ad."); String serverParameter = mediationRewardedAdConfiguration .getServerParameters() .getString(MediationConfiguration .CUSTOM_EVENT_SERVER_PARAMETER_FIELD); Log.d("RewardedCustomEvent", "Received server parameter."); SampleAdRequest request = createSampleRequest(mediationRewardedAdConfiguration); sampleRewardedAd = new SampleRewardedAd(serverParameter); sampleRewardedAd.setListener(this); Log.i("RewardedCustomEvent", "Start fetching rewarded ad."); sampleRewardedAd.loadAd(request); } 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
MediationRewardedAd
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 onRewardedAdLoaded() { rewardedAdCallback = mediationAdLoadCallback.onSuccess(this); } @Override public void onRewardedAdFailedToLoad(SampleErrorCode errorCode) { mediationAdLoadCallback.onFailure(SampleCustomEventError.createSampleSdkError(errorCode)); }
Aby wyświetlać, MediationRewardedAd
wymaga implementacji metody showAd()
reklama:
Java
@Override public void showAd(Context context) { if (!(context instanceof Activity)) { rewardedAdCallback.onAdFailedToShow( SampleCustomEventError.createCustomEventNoActivityContextError()); return; } Activity activity = (Activity) context; if (!sampleRewardedAd.isAdAvailable()) { rewardedAdCallback.onAdFailedToShow( SampleCustomEventError.createCustomEventAdNotAvailableError()); return; } sampleRewardedAd.showAd(activity); }
Przekierowywanie zdarzeń zapośredniczenia do pakietu SDK do reklam mobilnych Google
Po wywołaniu funkcji onSuccess()
zwrócona wartość MediationRewardedAdCallback
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 SampleRewardedCustomEventLoader
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 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 onAdRewarded(final String rewardType, final int amount) { RewardItem rewardItem = new RewardItem() { @Override public String getType() { return rewardType; } @Override public int getAmount() { return amount; } }; rewardedAdCallback.onUserEarnedReward(rewardItem); } @Override public void onAdClicked() { rewardedAdCallback.reportAdClicked(); } @Override public void onAdFullScreen() { rewardedAdCallback.onAdOpened(); rewardedAdCallback.onVideoStart(); rewardedAdCallback.reportAdImpression(); } @Override public void onAdClosed() { rewardedAdCallback.onAdClosed(); } @Override public void onAdCompleted() { rewardedAdCallback.onVideoComplete(); }
To kończy implementację zdarzeń niestandardowych w przypadku reklam z nagrodą. 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 aby wyświetlać niestandardowe reklamy z nagrodą.