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 nową klasę do zaimplementowania
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 raportowanie wywołań zwrotnych zdarzeń reklamowych 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 Przykładowy pakiet SDK
zawiera 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 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 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(); }
Spowoduje to zakończenie implementacji zdarzeń niestandardowych w reklamach z nagrodą. Pełną listę przykład jest dostępny na GitHub 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ą.