تبلیغات بنری یک نقطه را در طرحبندی برنامه اشغال میکنند، چه در بالا یا پایین صفحه دستگاه. در حالی که کاربران در حال تعامل با برنامه هستند، روی صفحه می مانند و می توانند پس از مدت زمان مشخصی به طور خودکار بازخوانی شوند. اگر در زمینه تبلیغات موبایلی تازه کار هستید، آنها مکان خوبی برای شروع هستند.مطالعه موردی .
این راهنما به شما نشان می دهد که چگونه تبلیغات بنری را ازAdMob در یک برنامه iOS ادغام کنید. علاوه بر تکههای کد و دستورالعملها، شامل اطلاعاتی درباره اندازهبندی صحیح بنرها و پیوندهایی به منابع اضافی است.
پیش نیازها
- راهنمای شروع را کامل کنید.
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامه های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می کنید. عدم انجام این کار می تواند منجر به تعلیق حساب شما شود.
سادهترین راه برای بارگیری آگهیهای آزمایشی، استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای بنرهای iOS است:ca-app-pub-3940256099942544/2934735716
این بهطور ویژه پیکربندی شده است تا تبلیغات آزمایشی را برای هر درخواست بازگرداند، و شما میتوانید هنگام کدنویسی، آزمایش و اشکالزدایی از آن در برنامههای خود استفاده کنید. فقط مطمئن شوید که قبل از انتشار برنامه خود، آن را با شناسه واحد تبلیغاتی خود جایگزین کنید.
برای کسب اطلاعات بیشتر در مورد نحوه عملکرد تبلیغات آزمایشی SDK Ads Mobile، به Test Ads مراجعه کنید.
یک GADBannerViewایجاد کنید
تبلیغات بنری در اشیاء GADBannerView
نمایش داده می شوند، بنابراین اولین قدم برای یکپارچه سازی تبلیغات بنری این است که یک GADBannerView
در سلسله مراتب مشاهده خود قرار دهید. این معمولاً یا با Interface Builder یا به صورت برنامه نویسی انجام می شود.
رابط ساز
یک GADBannerView
می توان مانند هر نمای معمولی به استوری بورد یا فایل xib اضافه کرد. هنگام استفاده از این روش، حتماً محدودیتهای عرض و ارتفاع را اضافه کنید تا با اندازه تبلیغی که میخواهید نمایش دهید مطابقت داشته باشد. به عنوان مثال، هنگام نمایش یک بنر (320x50)، از محدودیت عرض 320 نقطه و محدودیت ارتفاع 50 نقطه استفاده کنید.
به صورت برنامه ای
یک GADBannerView
نیز می تواند مستقیماً نمونه سازی شود. در اینجا مثالی از نحوه ایجاد یک GADBannerView
، تراز شده در مرکز پایین ناحیه امن صفحه، با اندازه بنر 320x50 آورده شده است:
سریع
import GoogleMobileAds import UIKit class ViewController: UIViewController { var bannerView: GADBannerView! override func viewDidLoad() { super.viewDidLoad() // In this case, we instantiate the banner with desired ad size. bannerView = GADBannerView(adSize: GADAdSizeBanner) addBannerViewToView(bannerView) } func addBannerViewToView(_ bannerView: GADBannerView) { bannerView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(bannerView) view.addConstraints( [NSLayoutConstraint(item: bannerView, attribute: .bottom, relatedBy: .equal, toItem: view.safeAreaLayoutGuide, attribute: .bottom, multiplier: 1, constant: 0), NSLayoutConstraint(item: bannerView, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1, constant: 0) ]) } }
هدف-C
@import GoogleMobileAds; @interface ViewController () @property(nonatomic, strong) GADBannerView *bannerView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // In this case, we instantiate the banner with desired ad size. self.bannerView = [[GADBannerView alloc] initWithAdSize:GADAdSizeBanner]; [self addBannerViewToView:self.bannerView]; } - (void)addBannerViewToView:(UIView *)bannerView { bannerView.translatesAutoresizingMaskIntoConstraints = NO; [self.view addSubview:bannerView]; [self.view addConstraints:@[ [NSLayoutConstraint constraintWithItem:bannerView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view.safeAreaLayoutGuide attribute:NSLayoutAttributeBottom multiplier:1 constant:0], [NSLayoutConstraint constraintWithItem:bannerView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1 constant:0] ]]; } @end
توجه داشته باشید که در این مورد ما محدودیت عرض یا ارتفاع قائل نمیشویم، زیرا اندازه آگهی ارائه شده به بنر یک اندازه محتوای ذاتی برای اندازهگیری نمایش میدهد.
اگر نمی خواهید از یک اندازه استاندارد که با یک ثابت تعریف شده است استفاده کنید، می توانید یک اندازه سفارشی را با استفاده از GADAdSizeFromCGSize
تنظیم کنید. برای اطلاعات بیشتر به بخش اندازه بنر مراجعه کنید.
ویژگی های GADBannerView را پیکربندی کنید
برای بارگیری و نمایش تبلیغات، GADBannerView
نیاز به تنظیم چند ویژگی دارد.
-
rootViewController
- این نمایش کنترلر برای ارائه یک پوشش زمانی که روی تبلیغ کلیک می شود استفاده می شود. معمولاً باید روی view controller که حاویGADBannerView
است تنظیم شود. -
adUnitID
- این شناسه واحد تبلیغاتی است کهGADBannerView
باید تبلیغات را از آن بارگیری کند.
در اینجا یک مثال کد وجود دارد که نحوه تنظیم دو ویژگی مورد نیاز در روش viewDidLoad
یک UIViewController را نشان می دهد:
سریع
override func viewDidLoad() { super.viewDidLoad() ... bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" bannerView.rootViewController = self }
هدف-C
- (void)viewDidLoad { [super viewDidLoad]; ... self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2934735716"; self.bannerView.rootViewController = self; }
یک تبلیغ را بارگیری کنید
هنگامی که GADBannerView
در جای خود قرار گرفت و ویژگی های آن پیکربندی شد، زمان بارگذاری آگهی فرا می رسد. این کار با فراخوانی loadRequest:
روی یک شی GADRequest
انجام می شود:
سریع
override func viewDidLoad() { super.viewDidLoad() ... bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" bannerView.rootViewController = self bannerView.load(GADRequest()) }
هدف-C
- (void)viewDidLoad { [super viewDidLoad]; ... self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2934735716"; self.bannerView.rootViewController = self; [self.bannerView loadRequest:[GADRequest request]]; }
اشیاءGADRequest یک درخواست آگهی واحد را نشان میدهند و حاوی ویژگیهایی مانند اطلاعات هدفیابی هستند.
اگر تبلیغ شما بارگیری نشد، تا زمانی که واحد تبلیغات خود را برای بازخوانی پیکربندی کرده باشید، نیازی به درخواست صریح آگهی دیگری ندارید. Google Mobile Ads SDK به نرخ تازهسازی که در رابط کاربریAdMob مشخص کردهاید احترام میگذارد. اگر بازخوانی را فعال نکرده اید، باید درخواست جدیدی صادر کنید.
رویدادهای تبلیغاتی
از طریق استفاده از GADBannerViewDelegate
، میتوانید به رویدادهای چرخه حیات گوش دهید، مانند زمانی که آگهی بسته میشود یا کاربر برنامه را ترک میکند.
ثبت نام برای رویدادهای بنر
برای ثبت نام برای رویدادهای تبلیغات بنری، ویژگی delegate
را در GADBannerView
روی شی ای تنظیم کنید که پروتکل GADBannerViewDelegate
را پیاده سازی می کند. به طور کلی، کلاسی که تبلیغات بنری را پیاده سازی می کند، به عنوان کلاس delegate نیز عمل می کند، در این صورت، ویژگی delegate
را می توان روی self
تنظیم کرد.
سریع
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADBannerViewDelegate { var bannerView: GADBannerView! override func viewDidLoad() { super.viewDidLoad() ... bannerView.delegate = self } }
هدف-C
@import GoogleMobileAds; @interface ViewController () <GADBannerViewDelegate> @property(nonatomic, strong) GADBannerView *bannerView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; ... self.bannerView.delegate = self; }
اجرای رویدادهای بنر
هر یک از متدها در GADBannerViewDelegate
بهعنوان اختیاری علامتگذاری شدهاند، بنابراین شما فقط باید روشهایی را که میخواهید پیادهسازی کنید. این مثال هر روش را پیاده سازی می کند و یک پیام را به کنسول ثبت می کند:
سریع
func bannerViewDidReceiveAd(_ bannerView: GADBannerView) { print("bannerViewDidReceiveAd") } func bannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error) { print("bannerView:didFailToReceiveAdWithError: \(error.localizedDescription)") } func bannerViewDidRecordImpression(_ bannerView: GADBannerView) { print("bannerViewDidRecordImpression") } func bannerViewWillPresentScreen(_ bannerView: GADBannerView) { print("bannerViewWillPresentScreen") } func bannerViewWillDismissScreen(_ bannerView: GADBannerView) { print("bannerViewWillDIsmissScreen") } func bannerViewDidDismissScreen(_ bannerView: GADBannerView) { print("bannerViewDidDismissScreen") }
هدف-C
- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView { NSLog(@"bannerViewDidReceiveAd"); } - (void)bannerView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(NSError *)error { NSLog(@"bannerView:didFailToReceiveAdWithError: %@", [error localizedDescription]); } - (void)bannerViewDidRecordImpression:(GADBannerView *)bannerView { NSLog(@"bannerViewDidRecordImpression"); } - (void)bannerViewWillPresentScreen:(GADBannerView *)bannerView { NSLog(@"bannerViewWillPresentScreen"); } - (void)bannerViewWillDismissScreen:(GADBannerView *)bannerView { NSLog(@"bannerViewWillDismissScreen"); } - (void)bannerViewDidDismissScreen:(GADBannerView *)bannerView { NSLog(@"bannerViewDidDismissScreen"); }
برای پیادهسازی روشهای نمایندگی بنر در برنامه آزمایشی iOS API به مثال Ad Delegate مراجعه کنید.
موارد استفاده کنید
در اینجا چند نمونه از موارد استفاده برای این روش های رویداد تبلیغاتی آورده شده است.
پس از دریافت آگهی، یک بنر به سلسله مراتب مشاهده اضافه کنید
ممکن است بخواهید اضافه کردن یک GADBannerView
به سلسله مراتب view را تا زمانی که آگهی دریافت کنید به تاخیر بیندازید. می توانید این کار را با گوش دادن به رویداد bannerViewDidReceiveAd:
انجام دهید:
سریع
func bannerViewDidReceiveAd(_ bannerView: GADBannerView) { // Add banner to view and add constraints as above. addBannerViewToView(bannerView) }
هدف-C
- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView { // Add bannerView to view and add constraints as above. [self addBannerViewToView:self.bannerView]; }
متحرک سازی یک بنر تبلیغاتی
همچنین می توانید از رویداد bannerViewDidReceiveAd:
برای متحرک سازی یک آگهی تبلیغاتی پس از بازگرداندن آن استفاده کنید، همانطور که در مثال زیر نشان داده شده است:
سریع
func bannerViewDidReceiveAd(_ bannerView: GADBannerView) { bannerView.alpha = 0 UIView.animate(withDuration: 1, animations: { bannerView.alpha = 1 }) }
هدف-C
- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView { bannerView.alpha = 0; [UIView animateWithDuration:1.0 animations:^{ bannerView.alpha = 1; }]; }
مکث و از سرگیری برنامه
پروتکل GADBannerViewDelegate
روش هایی دارد که شما را از رویدادها مطلع می کند، مانند زمانی که یک کلیک باعث ارائه یا رد شدن یک پوشش می شود. اگر می خواهید ردیابی کنید که آیا این رویدادها به دلیل تبلیغات بوده است یا خیر، برای این روش های GADBannerViewDelegate
ثبت نام کنید.
برای مشاهده همه انواع ارائههای همپوشانی یا فراخوانهای مرورگر خارجی، نه فقط مواردی که از کلیکهای تبلیغاتی میآیند، برنامه شما بهتر است به روشهای مشابه در UIViewController
یا UIApplication
گوش دهد. در اینجا جدولی وجود دارد که روشهای معادل iOS را نشان میدهد که همزمان با متدهای GADBannerViewDelegate
فراخوانی میشوند:
روش GADBannerViewDelegate | روش iOS |
---|---|
bannerViewWillPresentScreen: | viewWillDisappear: |
bannerViewWillDismissScreen: | نمای UIViewController viewWillAppear: |
bannerViewDidDismissScreen: | viewDidAppear: |
اندازه های بنر
جدول زیر اندازه های استاندارد بنر را فهرست می کند.
اندازه در نقاط (WxH) | شرح | دسترسی | AdSize ثابت |
---|---|---|---|
320x50 | بنر | گوشی و تبلت | GADAdSizeBanner |
320x100 | بنر بزرگ | گوشی و تبلت | GADAdSizeLargeBanner |
300x250 | مستطیل متوسط IAB | گوشی و تبلت | GADAdSizeMediumRectangle |
468x60 | بنر سایز کامل IAB | قرص | GADAdSizeFullBanner |
728x90 | تابلوی امتیازات IAB | قرص | GADAdSizeLeaderboard |
عرض ارائه شده x ارتفاع تطبیقی | بنر تطبیقی | گوشی و تبلت | N/A |
اندازه های تبلیغاتی سفارشی
برای تعریف اندازه بنر سفارشی، اندازه دلخواه خود را با استفاده از GADAdSizeFromCGSize
تنظیم کنید، همانطور که در اینجا نشان داده شده است:
سریع
let adSize = GADAdSizeFromCGSize(CGSize(width: 300, height: 50))
هدف-C
GADAdSize size = GADAdSizeFromCGSize(CGSizeMake(300, 50));
منابع اضافی
نمونه هایی در GitHub
آموزش تصویری Garage Ads Mobile
داستان های موفقیت
مراحل بعدی
درباره حریم خصوصی کاربر بیشتر بیاموزید.