تحميل إعلان مدمج مع المحتوى

اختيار النظام الأساسي: Android iOS Flutter Unity Android (الإصدار القديم)

"الإعلانات المدمجة مع المحتوى" هي مواد عرض إعلانية يتم عرضها للمستخدمين من خلال مكوّنات واجهة مستخدم متوافقة مع النظام الأساسي. ويتم عرضها باستخدام أنواع العروض نفسها التي تستخدمها حاليًا لإنشاء تصاميمك، ويمكن تنسيقها لتتطابق مع التصميم المرئي لتطبيقك.

عند تحميل "إعلان مدمج مع المحتوى"، يتلقّى تطبيقك عنصر إعلان يحتوي على مواد عرضه، ويكون التطبيق مسؤولاً عن عرضها بدلاً من Google Mobile Ads SDK (Legacy)ثم

بشكل عام، يتضمّن عرض "الإعلانات المدمجة مع المحتوى" بنجاح جزأين: تحميل إعلان باستخدام حزمة SDK ثم عرض محتوى الإعلان في تطبيقك.

توضّح هذه الصفحة كيفية استخدام حزمة SDK لتحميل الإعلانات المدمجة مع المحتوى.

المتطلبات الأساسية

قبل المتابعة، عليك إعداد Google Mobile Ads SDK (Legacy).

الاختبار دائمًا باستخدام الإعلانات الاختبارية

عند إنشاء تطبيقاتك واختبارها، تأكَّد من استخدام الإعلانات الاختبارية بدلاً من الإعلانات الفعلية.

أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام رقم تعريف الوحدة الإعلانية الاختبارية المخصّصة "للإعلانات المدمجة مع المحتوى" على Android:

/21775744923/example/native

تم إعداد هذا الرقم خصيصًا لعرض إعلانات اختبارية لكل طلب، ويمكنك استخدامه في تطبيقاتك الخاصة أثناء الترميز والاختبار وتحديد الأخطاء وحلّها. ما عليك سوى استبداله برقم تعريف الوحدة الإعلانية الخاص بك قبل نشر تطبيقك.

لمعرفة تفاصيل حول الإعلانات الاختبارية Google Mobile Ads SDK (Legacy)، اطّلِع على مقالة تفعيل الإعلانات الاختبارية.

تحميل الإعلانات

يتم تحميل "الإعلانات المدمجة مع المحتوى" باستخدام فئة AdLoader التي تتضمّن فئة Builder الخاصة بها لتخصيصها أثناء الإنشاء. من خلال إضافة مستمعين إلى AdLoader عند إنشائه، يحدّد التطبيق أنواع "الإعلانات المدمجة مع المحتوى" التي يكون جاهزًا لتلقّيها. ثم يطلب AdLoader هذه الأنواع فقط.

إنشاء AdLoader

يوضّح الرمز البرمجي التالي كيفية إنشاء AdLoader يمكنه تحميل "الإعلانات المدمجة مع المحتوى":

جافا

// It is recommended to call AdLoader.Builder on a background thread.
new Thread(
        () -> {
          AdLoader adLoader =
              new AdLoader.Builder(context, "AD_UNIT_ID")
                  .forNativeAd(
                      new NativeAd.OnNativeAdLoadedListener() {
                        @Override
                        // The native ad loaded successfully. You can show the ad.
                        public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {}
                      })
                  .withAdListener(
                      new AdListener() {
                        @Override
                        // The native ad load failed. Check the adError message for failure
                        // reasons.
                        public void onAdFailedToLoad(@NonNull LoadAdError adError) {}
                      })
                  // Use the NativeAdOptions.Builder class to specify individual options
                  // settings.
                  .withNativeAdOptions(new NativeAdOptions.Builder().build())
                  .build();
        })
    .start();

Kotlin

// It is recommended to call AdLoader.Builder on a background thread.
CoroutineScope(Dispatchers.IO).launch {
  val adLoader =
    AdLoader.Builder(context, "AD_UNIT_ID")
      .forNativeAd { nativeAd ->
        // The native ad loaded successfully. You can show the ad.
      }
      .withAdListener(
        object : AdListener() {
          override fun onAdFailedToLoad(adError: LoadAdError) {
            // The native ad load failed. Check the adError message for failure reasons.
          }
        }
      )
      // Use the NativeAdOptions.Builder class to specify individual options settings.
      .withNativeAdOptions(NativeAdOptions.Builder().build())
      .build()
}

استبدِل AD_UNIT_ID برقم تعريف جهازك الاختباري.

إنّ طريقة forNativeAd() مسؤولة عن إعداد AdLoader لشكل NativeAd. عند تحميل إعلان بنجاح، يتم استدعاء طريقة onNativeAdLoaded() لكائن المستمع.

إعداد AdListener باستخدام AdLoader (اختياري)

عند إنشاء AdLoader، تضبط الدالة withAdListener عنصر AdListener للبرنامج. تأخذ الطريقة AdListener كمعلَمة وحيدة، والتي تتلقّى عمليات معاودة الاتصال من AdLoader عند وقوع أحداث يتم في مراحل نشاط الإعلان:

جافا

adLoaderBuilder.withAdListener(
    // Override AdListener callbacks here.
    new AdListener() {});

Kotlin

adLoaderBuilder.withAdListener(
  // Override AdListener callbacks here.
  object : AdListener() {}
)

طلب إدراج الإعلانات

بعد الانتهاء من إنشاء AdLoader، حان الوقت لاستخدامه لطلب الإعلانات. تتوفّر طريقتان لذلك: loadAd() وloadAds().

loadAd()

ترسِل هذه الطريقة طلبًا لعرض إعلان واحد.

جافا

adLoader.loadAd(new AdManagerAdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdManagerAdRequest.Builder().build())

loadAds()

ترسِل هذه الطريقة طلبًا لعرض إعلانات متعدّدة (ما يصل إلى خمسة إعلانات):

جافا

// Load three native ads.
adLoader.loadAds(new AdManagerAdRequest.Builder().build(), 3);

Kotlin

// Load three native ads.
adLoader.loadAds(AdManagerAdRequest.Builder().build(), 3)

تأخذ كلتا الطريقتَين كائنًا AdManagerAdRequest كمعلَمة أولى. هذه هي فئة AdManagerAdRequest نفسها التي تستخدمها إعلانات البانر والإعلانات البينية، ويمكنك استخدام طرق فئة AdManagerAdRequest لإضافة معلومات الاستهداف، تمامًا كما تفعل مع أشكال الإعلانات الأخرى.

تحميل إعلانات متعدّدة (اختياري)

تأخذ طريقة loadAds() معلَمة إضافية: عدد الإعلانات التي يجب أن تحاول حزمة SDK تحميلها للطلب. يبلغ هذا العدد خمسة كحد أقصى، وليس من المضمون أن تعرض حزمة SDK العدد المطلوب تمامًا من الإعلانات.

ستكون جميع إعلانات Google المعروضة مختلفة عن بعضها البعض، على الرغم من أنّه ليس من المضمون أن تكون الإعلانات من المساحة الإعلانية المحجوزة أو من المشترين الخارجيين فريدة.

لا تستخدِم طريقة loadAds() إذا كنت تستخدِم التوسّط، لأنّ طلبات عرض "الإعلانات المدمجة مع المحتوى" المتعدّدة لا تعمل مع أرقام تعريف الوحدات الإعلانية التي تم إعدادها للتوسّط.

عمليات معاودة الاتصال

بعد استدعاء loadAd()، يتم إجراء عملية معاودة اتصال واحدة بطرق المستمع المحدّدة سابقًا لعرض كائن "الإعلان المدمج مع المحتوى" أو الإبلاغ عن خطأ.

إلغاء تخصيص المَراجع

احرص على استخدام طريقة destroy() على "الإعلانات المدمجة مع المحتوى" التي تم تحميلها. يؤدي ذلك إلى إلغاء تخصيص المَراجع المستخدَمة ويمنع تسرّب الذاكرة.

تأكَّد من إلغاء تخصيص جميع مَراجع NativeAd في طريقة onDestroy() لنشاطك.

في معاودة الاتصال onNativeAdLoaded، احرص على إلغاء تخصيص أي "إعلانات مدمجة مع المحتوى" حالية سيتم إلغاء الإشارة إليها.

هناك عملية تحقّق أساسية أخرى وهي ما إذا تم إلغاء تخصيص النشاط، وفي هذه الحالة، استدعِ destroy() على الإعلان المعروض وارجِع على الفور:

جافا

nativeAd.destroy();

Kotlin

nativeAd.destroy()

أفضل الممارسات

اتّبِع هذه القواعد عند تحميل الإعلانات.

  • يجب أن تقوم التطبيقات التي تستخدم "الإعلانات المدمجة مع المحتوى" في قائمة بتخزين قائمة الإعلانات مؤقتًا.

  • عند تخزين الإعلانات مؤقتًا، امحُ ذاكرة التخزين المؤقت وأعِد التحميل بعد ساعة واحدة.

  • لا تستدعِ loadAd() على AdLoader إلى أن ينتهي تحميل الطلب الأول.
  • اقتصر على تخزين "الإعلانات المدمجة مع المحتوى" مؤقتًا على ما هو مطلوب فقط. على سبيل المثال، عند التخزين المؤقت، لا تخزِّن مؤقتًا إلا الإعلانات التي تظهر على الشاشة على الفور. تستهلك "الإعلانات المدمجة مع المحتوى" مساحة كبيرة من الذاكرة، ويؤدي تخزينها مؤقتًا بدون إلغاء تخصيصها إلى استخدام مفرط للذاكرة.

  • ألغِ تخصيص "الإعلانات المدمجة مع المحتوى" عندما لا يعود هناك حاجة إليها.

تسريع الأجهزة لإعلانات الفيديو

لكي تظهر إعلانات الفيديو بنجاح في طرق عرض "الإعلانات المدمجة مع المحتوى"، يجب تفعيل ميزة "تسريع الفيديو على الجهاز".

تكون ميزة تسريع الأجهزة مفعّلة تلقائيًا، ولكن قد تختار بعض التطبيقات إيقافها. إذا كان ذلك ينطبق على تطبيقك، ننصحك بتفعيل ميزة "تسريع الفيديو على الجهاز" لفئات الأنشطة التي تستخدم الإعلانات.

تفعيل ميزة تسريع الأجهزة

إذا كان تطبيقك لا يعمل بشكلٍ صحيح مع تفعيل ميزة تسريع الأجهزة على مستوى العالم، يمكنك التحكّم فيها للأنشطة الفردية أيضًا. لتفعيل ميزة تسريع الأجهزة أو إيقافها، استخدِم السمة android:hardwareAcceleratedلعنصرَي <application> و <activity> في ملف AndroidManifest.xml. يُفعِّل المثال التالي ميزة "تسريع الفيديو على الجهاز" للتطبيق بأكمله، ولكنّه يوقفها لنشاط واحد:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

راجِع دليل تسريع الأجهزة لمزيد من المعلومات حول خيارات التحكّم في ميزة "تسريع الأجهزة". يُرجى العِلم أنّه لا يمكن تفعيل طرق عرض الإعلانات الفردية لميزة "تسريع الأجهزة" إذا كانت ميزة "تسريع الأجهزة" غير مفعّلة للنشاط، لذا يجب أن تكون ميزة "تسريع الأجهزة" مفعّلة للنشاط نفسه.

عرض إعلانك

بعد تحميل إعلان، ما عليك سوى عرضه للمستخدمين. لمزيد من المعلومات، اطّلِع على مقالتَي "إعلان مدمج مع المحتوى (متقدّم)" أو "الإعلانات المدمجة مع المحتوى بملء الشاشة".