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

اختيار النظام الأساسي: Android iOS Flutter

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

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

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

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

حجم ثابت

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

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

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

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

حجم السائل

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

طلب سائل

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

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

إنّ عملية تنفيذ طلب إعلان ذي حجم واحد وإعلان płynny (متعدّد الأحجام) متشابهة جدًا، والفرق الوحيد هو أنّه في طلب الإعلان المتعدّد الأحجام، عليك ضبط السمة 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;
}