Рекламный баннер

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Баннерная реклама занимает место в макете приложения вверху или внизу экрана устройства. Они остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определенный период времени. Если вы новичок в мобильной рекламе, это отличное место для начала.пример .

В этом руководстве показано, как интегрировать рекламные баннеры изAdMob в приложение для iOS. Помимо фрагментов кода и инструкций, он содержит информацию о правильном выборе размеров баннеров и ссылки на дополнительные ресурсы.

Предпосылки

Всегда тестируйте тестовые объявления

При создании и тестировании своих приложений убедитесь, что вы используете тестовую рекламу, а не живую производственную рекламу. Невыполнение этого требования может привести к приостановке действия вашей учетной записи.

Самый простой способ загрузить тестовые объявления — использовать наш специальный идентификатор тестового рекламного блока для баннеров iOS:ca-app-pub-3940256099942544/2934735716

Он был специально настроен для возврата тестовых объявлений для каждого запроса, и вы можете использовать его в своих собственных приложениях при написании кода, тестировании и отладке. Просто убедитесь, что вы заменили его собственным идентификатором рекламного блока, прежде чем публиковать свое приложение.

Дополнительные сведения о том, как работают тестовые объявления Mobile Ads SDK, см. в разделе Тестовые объявления .

Создайте 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: bottomLayoutGuide,
                          attribute: .top,
                          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.bottomLayoutGuide
                               attribute:NSLayoutAttributeTop
                              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 — этот контроллер представления используется для представления наложения при нажатии на объявление. Обычно он должен быть установлен на контроллер представления, который содержит 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 представляют один запрос объявления и содержат свойства для таких вещей, как информация о таргетинге.

Рекламные события

С помощью GADBannerViewDelegate вы можете прослушивать события жизненного цикла, например, когда объявление закрывается или пользователь покидает приложение.

Регистрация на баннерные мероприятия

Чтобы зарегистрироваться для событий баннерной рекламы, задайте для свойства delegate GADBannerView объект, который реализует протокол GADBannerViewDelegate . Как правило, класс, который реализует рекламные баннеры, также действует как класс делегата, и в этом случае для свойства 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");
}

См. пример Ad Delegate для реализации методов делегирования баннера в демонстрационном приложении iOS API.

Свифт Цель-C

Сценарии использования

Вот несколько примеров использования этих методов рекламных событий.

Добавление баннера в иерархию представлений после получения рекламы

Вы можете захотеть отложить добавление GADBannerView в иерархию представлений до тех пор, пока не будет получено объявление. Вы можете сделать это, прослушивая событие 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: Представление viewWillAppear:
bannerViewDidDismissScreen: ViewDidAppear viewDidAppear:

В таблице ниже перечислены стандартные размеры баннеров.

Размер в пунктах (ШхВ) Описание Доступность Константа AdSize
320x50 Баннер Телефоны и планшеты GADAdSizeBanner
320x100 Большой баннер Телефоны и планшеты GADAdSizeLargeBanner
300 x 250 IAB средний прямоугольник Телефоны и планшеты GADAdSizeMediumRectangle
468x60 Полноразмерный баннер IAB Таблетки GADAdSizeFullBanner
728x90 Таблица лидеров IAB Таблетки GADAdSizeLeaderboard
Предоставленная ширина x адаптивная высота Адаптивный баннер Телефоны и планшеты Н/Д

Пользовательские размеры объявлений

Чтобы определить пользовательский размер баннера, установите желаемый размер с помощью GADAdSizeFromCGSize , как показано здесь:

Быстрый

let adSize = GADAdSizeFromCGSize(CGSize(width: 300, height: 50))

Цель-C

GADAdSize size = GADAdSizeFromCGSize(CGSizeMake(300, 50));

Дополнительные ресурсы

Примеры на GitHub

Видеоуроки Mobile Ads Garage

Истории успеха