تحديد أنماط الإعلانات المدمجة مع المحتوى

اختيار النظام الأساسي: Android iOS Flutter Android (الإصدار القديم)

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

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

  • الإصدار 7.14.0 أو الإصدارات اللاحقةGoogle Mobile Ads SDK

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

حجم ثابت

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

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

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

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

حجم السائل

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

طلب سلس

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

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

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

Swift

bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]

Objective-C

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

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

Swift

var bannerView: AdManagerBannerView!

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 = AdManagerBannerView(adSize: AdSizeFluid)
  var frameRect = bannerView.frame
  frameRect.size.width = view.bounds.width
  bannerView.frame = frameRect

  // Uncomment this code for a multisize fluid request.
  // bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]

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

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

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]];
}

للاطّلاع على مثال على تنفيذ حجم الإعلان المرن في "مدير إعلانات Google"، نزِّل تطبيق iOS API Demo بلغة Swift أو Objective-C.

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

بروتوكول GADAdSizeDelegate

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

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

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: BannerView, willChangeAdSizeTo adSize: AdSize) {
  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;
}