Руководство по интеграции MediaView

Внимание.

Это архивная версия документации. Актуальная документация по всем платформам находится здесь.

Примечание.

Интеграция описана на примере рекламы типа ImageAd.

  1. Подключите Mobile Ads SDK.

    Добавьте в Podfile проекта зависимость:
    pod 'YandexMobileAds', '5.9.1'
    pod 'YandexMobileAdsInstream', '0.18.0'
  2. Загрузите нативную рекламу.

    1. Создайте объект класса YMANativeAdLoader с конфигурацией YMANativeAdRequestConfiguration.
    2. Реализуйте протокол YMANativeAdLoaderDelegate и метод -nativeAdLoader:didLoadAd:.
    3. Установите delegate для созданного объекта YMANativeAdLoader.
    4. Вызовите метод -loadAdWithRequestConfiguration:.
  3. Отобразите нативную рекламу.

    Ограничение. Требования к размерам mediaView при отображении видеорекламы

    Минимальный размер экземпляра класса YMANativeMediaView, в котором поддерживается воспроизведение видео: 300x160 или 160x300.

    Для поддержки воспроизведения видео в нативной рекламе рекомендуется выставить ширину для mediaView не менее 300. Чтобы вычислить соответствующее значение высоты mediaView, используйте значение свойства aspectRatio. При отображении рекламы с помощью шаблонов, корректная высота для mediaView будет вычислена автоматически, с учетом соотношения ширины и высоты.

    1. Для простого способа отображения рекламы воспользуйтесь шаблонами.
      1. Создайте объект класса YMANativeBannerView.
      2. Установите для него объект загруженной рекламы.
      override func viewDidLoad() {
          super.viewDidLoad()
          adLoader = YMANativeAdLoader()
          adLoader.delegate = self
          let requestConfiguration = YMANativeAdRequestConfiguration(adUnitID: “<AdUnitID>”)
          adLoader.loadAd(with: requestConfiguration)
      }

      Подробнее о нативной рекламе читайте в разделе Нативная реклама.

    2. Также вы можете воспользоваться ручным способом отображения нативной рекламы. Такой способ позволяет отображать нативную рекламу максимально адаптивно под ваш основной контент. Вызовите метод -bindWithAdView:error:.

      func nativeAdLoader(_ loader: YMANativeAdLoader, didLoad ad: YMANativeAd) {
          ad.delegate = self
          do {
              try ad.bind(with: adView)
          } catch {
              print("Error: \(error)")
          }
      }
      func configureView(for ad: YMANativeAd) {
          let assets = ad.adAssets()
      
          if let media = assets.media {
              //you can use the aspect ratio if you need it to determine the size of media view.
              print(String(format: "Media aspect ratio: %.2f", media.aspectRatio))
          }
      }

      Подробнее о нативной рекламе читайте в разделе Оформление без использования шаблона.