سبک‌های بومی را مشخص کنید

پلاتفرم را انتخاب کنید: Android iOS Flutter Android (قدیمی)

تنظیمات سبک بومی به Google Ad Manager امکان می‌دهد تا پردازش آگهی‌های بومی شما را براساس سبک‌های بومی که در محصول مشخص می‌کنید انجام دهد. ابتدا اندازه و هدف‌یابی را مشخص کنید. سپس HTML،‏ CSS، و JavaScript را اضافه کنید تا آگهی‌های واکنش‌گرا را تعریف کنید و نمایشی باکیفیت در همه صفحه‌نمایش‌ها تولید کنید. نیازی نیست هیچ‌کدام از پردازش‌ها را انجام دهید؛ Ad Manager به‌طور خودکار سبک بومی مناسب را برای مقصد اعمال می‌کند. سبک‌های بومی درست مانند آگهی‌های برنما بااستفاده از GAMBannerView پیاده‌سازی می‌شوند. این آگهی‌ها را می‌توان با اندازه آگهی ثابت که ازقبل تعیین شده است یا اندازه آگهی سیال که در زمان اجرا تعیین می‌شود استفاده کرد.

پیش‌نیازها

  • Google Mobile Ads SDK نسخه ۷.۱۴.۰ یا بالاتر

این راهنما فرض می‌کند که شما تاحدودی با Google Mobile Ads SDK آشنایی دارید. اگر قبلاً این کار را نکرده‌اید، راهنمای شروع به کار ما را مرور کنید.

اندازه ثابت

سبک‌های بومی با اندازه ثابت به شما امکان می‌دهد عرض و ارتفاع آگهی بومی را کنترل کنید.

برای تنظیم اندازه ثابت، این مراحل را دنبال کنید:

اندازه آگهی را کوچک‌تر یا مساوی اندازه صفحه‌نمایش دستگاه تنظیم کنید. برای تعیین حداکثر اندازه صفحه‌نمایش در iOS 26 و نسخه‌های جدیدتر، از ویژگی UIWindowScene.effectiveGeometry.coordinateSpace استفاده کنید. در iOS نسخه ۱۸ و قدیمی‌تر، از خصوصیت UIWindowScene.coordinateSpace استفاده کنید. برای جزئیات مربوط به محدودیت‌های اندازه، به عیب‌یابی ظهورهای پرنشده در Ad Manager مراجعه کنید.

  1. یک واحد آگهی در واسط کاربر Ad Manager ایجاد کنید و یکی از اندازه‌های ازپیش تعریف‌شده را از منو کرکره‌ای فیلد Size انتخاب کنید.

  2. در Interface Builder، عرض و ارتفاع GAMBannerView را طوری تنظیم کنید که با اندازه ازپیش‌تعریف‌شده‌ای که در مرحله ۱ انتخاب کردید مطابقت داشته باشد. می‌توانید فهرستی از اندازه‌ها و ثابت‌های GADAdSize مربوط به آن‌ها را در بخش اندازه برنما ببینید.

پیاده‌سازی سبک‌های بومی با اندازه ثابت به سادگی دنبال کردن دستورالعمل‌های موجود در اولین درخواست برنمای شما است، اما شما انعطاف‌پذیری و کنترل بیشتری بر HTML، CSS، و جاوا اسکریپت دارید تا به آگهی برنمای خود ظاهری بومی بدهید که در برنامه شما طبیعی به نظر برسد.

اندازه سیال

در برخی موارد، اندازه ثابت ممکن است منطقی نباشد. برای مثال، ممکن است بخواهید عرض آگهی با محتوای برنامه‌تان مطابقت داشته باشد، اما لازم باشد ارتفاع آن به‌طور پویا تنظیم شود تا با محتوای آگهی مطابقت داشته باشد. برای رسیدگی به این مورد، می‌توانید Fluid را به‌عنوان اندازه آگهی در Ad Manager UI مشخص کنید، که نشان می‌دهد اندازه آگهی در زمان اجرا در برنامه تعیین می‌شود. کیت توسعه نرم‌افزار یک ثابت ویژه GADAdSize، kGADAdSizeFluid، برای رسیدگی به این مورد ارائه می‌دهد. ارتفاع اندازه آگهی سیال به‌صورت پویا براساس عرض تعریف‌شده ناشر تعیین می‌شود، که به GAMBannerView اجازه می‌دهد ارتفاع خود را برای مطابقت با طرح‌آگهی تنظیم کند.

درخواست سیال

برخلاف سایر قالب‌های آگهی، اندازه آگهی kGADAdSizeFluid عرض ازپیش تعریف‌شده‌ای ندارد، بنابراین حتماً عرض قاب برنما را به‌طور صریح در کدتان یا در Interface Builder تنظیم کنید. اگر عرض مشخص نشده باشد، کیت توسعه نرم‌افزار به‌طور پیش‌فرض ارتفاع برنما را براساس عرض کامل دستگاه تنظیم می‌کند.

اگر درخواست چنداندازه‌ای ارسال کنید که شامل kGADAdSizeFluid باشد، آگهی برگردانده‌شده همیشه داخل ظرف سیال قرار می‌گیرد و مانند آگهی سیال رفتار می‌کند. درصورتی‌که طرح آگهی غیرسیالی در این ظرف سیال برگردانده شود، SDK آگهی را در ظرف متمرکز می‌کند تا مجبور نباشید هر بار که آگهی جدیدی برگردانده می‌شود، محدودیت عرض را تغییر دهید.

پیاده‌سازی برای ایجاد یک اندازه واحد و یک درخواست سیال چنداندازه‌ای بسیار مشابه است؛ تنها تفاوت برای درخواست چنداندازه‌ای این است که شما ویژگی validAdSizes را برای مشخص کردن اندازه‌های آگهی که برای درخواست آگهی معتبر هستند تنظیم می‌کنید:

Swift

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

آبجکتیو-سی

_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())
}

آبجکتیو-سی

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

برای دیدن نمونه پیاده‌سازی اندازه آگهی «سیال» Ad Manager، برنامه iOS API Demo را در Swift یا Objective-C بارگیری کنید.

بارگیری نسخه نمایشی API

پروتکل 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
}

آبجکتیو-سی

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