الإعلانات المدمجة مع المحتوى هي مواد عرض الإعلانات يتم تقديمها للمستخدمين من خلال مكوّنات واجهة المستخدم التي يتم استخدامها في النظام الأساسي. ويتم عرضها باستخدام الصفوف نفسها التي تستخدمها في لوحات العمل، ويمكن تنسيقها لتتطابق مع التصميم المرئي لتطبيقك. عند تحميل إعلان مدمج مع المحتوى، يتلقّى تطبيقك عنصر إعلان يحتوي على مواد العرض التابعة له، ويصبح التطبيق (بدلاً من حزمة تطوير البرامج (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:
، يمكنه الحصول على نتائج الطلب من خلال المكالمات:
adLoader:didFailToReceiveAdWithError:
فيGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
فيGADNativeAdLoaderDelegate
سيؤدي طلب إعلان واحد إلى إجراء مكالمة واحدة إلى إحدى هذه الطرق.
سيؤدي طلب عرض إعلانات متعددة إلى استدعاء واحد على الأقل للطرق المذكورة أعلاه، ولكن ليس أكثر من الحد الأقصى لعدد الإعلانات المطلوبة.
بالإضافة إلى ذلك، توفّر خدمة 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. }
عرض إعلانك
بعد تحميل أحد الإعلانات، ما يبقى هو عرضه للمستخدمين. يمكنك الانتقال إلى الدليل المتقدّم للإعلانات المدمجة لمعرفة كيفية تنفيذ ذلك.