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

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

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

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

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

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

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

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

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

ca-app-pub-3940256099942544/3986624511

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

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

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

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

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

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

Swift

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

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    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",
    // The UIViewController parameter is optional.
    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"
    // The UIViewController parameter is nullable.
    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",
        // The UIViewController parameter is optional.
        rootViewController: rootViewController,
        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"
      // The UIViewController parameter is nullable.
      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:.

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

  • تدمير الإعلانات المدمجة مع المحتوى عندما لا تكون قيد الاستخدام.

عرض إعلانك

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