پیش نیازها
راه اندازی رویدادهای سفارشی را کامل کنید.
درخواست آگهی با پاداش
هنگامی که آیتم خط رویداد سفارشی در زنجیره واسطه آبشار به دست میآید، متد loadRewardedAd()
بر روی نام کلاسی که هنگام ایجاد یک رویداد سفارشی ارائه کردهاید فراخوانی میشود. در این مورد، آن متد در SampleCustomEvent
است، که سپس متد loadRewardedAd()
را در SampleRewardedCustomEventLoader
فراخوانی میکند.
برای درخواست تبلیغ پاداش، کلاسی ایجاد یا تغییر دهید که Adapter
برای پیاده سازی loadRewardedAd()
گسترش دهد. علاوه بر این، یک کلاس جدید برای پیاده سازی MediationRewardedAd
ایجاد کنید.
در مثال رویداد سفارشی ما، SampleCustomEvent
کلاس Adapter
را گسترش می دهد و سپس به SampleRewardedCustomEventLoader
واگذار می کند.
جاوا
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
مسئول وظایف زیر است:
در حال بارگیری آگهی با پاداش
پیاده سازی رابط
MediationRewardedAd
.دریافت و گزارش تماسهای رویداد تبلیغاتی به Google Mobile Ads SDK
پارامتر اختیاری تعریف شده در رابط کاربری AdMob در پیکربندی آگهی گنجانده شده است. این پارامتر از طریق adConfiguration.getServerParameters().getString(MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD)
قابل دسترسی است. این پارامتر معمولاً یک شناسه واحد تبلیغاتی است که یک SDK شبکه تبلیغاتی هنگام نمونهبرداری از یک شی تبلیغاتی به آن نیاز دارد.
جاوا
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; } }
بسته به اینکه آیا تبلیغ با موفقیت واکشی شده است یا با خطا مواجه میشود، میتوانید onSuccess()
یا onFailure()
فراخوانی کنید. onSuccess()
با ارسال نمونه ای از کلاسی که MediationRewardedAd
پیاده سازی می کند فراخوانی می شود.
به طور معمول، این روشها در داخل فراخوانهای SDK شخص ثالثی که آداپتور شما پیادهسازی میکند، پیادهسازی میشود. برای این مثال، Sample SDK دارای SampleAdListener
با تماسهای مربوطه است:
جاوا
@Override public void onRewardedAdLoaded() { rewardedAdCallback = mediationAdLoadCallback.onSuccess(this); } @Override public void onRewardedAdFailedToLoad(SampleErrorCode errorCode) { mediationAdLoadCallback.onFailure(SampleCustomEventError.createSampleSdkError(errorCode)); }
MediationRewardedAd
به پیاده سازی متد showAd()
برای نمایش تبلیغ نیاز دارد:
جاوا
@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); }
رویدادهای میانجی را به Google Mobile Ads SDK بازارسال کنید
پس از فراخوانی onSuccess()
، شی MediationRewardedAdCallback
برگردانده شده میتواند توسط آداپتور برای ارسال رویدادهای ارائه از SDK شخص ثالث به Google Mobile Ads SDK استفاده شود. کلاس SampleRewardedCustomEventLoader
رابط SampleAdListener
گسترش میدهد تا تماسهای برگشتی از شبکه تبلیغات نمونه به Google Mobile Ads SDK ارسال شود.
مهم است که رویداد سفارشی شما تا آنجایی که ممکن است این تماسهای پاسخگو را فوروارد کند تا برنامه شما این رویدادهای مشابه را از Google Mobile Ads SDK دریافت کند. در اینجا مثالی از استفاده از callback آورده شده است:
جاوا
@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(); }
این پیاده سازی رویدادهای سفارشی را برای تبلیغات پاداش تکمیل می کند. نمونه کامل در GitHub موجود است. میتوانید آن را با یک شبکه تبلیغاتی که قبلاً پشتیبانی میشود استفاده کنید یا آن را برای نمایش آگهیهای پاداش رویداد سفارشی تغییر دهید.