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

انتخاب پلاتفرم: 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 18 و نسخه‌های قدیمی‌تر، از UIWindowScene.coordinateSpace خصوصیت استفاده کنید. برای جزئیات مربوط به محدودیت‌های اندازه، به عیب‌یابی ظهورهای پرنشده در Ad Manager مراجعه کنید.

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

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

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

اندازه سیال

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

درخواست سیال

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

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

پیاده‌سازی برای ایجاد درخواست سیال تک‌اندازه و چنداندازه بسیار مشابه است؛ تنها تفاوت این است که برای درخواست چنداندازه، دارایی 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;
}