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

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

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

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

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

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

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

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

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

ca-app-pub-3940256099942544/3986624511

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

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

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

يتم تحميل الإعلانات المدمجة مع المحتوى 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 كإعلانات بانر وإعلانات بينية. يمكنك استخدام كائنات الطلب من أجل إضافة معلومات الاستهداف، تمامًا كما مع أنواع الإعلانات الأخرى

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

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

Swift

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

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

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

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

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

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

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

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

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

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        rootViewController: self,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    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:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:rootViewController
                 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 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:.

عرض إعلانك

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