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

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

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

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

  • الإصدار 7.14.0 من "Google Mobile Ads SDK" أو إصدار أحدث

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

حجم ثابت

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

لضبط حجم ثابت، اتّبِع الخطوات التالية:

اضبط حجم الإعلان على قيمة أصغر من حجم شاشة الجهاز أو مساوية له. لتحديد الحد الأقصى لحجم الشاشة على الإصدار 26 من نظام التشغيل iOS والإصدارات الأحدث، استخدِم السمة UIWindowScene.effectiveGeometry.coordinateSpace. على الإصدار iOS 18 والإصدارات الأقدم، استخدِم السمة UIWindowScene.coordinateSpace. لمعرفة التفاصيل حول قيود الحجم، يُرجى الاطّلاع على مقالة تحديد المشاكل وحلّها في ما يتعلّق بمرّات الظهور غير المعروضة في "إدارة إعلانات Google".

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

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

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

حجم مرن

في بعض الحالات، قد لا يكون الحجم الثابت منطقيًا. على سبيل المثال، قد تريد أن يتطابق عرض الإعلان مع محتوى تطبيقك، ولكنك تحتاج إلى تعديل ارتفاعه ديناميكيًا ليتناسب مع محتوى الإعلان. للتعامل مع هذه الحالة، يمكنك تحديد Fluid كحجم الإعلان في واجهة مستخدم "مدير إعلانات Google"، ما يشير إلى أنّ حجم الإعلان يتم تحديده في وقت التشغيل في التطبيق. توفّر حزمة تطوير البرامج (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: يوضّح كيفية الحصول على العرض والارتفاع الجديدَين لإعلان البانر:

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