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

اختيار النظام الأساسي: Android جديد Android iOS Flutter Unity

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

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

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

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

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

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

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

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

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

/21775744923/example/native

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

للاطّلاع على تفاصيل Google Mobile Ads SDK "الإعلانات التجريبية"، يُرجى الرجوع إلى مقالة تفعيل "الإعلانات التجريبية".

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

يتم تحميل "الإعلانات المدمجة مع المحتوى" باستخدام فئة GADAdLoader ، التي ترسل رسائل إلى مفوّضيها وفقًا لبروتوكول GADAdLoaderDelegate.

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

تهيئة أداة تحميل الإعلانات

قبل أن تتمكّن من تحميل إعلان، عليك تهيئة أداة تحميل الإعلانات. يوضّح الرمز التالي كيفية تهيئة GADAdLoader:

Swift

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  // To receive native ads, the ad loader's delegate must
  // conform to the NativeAdLoaderDelegate protocol.
  adTypes: [.native],
  // Use nil for default options.
  options: nil)
// Set the delegate before making an ad request.
adLoader.delegate = self

استبدِل nativeAdUnitID برقم تعريف الوحدة الإعلانية.

Objective-C

self.adLoader =
    [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                       // The UIViewController parameter is optional.
                       rootViewController:self
                                  // To receive native ads, the ad loader's delegate must
                                  // conform to the NativeAdLoaderDelegate protocol.
                                  adTypes:@[ GADAdLoaderAdTypeNative ]
                                  // Use nil for default options.
                                  options:nil];
// Set the delegate before making an ad request.
self.adLoader.delegate = self;

استبدِل kNativeAdUnitID برقم تعريف الوحدة الإعلانية.

ستحتاج إلى رقم تعريف وحدة إعلانية (يمكنك استخدام رقم التعريف التجريبي)، وثوابت لتمريرها في مصفوفة adTypes لتحديد أشكال "الإعلانات المدمجة مع المحتوى" التي تريد طلبها، وأي خيارات تريد ضبطها في المَعلمة options. يمكنك الاطّلاع على قائمة القيم المحتمَلة للمَعلمة options في صفحة ضبط خيارات "الإعلانات المدمجة مع المحتوى".

يجب أن تحتوي مصفوفة adTypes على واحد أو أكثر من الثوابت التالية :

تنفيذ مفوّض أداة تحميل الإعلانات

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

Swift

func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self

  // TODO: Display the native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self;

  // TODO: Display the native ad.
}

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

Swift

func adLoader(_ adLoader: AdLoader, didReceive customNativeAd: CustomNativeAd) {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self

  // TODO: Display the custom native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveCustomNativeAd:(GADCustomNativeAd *)customNativeAd {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self;

  // TODO: Display the custom native ad.
}

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

بعد تهيئة GADAdLoader، استخدِم طريقة loadRequest: لطلب إعلان:

Swift

adLoader.load(AdManagerRequest())

Objective-C

[self.adLoader loadRequest:[GAMRequest request]];

تقبل loadRequest: طريقة في GADAdLoader كائنات GAMRequest نفسها التي تقبلها إعلانات البانر والإعلانات البينية. يمكنك استخدام كائنات الطلبات لإضافة معلومات الاستهداف، تمامًا كما تفعل مع أنواع الإعلانات الأخرى.

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

لتحميل إعلانات متعدّدة في طلب واحد، اضبط الـ GADMultipleAdsAdLoaderOptions عند تهيئة GADAdLoader.

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5
adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  adTypes: [.native],
  options: [multipleAdOptions])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdOptions = [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdOptions.numberOfAds = 5;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                                   // The UIViewController parameter is optional.
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ multipleAdOptions ]];

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

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

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

تحديد وقت انتهاء التحميل

بعد أن يستدعي التطبيق loadRequest:، يمكنه الحصول على نتائج الطلب باستخدام استدعاءات:

سيؤدي طلب إعلان واحد إلى استدعاء إحدى هاتَين الطريقتَين مرة واحدة.

سيؤدي طلب إعلانات متعدّدة إلى استدعاء إحدى الطريقتَين أعلاه مرة واحدة على الأقل، ولكن ليس أكثر من الحد الأقصى لعدد الإعلانات المطلوبة.

بالإضافة إلى ذلك، يقدّم GADAdLoaderDelegate معاودة الاتصال adLoaderDidFinishLoading. تشير طريقة المفوّض هذه إلى أنّ عامل تحميل الإعلانات قد انتهى من تحميل الإعلانات ولن يتم الإبلاغ عن أي إعلانات أو أخطاء أخرى للطلب. في ما يلي مثال على كيفية استخدامها عند تحميل عدّة "إعلانات مدمجة مع المحتوى" في آنٍ واحد:

Swift

func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
  // The adLoader has finished loading ads.
}

Objective-C

- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
  // The adLoader has finished loading ads.
}

التعامل مع الطلبات التي تعذّر تنفيذها

توسّع البروتوكولات بروتوكول GADAdLoaderDelegate، الذي يحدّد رسالة يتم إرسالها عندما يتعذّر تحميل الإعلانات.

Swift

func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
  // The adLoader failed to receive an ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
  // The adLoader failed to receive an ad.
}

تلقّي إشعارات بشأن أحداث "الإعلانات المدمجة مع المحتوى"

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

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

بعد ذلك، نفِّذ GADNativeAdDelegate لتلقّي استدعاءات المفوّض التالية:

Swift

func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

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

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

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

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

  • لا تستدعِ loadRequest: مرة أخرى على GADAdLoader إلى أن ينتهي تحميل الطلب السابق ، كما هو موضّح في adLoaderDidFinishLoading:.

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

  • أزِل "الإعلانات المدمجة مع المحتوى" عندما لا تعود قيد الاستخدام.

عرض إعلانك

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