الأنماط الأصلية

تتيح إعدادات أنماط الإعلانات المدمجة مع المحتوى لمدير إعلانات Google معالجة عرض إعلاناتك المدمجة مع المحتوى بناءً على الأنماط المدمجة مع المحتوى التي تحدّدها داخل المنتج. أولاً، تحديد الحجم والاستهداف. بعد ذلك، أضف HTML وCSS وJavaScript لتحديد الإعلانات المتجاوبة وتقديم عرض بجودة عالية على جميع الشاشات. لن تحتاج إلى تنفيذ أيٍّ من العرض، إذ يطبِّق "مدير الإعلانات" تلقائيًا نمط الإعلانات المدمجة مع المحتوى المناسب للوجهة. يتم تنفيذ أنماط الإعلانات المدمجة مع المحتوى تمامًا مثل إعلانات البانر باستخدام GAMBannerView. ويمكن استخدامها مع حجم إعلان ثابت يُحدَّد مسبقًا، أو مع حجم إعلان ثابت يتم تحديده في وقت التشغيل.

المتطلبات الأساسية

  • الإصدار 7.14.0 أو الإصدارات الأحدث من حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"

يفترض هذا الدليل بعض المعرفة العملية بحزمة SDK لإعلانات Google على الأجهزة الجوّالة. ننصحك بالاطّلاع على دليل البدء إذا لم يسبق لك إجراء ذلك.

حجم ثابت

تتيح لك الأنماط المدمجة مع المحتوى ذات الحجم الثابت التحكم في عرض الإعلان المدمج مع المحتوى وارتفاعه. لتعيين حجم ثابت، اتبع الخطوات التالية:

  1. أنشئ عنصرًا في واجهة مستخدم "مدير الإعلانات" واختَر أحد الأحجام المحدّدة مسبقًا من القائمة المنسدلة للحقل Size.

  2. في أداة إنشاء الواجهة، اضبط عرض وارتفاع GAMBannerView ليتناسب مع الحجم المحدّد مسبقًا الذي اخترته في الخطوة 1. يمكنك الاطّلاع على قائمة بالأحجام والثوابت GADAdSize المقابلة لها في قسم حجم إعلان البانر.

لا يقل تنفيذ الأنماط المدمجة مع المحتوى ذات الحجم الثابت سهولة عن اتباع التعليمات الواردة في طلب إعلان البانر الأول، إلا أنك ستحصل على المرونة والتحكم في HTML وCSS وJavaScript لمنح إعلان البانر مظهرًا وأسلوبًا مدمجًا مع المحتوى، وهذا أمر طبيعي في تطبيقك.

الحجم المرن

في بعض الحالات، قد لا يكون الحجم الثابت منطقيًا. على سبيل المثال، قد تريد أن يتطابق عرض الإعلان مع محتوى تطبيقك، ولكنك تحتاج إلى ضبط ارتفاعه ديناميكيًا ليلائم محتوى الإعلان. للتعامل مع هذه الحالة، يمكنك تحديد Fluid كحجم الإعلان في واجهة مستخدم "مدير الإعلانات"، والذي يحدد أن حجم الإعلان يتحدد في وقت التشغيل في التطبيق. توفّر حزمة تطوير البرامج (SDK) قيمة ثابتة GADAdSize خاصة، kGADAdSizeFluid، للتعامل مع هذه الحالة. ويتم تحديد ارتفاع حجم الإعلان المرن ديناميكيًا على أساس العرض الذي يحدّده الناشر، ما يسمح للسمة GAMBannerView بضبط ارتفاعه ليلائم ارتفاع تصميم الإعلان.

طلب تدفق

على عكس أشكال الإعلانات الأخرى، لا يتضمّن حجم الإعلان kGADAdSizeFluid عرضًا محدَّدًا مسبقًا، لذا احرص على ضبط عرض إطار إعلان البانر بشكلٍ صريح في الرمز أو في "أداة إنشاء الواجهة". في حال عدم تحديد عرض، تضبط حزمة تطوير البرامج (SDK) ارتفاع إعلان البانر تلقائيًا على أساس العرض الكامل للجهاز.

في حال تقديم طلب متعدد الأحجام يتضمّن kGADAdSizeFluid، يتم دائمًا وضع الإعلان الذي يتم عرضه داخل حاوية سائلة ويتصرف على غرار إعلان مرن. وفي حال عرض تصميم إعلان غير سائل في هذه الحاوية المرنة، تدمج حزمة تطوير البرامج (SDK) الإعلان في الحاوية بحيث لا تضطر إلى تعديل قيد العرض في كل مرة يتم فيها عرض إعلان جديد.

هناك تشابه كبير في تنفيذ طلب مقاس واحد وطلب مرن متعدد الأحجام، والفرق الوحيد هو في الطلب متعدد الأحجام، بل يمكنك تحديد السمة validAdSizes لتحديد أحجام الإعلان الصالحة لطلب الإعلان:

Swift

bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
                           NSValueFromGADAdSize(kGADAdSizeBanner)]

Objective-C

_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
                              NSValueFromGADAdSize(kGADAdSizeBanner) ];

إليك الشكل الذي يظهر به التنفيذ الكامل في الرمز:

Swift

var bannerView: GAMBannerView!

override func viewDidLoad() {
  super.viewDidLoad()
  // Create the GAMBannerView and set its width to a width that makes sense for your
  // app. In this example, the width is set to the width of the UIViewController's
  // root view.
  bannerView = GAMBannerView(adSize: kGADAdSizeFluid)
  var frameRect = bannerView.frame
  frameRect.size.width = view.bounds.width
  bannerView.frame = frameRect

  // Uncomment this code for a multisize fluid request.
  // bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
  //                            NSValueFromGADAdSize(kGADAdSizeBanner)]

  bannerView.adUnitID = "YOUR_AD_UNIT_ID"
  bannerView.rootViewController = self

  // Make the ad request.
  bannerView.load(GAMRequest())
}

Objective-C

GAMBannerView *_bannerView;

- (void)viewDidLoad {
  [super viewDidLoad];
  // Create the GAMBannerView and set its width to a width that makes sense for your
  // app. In this example, the width is set to the width of the UIViewController's
  // root view.
  _bannerView = [[GAMBannerView alloc] initWithAdSize:kGADAdSizeFluid];
  CGRect frameRect = _bannerView.frame;
  frameRect.size.width = CGRectGetWidth(self.view.bounds);
  _bannerView.frame = frameRect;

  // Uncomment this code for a multisize fluid request.
  // _bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
  //                               NSValueFromGADAdSize(kGADAdSizeBanner) ];

  _bannerView.adUnitID = @"YOUR_AD_UNIT_ID";
  _bannerView.rootViewController = self;

  // Make the ad request.
  [_bannerView loadRequest:[GAMRequest request]];
}

للاطّلاع على مثال لتنفيذ حجم إعلان "Fluid" في "مدير الإعلانات"، يمكنك تنزيل تطبيق iOS API التجريبي باستخدام Swift أو FALSE-C.

تنزيل عرض توضيحي لواجهة برمجة التطبيقات

بروتوكول GADAdSizeModify

قد تحتاج إلى معرفة ارتفاع أحد إعلانات البانر قبل أن يتغيّر حجم الإعلان. تُرسِل ميزة معاودة الاتصال adView:willChangeAdSizeTo: إشعارًا إلى المستخدم المفوَّض قبل أن يتغير عرض البانر إلى GADAdSize الجديد. ليتم إعلامك قبل أن يتغير عرض البانر إلى الحجم الجديد للإعلان، يجب أن تتوافق فئتك مع بروتوكول GADAdSizeDelegate.

في ما يلي نموذج لتنفيذ معاودة الاتصال adView:willChangeAdSizeTo: التي توضح كيفية الحصول على عرض وارتفاع إعلان البانر الجديدين:

Swift

// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
bannerView.adSizeDelegate = self

// MARK: - GADAdSizeDelegate

func adView(_ bannerView: GADBannerView, willChangeAdSizeTo adSize: GADAdSize) {
  let height = adSize.size.height
  let width = adSize.size.width
}

Objective-C

// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
_bannerView.adSizeDelegate = self;

#pragma mark - GADAdSizeDelegate

- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)adSize {
  CGFloat height = adSize.size.height;
  CGFloat width = adSize.size.width;
}