فيما يلي بعض أفضل ممارسات الدمج لعمليات التنفيذ الخاصة بالمطوّر في نظام Android. وستساعد نصائح وسيناريوهات كتابة التعليمات البرمجية فريقك على فهم مجموعة Audience Network SDK الخاصة بنا بشكل أفضل مما يجعل عملية الدمج أكثر فاعلية ويحافظ على تحديث الحل بعد التشغيل.
loadAd
مرة أخرى إلا عند تجاهل الإعلان أو حدوث خطأ عند تحميله باستثناء إعلانات البانر.حتى في حالة استلام إشعار بتجاهل الإعلان أو حدوث خطأ عند الاستدعاء، تأكد من وجود أقصى عدد للمحاولات لتجنب إعادة المحاولة بلا نهاية. سيتم استدعاء onError(Ad, AdError)
بغض النظر عن السبب وراء فشل تحميل الإعلان. على سبيل المثال، في حالة "عدم الاتصال بالإنترنت"، من المتوقع أن تتوقف عن تحميل الإعلان عند وصوله إلى أقصى عدد من المحاولات.
بالنسبة لأي نوع من الإعلانات باستثناء إعلان البانر في مجموعة Audience Network SDK، يجب توخي الحذر عند استدعاء loadAd
. يجب ألا تستدعي loadAd
مطلقًا عند عرض أحد الإعلانات. تتمثل أفضل ممارسة في تنفيذ AdListener
للحصول على الإشعارات عند تجاهل الإعلان أو إكماله أو إغلاقه أو حدوث أخطاء فيه مما يسمح لك قانونيًا باستدعاء loadAd
مرة أخرى وعدم حدوث أي مشكلات.
loadAd
ضمن الاستدعاء onInterstitialDismissed
.private InterstitialAd mInterstitialAd; private static final MAX_NUMBER_OF_RETRIES = 3; private boolean shouldLoadAd = true; private int retryCount = 0; @Override protected void onCreate(Bundle savedInstanceState) { // call the super class onCreate super.onCreate(savedInstanceState); ... mInterstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID"); InterstitialAdListener interstitialAdListener = new InterstitialAdListener() { ... @Override public void onInterstitialDismissed(Ad ad) { // Interstitial dismissed callback if (shouldLoadAd) { /* Change shouldLoadAd value to false, or a new interstitial ad will show immediately when previous interstitial ad gets dismissed. */ shouldLoadAd = false; mInterstitialAd.loadAd(); } } @Override public void onError(Ad ad, AdError adError) { // Ad error callback // Stop retrying when it reaches to MAX_NUMBER_OF_RETRIES if(retryCount < MainActivity.MAX_NUMBER_OF_RETRIES) { retryCount += 1; mInterstitialAd.loadAd(); } } ... }; mInterstitialAd.loadAd( mInterstitialAd.buildLoadAdConfig() .withAdListener(interstitialAdListener) .build()); ... }
onError
الخاص بـ NativeAd
.private static final MAX_NUMBER_OF_RETRIES = 3; private NativeAd mNativeAd; private int retryCount = 0; @Override protected void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... mNativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); NativeAdListener nativeAdListener = new AdListener() { ... @Override public void onError(Ad ad, AdError error) { // Ad error callback // Stop retrying when it reaches to MAX_NUMBER_OF_RETRIES if (retryCount < MainActivity.MAX_NUMBER_OF_RETRIES) { retryCount += 1; mNativeAd.loadAd(); } } ... }; mNativeAd.loadAd( mNativeAd.buildLoadAdConfig() .withAdListener(nativeAdListener) .build()); ... }
private Button showNativeAdButton; @Override public void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... showNativeAdButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Create a native ad request with a placement ID nativeAd = new NativeAd(NativeAdSampleActivity.this, "YOUR_PLACEMENT_ID"); // Create a listener to get notified when the ad was loaded. NativeAdListener nativeAdListener = new AdListener() { ... } // Initiate a request to load an ad. nativeAd.loadAd( nativeAd.buildLoadAdConfig() .withAdListener(nativeAdListener) .build()); } }); ... }
loadAd
أبدًا في بعض حالات استدعاء نظام Android، مثل استدعاء onResume()
أو onStart()
الذي قد يتسبب في استدعاء loadAd
عدة مرات دون تجاهل الإعلان الأخير في الذاكرة أو إطلاقه.@Override protected void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... mNativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); ... } @Override protected void onResume() { super.onResume(); ... // DON'T DO THIS! mNativeAd.loadAd( mNativeAd.buildLoadAdConfig() .withAdListener(NativeAdSampleActivity.this) .build()); }
loadAd
بلا نهاية في استدعاء onError. وفيما يلي مثال على الأمور التي يجب أن تتجنبها دائمًا. في حالة "عدم الاتصال بالإنترنت"، سيتم استدعاء loadAd
عدة مرات، ما يؤدي في النهاية إلى حدوث أعطال في تطبيقك.private NativeAd mNativeAd; private boolean shouldRetry = true; @Override protected void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... mNativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); NativeAdListener nativeAdListener = new AdListener() { ... @Override public void onError(Ad ad, AdError error) { // Ad error callback // Remember to change shouldRetry to false, or DON'T implement like this! if (shouldRetry) { mNativeAd.loadAd(); } } ... }; mNativeAd.loadAd( mNativeAd.buildLoadAdConfig() .withAdListener(NativeAdSampleActivity.this) .build()); ... }
اختبار دمج الإعلانات مع تطبيقك
قم بتقديم تطبيقك للمراجعة.
بمجرد استلامنا لطلب عرض إعلان من تطبيقك أو موقع الويب، سنقوم بمراجعته للتأكد من توافقه مع سياسات Audience Network ومعايير مجتمع فيسبوك. اعرف المزيد عن عملية المراجعة لدينا.
المزيد من الموارد |
دليل بدء الاستخدامدليل فني لبدء استخدام Audience Network | مرجع APIمرجع مجموعة Facebook SDK لنظام iOS |