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

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

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

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

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

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

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

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

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

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

ca-app-pub-3940256099942544/3986624511

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

للاطّلاع على مزيد من المعلومات حول آلية عمل الإعلانات الاختبارية لحزمة تطوير البرامج (SDK) للإعلانات على الأجهزة الجوّالة، راجِع الإعلانات الاختبارية.

جارٍ تحميل الإعلانات

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

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

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

Swift

adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

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

يجب أن تحتوي مصفوفة adTypes على هذا الثابت:

تنفيذ تفويض مُحمِّل الإعلانات

يجب أن ينفِّذ القائم بتحميل الإعلان البروتوكولات المحدّدة لنوع إعلانك. بالنسبة إلى الإعلانات المدمجة مع المحتوى:

  • GADNativeAdLoaderDelegate يتضمن هذا البروتوكول رسالة يتم إرسالها إلى المفوّض عند تحميل إعلان مدمج مع المحتوى:

    Swift

    public func adLoader(_ adLoader: GADAdLoader,
        didReceive nativeAd: GADNativeAd)
    

    Objective-C

    - (void)adLoader:(GADAdLoader *)adLoader
        didReceiveNativeAd:(GADNativeAd *)nativeAd;
    

طلب الإعلان

بعد إعداد GADAdLoader، اطلب طريقة loadRequest: لطلب إعلان:

Swift

adLoader.load(GADRequest())

Objective-C

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

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

حالات طلب الإعلانات

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

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

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

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

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

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

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

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdsOptions.numberOfAds = 5

    adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
        adTypes: [.native],
        options: [multipleAdsOptions])
    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
                didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
      // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

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

  self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:YOUR_AD_UNIT_ID
          rootViewController:self
                     adTypes:@[GADAdLoaderAdTypeNative]
                     options:@[multipleAdsOptions]];
  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
   // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

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

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

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

احصل على إشعارات بأحداث الإعلانات المدمجة مع المحتوى

لتلقّي إشعارات بشأن الأحداث ذات الصلة بالتفاعلات مع الإعلانات المدمجة مع المحتوى، حدِّد الخاصية المفوَّضة للإعلان المدمج مع المحتوى:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

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

Swift

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

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

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

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

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

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

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 application to become inactive and
  // open a new application.
}

عرض إعلانك

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