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