پیش نیازها
راه اندازی رویدادهای سفارشی را کامل کنید.
درخواست آگهی بینابینی
هنگامی که آیتم خط رویداد سفارشی در زنجیره واسطه آبشار به دست میآید، متد loadInterstitialAd()
بر روی نام کلاسی که هنگام ایجاد یک رویداد سفارشی ارائه کردهاید فراخوانی میشود. در این مورد، آن متد در SampleCustomEvent
است، که سپس متد loadInterstitialAd()
را در SampleInterstitialCustomEventLoader
فراخوانی میکند.
برای درخواست تبلیغ بینابینی، کلاسی را ایجاد یا تغییر دهید که Adapter
برای پیاده سازی loadInterstitialAd()
گسترش دهد. علاوه بر این، یک کلاس جدید برای پیاده سازی MediationInterstitialAd
ایجاد کنید.
در مثال رویداد سفارشی ما، SampleCustomEvent
کلاس Adapter
را گسترش می دهد و سپس به SampleInterstitialCustomEventLoader
واگذار می کند.
جاوا
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
مسئول وظایف زیر است:
بارگیری آگهی بینابینی و فراخوانی روش
MediationAdLoadCallback
پس از اتمام بارگیری.پیاده سازی رابط
MediationInterstitialAd
.دریافت و گزارش تماسهای رویداد تبلیغاتی به 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.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; } }
بسته به اینکه آیا تبلیغ با موفقیت واکشی شده است یا با خطا مواجه میشود، میتوانید onSuccess()
یا onFailure()
فراخوانی کنید. onSuccess()
با ارسال نمونه ای از کلاسی که MediationInterstitialAd
پیاده سازی می کند فراخوانی می شود.
به طور معمول، این روشها در داخل فراخوانهای SDK شخص ثالثی که آداپتور شما پیادهسازی میکند، پیادهسازی میشود. برای این مثال، Sample SDK دارای SampleAdListener
با تماسهای مربوطه است:
جاوا
@Override public void onAdFetchSucceeded() { interstitialAdCallback = mediationAdLoadCallback.onSuccess(this); } @Override public void onAdFetchFailed(SampleErrorCode errorCode) { mediationAdLoadCallback.onFailure(SampleCustomEventError.createSampleSdkError(errorCode)); }
MediationInterstitialAd
به پیاده سازی متد showAd()
برای نمایش تبلیغ نیاز دارد:
جاوا
@Override public void showAd(@NonNull Context context) { sampleInterstitialAd.show(); }
رویدادهای میانجی را به Google Mobile Ads SDK بازارسال کنید
پس از فراخوانی onSuccess()
، شی MediationInterstitialAdCallback
برگردانده شده میتواند توسط آداپتور برای ارسال رویدادهای ارائه از SDK شخص ثالث به Google Mobile Ads SDK استفاده شود. کلاس SampleInterstitialCustomEventLoader
رابط SampleAdListener
گسترش میدهد تا تماسهای برگشتی از شبکه تبلیغات نمونه به Google Mobile Ads SDK ارسال شود.
مهم است که رویداد سفارشی شما تا آنجایی که ممکن است این تماسهای پاسخگو را فوروارد کند تا برنامه شما این رویدادهای مشابه را از Google Mobile Ads SDK دریافت کند. در اینجا مثالی از استفاده از callback آورده شده است:
جاوا
@Override public void onAdFullScreen() { interstitialAdCallback.reportAdImpression(); interstitialAdCallback.onAdOpened(); } @Override public void onAdClosed() { interstitialAdCallback.onAdClosed(); }
این پیاده سازی رویدادهای سفارشی را برای تبلیغات بینابینی تکمیل می کند. نمونه کامل در GitHub موجود است. میتوانید آن را با یک شبکه تبلیغاتی که قبلاً پشتیبانی میشود استفاده کنید یا آن را برای نمایش آگهیهای بینابینی رویداد سفارشی تغییر دهید.