المتطلبات الأساسية
أكمِل إعداد الأحداث المخصّصة.
طلب إعلان يضم مكافأة
عند الوصول إلى عنصر الحدث المخصّص في سلسلة توسّط العرض الإعلاني بدون انقطاع،
يتم استدعاء طريقة loadRewardedAd()
باسم الفئة الذي
المقدمة عند إنشاء تصميم مخصص
. في هذه الحالة،
تظهر هذه الطريقة في SampleCustomEvent
، والتي تستدعي بعد ذلك طريقة loadRewardedAd()
في SampleRewardedCustomEventLoader
.
لطلب إعلان يضم مكافأة، يجب إنشاء أو تعديل فئة تمتد من Adapter
إلى
تنفيذ loadRewardedAd()
. بالإضافة إلى ذلك، أنشئ فئة جديدة لتنفيذ
MediationRewardedAd
.
في مثال الحدث المخصّص،
يوسع SampleCustomEvent
فئة Adapter
ثم يفوض إلى
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
" مسؤولية المهام التالية:
جارٍ تحميل الإعلان الذي يضم مكافأة
تنفيذ واجهة
MediationRewardedAd
تلقّي استدعاءات أحداث الإعلانات وإعداد تقارير عنها إلى حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"
المعلمة الاختيارية المحددة في واجهة مستخدم AdMob هي
مضمّنة في إعدادات الإعلان. يمكن الوصول إلى المعلمة من خلال
adConfiguration.getServerParameters().getString(MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD)
تكون هذه المَعلمة عادةً معرّف وحدة إعلانية تتطلّبه حزمة تطوير البرامج (SDK) لشبكة الإعلانات عند إنشاء مثيل لعنصر إعلان.
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; } }
استنادًا إلى ما إذا تم جلب الإعلان بنجاح أو حدث خطأ،
يمكنك استدعاء إما
onSuccess()
أو
onFailure()
.
يتم استدعاء onSuccess()
من خلال تمرير مثيل للفئة التي تنفذ
MediationRewardedAd
عادةً، يتم تنفيذ هذه الطرق داخل استدعاءات من
حزمة تطوير البرامج (SDK) التابعة لجهة خارجية التي ينفّذها المحوّل. في هذا المثال، نموذج حزمة SDK
لدى SampleAdListener
مع استدعاءات ذات صلة:
Java
@Override public void onRewardedAdLoaded() { rewardedAdCallback = mediationAdLoadCallback.onSuccess(this); } @Override public void onRewardedAdFailedToLoad(SampleErrorCode errorCode) { mediationAdLoadCallback.onFailure(SampleCustomEventError.createSampleSdkError(errorCode)); }
يتطلب MediationRewardedAd
تنفيذ طريقة showAd()
لعرض
الإعلان:
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); }
إعادة توجيه أحداث التوسّط إلى "مجموعة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة"
بعد طلب onSuccess()
، يتم عرض MediationRewardedAdCallback
عن طريق المحول لإعادة توجيه أحداث العرض التقديمي من
حزمة تطوير البرامج (SDK) التابعة لجهة خارجية إلى حزمة "SDK لإعلانات Google على الأجهزة الجوّالة". تُوسّع فئة
SampleRewardedCustomEventLoader
واجهة SampleAdListener
لإعادة توجيه عمليات الاستدعاء من نموذج الشبكة الإعلانية إلى "SDK لإعلانات Google
على الأجهزة الجوّالة".
من المهم أن يعيد توجيه الحدث المخصّص أكبر عدد ممكن من عمليات تسجيل الإحالات الناجحة هذه، لكي يتلقّى تطبيقك هذه الأحداث المماثلة من حزمة SDK لإعلانات Google على الأجهزة الجوّالة. في ما يلي مثال على استخدام وظائف الاستدعاء:
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(); }
وبذلك، تكون قد أكملت تنفيذ الأحداث المخصّصة للإعلانات التي تضم مكافأة. يتوفر المثال على GitHub. ويمكنك استخدامه مع شبكة إعلانية متوافقة أو تعديله لعرض إعلانات مخصّصة للمكافآت مرتبطة بأحداث.