Добавление баннерной рекламы и средних прямоугольных баннеров в приложение для iOS

Audience Network позволяет монетизировать приложения iOS за счет рекламы Facebook. В этом руководстве объясняется, как создать приложение для iOS, которое показывает баннерную рекламу и средние прямоугольные баннеры.

You can change placements in Monetization Manager to the Medium Rectangle format if these were previously configured as Banner for bidding. Similarly, for any new medium rectangle placements, navigate to the placement settings page in Monetization Manager and select Medium Rectangle (not Banner).

Placements will deliver as normal even if they are not changed to the medium rectangle format. However, to avoid confusion, we recommend that you change these placements to medium rectangle.

Если вам интересны другие виды рекламы, ознакомьтесь со списком доступных видов.

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

Давайте посмотрим размещение баннерной рекламы на следующем примере.



Шаг 1. Загрузка и показ представления рекламы

Шаг 2. Проверка регистрации показов и кликов

Шаг 3. Что делать, если реклама не демонстрируется

Шаг 4. Тестирование интеграции рекламы

Шаг 1. Загрузка и показ представления рекламы

Обязательно ознакомьтесь с Руководством по настройке iOS перед продолжением.

Убедитесь, что ваша нативная и баннерная реклама соответствуют руководству по компоновке для iOS.

  1. Создав проект согласно руководству по началу работы для iOS, откройте Main.storyboard. Добавьте элемент UIView в главный элемент View и присвойте ему имя adContainer.
  2. Теперь импортируйте FBAudienceNetwork, в файл заголовка контроллера представления (или файл Swift, если вы используете Swift), объявите соответствие протоколу FBAdViewDelegate и добавьте переменную экземпляра для рекламный блок
    import UIKit
    import FBAudienceNetwork
    
    class ViewController: UIViewController, FBAdViewDelegate {
    
      @IBOutlet private var adContainer: UIView!
    
      private var adView: FBAdView?
    }
    #import <UIKit/UIKit.h>
    @import FBAudienceNetwork;
    
    @interface ViewController : UIViewController <FBAdViewDelegate>
    
    @property (nonatomic, weak) IBOutlet UIView *adContainer;
    @property (nonatomic, strong) FBAdView *adView;
    
    @end

  3. Добавьте следующий код в viewDidLoad; Создайте новый экземпляр FBAdView и добавьте его в просмотр. FBAdView является подклассом UIView. Его можно добавить в иерархию просмотра как и любой другой просмотр.
    override func viewDidLoad() {
      super.viewDidLoad()
    
      // Instantiate an AdView object.
      // NOTE: the placement ID will eventually identify this as your app, you can ignore while you
      // are testing and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a 'No Fill' error).
      let adView = FBAdView(placementID: "YOUR_PLACEMENT_ID", adSize: kFBAdSizeHeight50Banner, rootViewController: self)
      adView.frame = CGRect(x: 0, y: 0, width: 320, height: 250)
      adView.delegate = self
      adView.loadAd()
      self.adView = adView
    }
    - (void)viewDidLoad
    {
      [super viewDidLoad];
      // Instantiate an AdView object. 
      // NOTE: the placement ID will eventually identify this as your App, you can ignore it for
      // now, while you are testing and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a no fill error).
      self.adView = [[FBAdView alloc] initWithPlacementID:@"YOUR_PLACEMENT_ID" adSize:kFBAdSizeHeight50Banner rootViewController:self];
      self.adView.frame = CGRectMake(0, 0, 320, 250);
      self.adView.delegate = self;
      [self.adView loadAd];
    }
    Чтобы добавить среднюю прямоугольную рекламу, нужно просто указать kFBAdSizeHeight250Rectangle в параметре adSize в код FBAdView.

    Audience Network поддерживает три размера рекламы для использования в вашем FBAdView. Ширина блока непостоянна, но не меньше 320 пикселей, и только его высота имеет определенное значение.

    Формат рекламы Справочник AdSize Размер Рекомендация

    Средний прямоугольный баннер

    kFBAdSizeHeight 250Rectangle

    300x250

    Этот формат настоятельно рекомендуется, поскольку он обеспечивает повышенную производительность, более высокое качество и эффективнее использует ЦП

    Стандартный баннер

    kFBAdSizeHeight 50Banner

    320x50

    Этот формат подходит для телефонов, но не рекомендуется из-за низкой производительности и качества

    Большой баннер

    kFBAdSizeHeight 90Banner

    320x90

    Этот формат подходит для планшетов и устройствах большего размера, но не рекомендуется из-за низкой производительности и качества

  4. Замените YOUR_PLACEMENT_ID собственной строкой с ID места размещения. Если у вас нет ID места размещения или вы не знаете, как его получить, обратитесь к руководству по началу работы. Выберите сборку в качестве устройства и выполните код, приведенный выше. Вы увидите следующее:



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

Шаг 2. Проверка регистрации показов и кликов

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

func adViewDidClick(_ adView: FBAdView) {
  print("Ad was clicked.")
}

func adViewDidFinishHandlingClick(_ adView: FBAdView) {
  print("Ad did finish click handling.")
}

func adViewWillLogImpression(_ adView: FBAdView) {
  print("Ad impression is being captured.")
}
- (void)adViewDidClick:(FBAdView *)adView
{
  NSLog(@"Ad was clicked.");
}

- (void)adViewDidFinishHandlingClick:(FBAdView *)adView
{
  NSLog(@"Ad did finish click handling.");
}

- (void)adViewWillLogImpression:(FBAdView *)adView
{
  NSLog(@"Ad impression is being captured.");
}

Шаг 3. Что делать, если реклама не демонстрируется

Добавьте и включите в файл интеграции контроллера представления следующие две функцию, чтобы обрабатывать случаи сбоя и завершения загрузки рекламы:

func adView(_ adView: FBAdView, didFailWithError error: Error) {
  print("Ad failed to load with error: \(error.localizedDescription)")
}

func adViewDidLoad(_ adView: FBAdView) {
  print("Ad was loaded and ready to be displayed")
  showAd()
}

private func showAd() {
  guard let adView = adView, adView.isAdValid else {
    return
  }
  adContainer.addSubview(adView)
}
- (void)adView:(FBAdView *)adView didFailWithError:(NSError *)error
{
  NSLog(@"Ad failed to load with error: %@", error);
}

- (void)adViewDidLoad:(FBAdView *)adView
{
  NSLog(@"Ad was loaded and ready to be displayed");
  [self showAd];
}

- (void)showAd
{
  if (self.adView && self.adView.isAdValid) {
    [self.adContainer addSubview:self.adView];
  }
}

При отсутствии рекламы для показа будет вызван adView:didFailWithError: про помощи кода error.code, установленного на 1001. Если вы используете собственную настроенную службу отчетов или агрегацию, для обнаружения подобных случаев можно проверить значение кода. В этой ситуации вы можете перейти на другую рекламную сеть, но не отправляйте сразу же после этого повторный запрос на получение рекламы.


Дальнейшие действия

  • Изучите наши примеры кода, демонстрирующие способы использования нативной рекламы. NativeAdSample является частью SDK и находится в папке FBAudienceNetwork/samples. Откройте проект в Xcode и запустите его на устройстве или в эмуляторе.