الإعلانات المدمجة مع المحتوى هي مواد عرض إعلانية تُعرَض للمستخدمين من خلال عناصر واجهة مستخدم مدمجة في المنصة. ويتم عرضها باستخدام الفئات نفسها التي تستخدمها حاليًا في لوحات العرض، ويمكن تنسيقها لتتطابق مع التصميم المرئي لتطبيقك.
عند تحميل إعلان مدمج مع المحتوى، يتلقّى تطبيقك عنصر إعلان يحتوي على مواد العرض الخاصة به، ثم يكون التطبيق هو المسؤول عن عرضها، وليس حزمة تطوير البرامج "SDK لإعلانات Google على الأجهزة الجوّالة".
بشكل عام، يتضمّن عرض الإعلانات المدمجة مع المحتوى بنجاح جزأين: تحميل إعلان باستخدام حزمة تطوير البرامج (SDK)، ثم عرض محتوى الإعلان في تطبيقك.
توضّح هذه الصفحة كيفية استخدام حزمة SDK لتحميل الإعلانات المُدمَجة مع المحتوى.
المتطلبات الأساسية
- أكمِل دليل البدء.
اختبار الإعلانات دائمًا باستخدام الإعلانات الاختبارية
عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات اختبارية بدلاً من الإعلانات المباشرة في مرحلة الإنتاج.
أسهل طريقة لتحميل الإعلانات التجريبية هي استخدام رقم تعريف وحدة الإعلانات التجريبية المخصّص للإعلانات المدمجة مع المحتوى على iOS:
ca-app-pub-3940256099942544/3986624511
تم إعداد هذا المعرّف خصيصًا لعرض إعلانات اختبارية لكل طلب، ويمكنك استخدامه في تطبيقاتك أثناء الترميز والاختبار وتصحيح الأخطاء. ما عليك سوى التأكّد من استبداله برقم تعريف الوحدة الإعلانية الخاص بك قبل نشر تطبيقك.
لمزيد من المعلومات عن طريقة عمل الإعلانات الاختبارية في حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"، يُرجى الاطّلاع على الإعلانات الاختبارية.
تحميل الإعلانات
يتم تحميل الإعلانات المدمجة مع المحتوى باستخدام الفئة
GADAdLoader
،
التي ترسل رسائل إلى مندوبيها وفقًا لبروتوكول
GADAdLoaderDelegate
.
تهيئة أداة تحميل الإعلانات
قبل أن تتمكّن من تحميل إعلان، عليك تهيئة أداة تحميل الإعلانات.
يوضّح الرمز التالي كيفية تهيئة GADAdLoader
:
Swift
adLoader = AdLoader(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: AdLoader,
didReceive nativeAd: NativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
طلب إدراج الإعلانات
بعد إعداد GADAdLoader
، استدعِ الطريقة loadRequest:
لطلب إعلان:
Swift
adLoader.load(Request())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
تقبل الطريقة
loadRequest:
في
GADAdLoader
عناصر
GADRequest
نفسها التي تقبلها البانرات والإعلانات البينية. يمكنك استخدام عناصر الطلب لإضافة معلومات الاستهداف، تمامًا كما تفعل مع أنواع الإعلانات الأخرى.
تحميل إعلانات متعدّدة (اختياري)
لتحميل إعلانات متعدّدة في طلب واحد، اضبط العنصر
GADMultipleAdsAdLoaderOptions
عند بدء GADAdLoader
.
Swift
let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = AdLoader(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, NativeAdLoaderDelegate {
var adLoader: GADAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ multipleAdOptions ])
adLoader.delegate = self
adLoader.load(Request())
}
func adLoader(_ adLoader: AdLoader,
didReceive nativeAd: NativeAd) {
// A native ad has loaded, and can be displayed.
}
func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
// 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: AdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
تلقّي إشعارات بشأن أحداث الإعلانات المدمجة مع المحتوى
لتلقّي إشعارات بالأحداث المتعلّقة بالتفاعلات مع الإعلانات المدمجة مع المحتوى، اضبط السمة delegate للإعلان المدمج مع المحتوى:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
بعد ذلك، نفِّذ
GADNativeAdDelegate
لتلقّي عمليات استدعاء الوظائف التالية:
Swift
func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
// 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:
.احرص على عدم تخزين الإعلانات المدمجة مع المحتوى مؤقتًا إلا عند الحاجة. على سبيل المثال، عند التخزين المؤقت المسبق، لا تخزِّن مؤقتًا سوى الإعلانات التي تظهر على الشاشة مباشرةً. تستهلك الإعلانات المدمجة مع المحتوى مساحة كبيرة من الذاكرة، ويؤدي تخزينها مؤقتًا بدون إزالتها إلى استهلاك مفرط للذاكرة.
إيقاف عرض الإعلانات المدمجة مع المحتوى عندما لا تكون قيد الاستخدام
عرض إعلانك
بعد تحميل إعلان، ما عليك سوى عرضه للمستخدمين. يمكنك الانتقال إلى دليل الإعلانات المتقدّمة المدمجة لمعرفة كيفية إجراء ذلك.