سبک های بومی

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

پیش‌نیازها

  • نسخه ۷.۱۴.۰ یا بالاتر SDK تبلیغات موبایلی گوگل

این راهنما فرض را بر این می‌گذارد که شما تا حدودی با SDK تبلیغات موبایلی گوگل آشنایی دارید. اگر هنوز این کار را انجام نداده‌اید، می‌توانید راهنمای شروع به کار ما را مطالعه کنید.

اندازه ثابت

سبک‌های بومی با اندازه ثابت به شما امکان می‌دهند عرض و ارتفاع تبلیغ بومی را کنترل کنید. برای تنظیم اندازه ثابت، این مراحل را دنبال کنید:

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

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

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

اندازه سیال

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

درخواست مایع

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

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

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

سویفت

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

هدف-سی

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

پیاده‌سازی کامل در کد به این شکل است:

سویفت

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 Fluid، برنامه iOS API Demo را در Swift یا Objective-C دانلود کنید.

دانلود نسخه آزمایشی API

پروتکل GADadSizeDelegate

شاید بخواهید ارتفاع یک بنر را قبل از تغییر اندازه تبلیغ آن بدانید. adView:willChangeAdSizeTo: قبل از تغییر نمای بنر به GADAdSize جدید، به نماینده خود اطلاع می‌دهد. برای اینکه قبل از تغییر نمای بنر به اندازه تبلیغ جدید مطلع شوید، کلاس شما باید با پروتکل GADAdSizeDelegate مطابقت داشته باشد.

در اینجا یک پیاده‌سازی نمونه از adView:willChangeAdSizeTo: آورده شده است که نحوه دریافت عرض و ارتفاع جدید بنر را نشان می‌دهد:

سویفت

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