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