المتطلبات الأساسية
أكمِل إعداد الأحداث المخصّصة.
طلب إعلان مقابل مكافأة
عند الوصول إلى عنصر الحدث المخصّص في سلسلة توسّط العرض الإعلاني بدون انقطاع، يتم استدعاء طريقة 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. ويمكنك استخدامه مع شبكة إعلانية متوافقة أو تعديله لعرض إعلانات مخصّصة للمكافآت مرتبطة بأحداث معيّنة.