الإعلانات المدمجة مع المحتوى هي مواد عرض إعلانات يتم عرضها للمستخدمين من خلال مكوّنات واجهة المستخدم المدمجة مع المحتوى على المنصة. ويتم عرضها باستخدام نفس الفئات التي تستخدمها بالفعل في مخططات القصة الخاصة بك، ويمكن تنسيقها لتتناسب مع التصميم المرئي لتطبيقك.
عند تحميل أحد الإعلانات المدمَجة مع المحتوى، يتلقّى تطبيقك عنصر إعلان يحتوي على مواد العرض الخاصة به، ويكون التطبيق عندئذٍ مسؤولاً عن عرضه، وليس حزمة "SDK لإعلانات Google على الأجهزة الجوّالة".
بشكلٍ عام، هناك جزءان لتنفيذ الإعلانات المدمجة مع المحتوى بنجاح، وهما: تحميل إعلان باستخدام حزمة تطوير البرامج (SDK) ثم عرض محتوى الإعلان في التطبيق.
توضّح هذه الصفحة كيفية استخدام حزمة تطوير البرامج (SDK) لتحميل الإعلانات المدمجة مع المحتوى.
المتطلبات الأساسية
- أكمل دليل البدء.
الاختبار دائمًا من خلال الإعلانات الاختبارية
عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات تجريبية وليس إعلانات مباشرة.
تتمثل أسهل طريقة لتحميل الإعلانات الاختبارية في استخدام رقم تعريف الوحدة الإعلانية التجريبية المخصص للإعلانات المدمجة مع المحتوى على نظام التشغيل iOS:
ca-app-pub-3940256099942544/3986624511
تم تصميم هذه الميزة خصّيصًا لعرض إعلانات اختبارية لكل طلب، ويمكنك استخدامها في تطبيقاتك أثناء الترميز والاختبار وتصحيح الأخطاء. ما عليك سوى التأكّد من استبداله برقم تعريف وحدتك الإعلانية قبل نشر تطبيقك
لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية في "حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة"، اطّلِع على الإعلانات التجريبية.
تحميل الإعلانات
يتم تحميل الإعلانات المدمجة مع المحتوى مع الفئة
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
نفسها مثل إعلانات البانر والإعلانات البينية. يمكنك استخدام كائنات الطلب لإضافة
معلومات استهداف، تمامًا كما تفعل مع أنواع الإعلانات الأخرى.
تحميل إعلانات متعددة (اختياري)
لتحميل إعلانات متعددة في طلب واحد، عليك ضبط العنصر
GADMultipleAdsAdLoaderOptions
عند إعداد GADAdLoader
.
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
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"
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",
rootViewController: self,
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"
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:
.
عرض إعلانك
بعد تحميل أي إعلان، كل ما تبقى هو عرضه للمستخدمين. يمكنك الانتقال إلى دليل الإعلانات المدمجة مع المحتوى (المتقدّم) للاطّلاع على كيفية إجراء ذلك.