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

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

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

بوجهٍ عام، هناك جزءان لتنفيذ الإعلانات المدمجة مع المحتوى بنجاح: تحميل إعلان باستخدام حزمة SDK ثم عرض محتوى الإعلان في تطبيقك.

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

يمكنك أيضًا الاطّلاع على بعض قصص نجاح العملاء: دراسة الحالة 1، دراسة الحالة 2.

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

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

عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات تجريبية بدلاً من إعلانات بث مباشر

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

ca-app-pub-3940256099942544/2247696110

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

لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية لحزمة "SDK لإعلانات Google على الأجهزة الجوّالة"، يُرجى الاطّلاع على الإعلانات الاختبارية:

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

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

إنشاء أداة تحميل إعلانات

يوضح الرمز التالي كيفية إنشاء AdLoader يمكنها تحميل محتوى أصلي الإعلانات:

Java

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

تشير رسالة الأشكال البيانية forNativeAd() مسؤولة عن إعداد AdLoader للتنسيق NativeAd. عند تحميل إعلان بنجاح، يبدأ عنصر المستمع "onNativeAdLoaded()" المريض.

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

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

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

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

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

loadAd()

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

Java

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

Kotlin

adLoader.loadAd(AdRequest.Builder().build())

loadAds()

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

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

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

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

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

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

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

طلبات معاودة الاتصال

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

بعد معاودة الاتصال بالرقم loadAds()، يتم إجراء معاودة الاتصال هذه متعددة (واحدة على الأقل، وليس أكثر من عدد الإعلانات المطلوبة). التطبيقات التي تطلب إعلانات متعددة يجب استدعاء AdLoader.isLoading() في عمليات تنفيذ معاودة الاتصال إلى لتحديد ما إذا كانت عملية التحميل قد انتهت.

إليك مثال يوضّح كيفية التحقّق من isLoading() في معاودة الاتصال من onNativeAdLoaded():

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

تحرير الموارد

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

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

أثناء معاودة الاتصال على onNativeAdLoaded، تأكَّد من إتلاف أي بيانات حالية. الإعلانات المدمجة مع المحتوى التي ستتم إزالة الإشارة إليها

يمكنك إجراء عملية تحقّق أخرى وهي ما إذا كان النشاط قد تم إتلافه، وفي حال حدوث ذلك، يُرجى الاتصال بـ "destroy()" على الإعلان الذي تم إرجاعه والعودة فورًا:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

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

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

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

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

  • عدم الاتصال بـ loadAd() أو loadAds() على 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>

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

عرض إعلانك

وبعد تحميل أحد الإعلانات، كل ما تبقى هو عرضه للمستخدمين. انتقِل إلى الإصدار المتقدم من الإعلانات المدمجة مع المحتوى الدليل لمعرفة كيفية إجراء ذلك.