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

Примечание.

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

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

    Добавьте в Podfile проекта зависимость:

    pod 'YandexMobileAds', '2.13.0'
    Примечание.

    Если в Podfile присутствует строка use_frameworks!, рекомендуется использовать динамический фреймворк.

  2. Загрузите нативную рекламу.

    1. Создайте объект класса YMANativeAdLoader с конфигурацией YMANativeAdLoaderConfiguration.
    2. Установите delegate для созданного объекта YMANativeAdLoader.
    3. Вызовите метод -loadAdWithRequest:.
  3. Отобразите нативную рекламу.

    1. Для простого способа отображения рекламы воспользуйтесь шаблонами.
      1. Создайте объект класса YMANativeBannerView.
      2. Установите для него объект загруженной рекламы.
      - (void)viewDidLoad
      {
          [super viewDidLoad];
        YMANativeAdLoaderConfiguration *configuration =
                [[YMANativeAdLoaderConfiguration alloc] initWithBlockID:@"your_block"
                                                loadImagesAutomatically:YES];
            self.adLoader = [[YMANativeAdLoader alloc] initWithConfiguration:configuration];
            self.adLoader.delegate = self;
            [self.adLoader loadAdWithRequest:nil];
        }
      
      - (void)nativeAdLoader:(YMANativeAdLoader *)loader didLoadImageAd:(id<YMANativeImageAd>)ad
      {
          YMANativeBannerView *bannerView = [[YMANativeBannerView alloc] init];
          bannerView.ad = ad;
          [self.view addSubview:bannerView];
      }
      
      - (void)nativeAdLoader:(YMANativeAdLoader *)loader didFailLoadingWithError:(NSError *)error
      {
          // handle error
      }

      Подробнее о нативной рекламе читайте в разделе Процесс подключения нативной рекламы.

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

      1. Определите значение subview у объекта класса YMANativeImageAdView.

                UIButton *feedbackButton = [self button];
                YMANativeMediaView *mediaView = [self mediaAssetView];
                self.feedbackButton = feedbackButton;
                self.mediaView = mediaView;
                [self addSubview:self.mediaView];
                [self addSubview:self.feedbackButton];
      2. Вызовите метод -bindImageAdToView:delegate:error:.

        - (void)nativeAdLoader:(YMANativeAdLoader *)loader didLoadImageAd:(id<YMANativeImageAd>)ad
        {
            NSError * __autoreleasing error = nil;
            [ad bindImageAdToView:self.imageAdView delegate:self error:&error];
            [self configureViewForAd:ad];
            [self.view addSubview:self.imageAdView];
        }
        
        - (void)configureViewForAd:(id<YMANativeGenericAd>)ad
        {
            YMANativeAdAssets *assets = [ad adAssets];
            if (view.ad.adAssets.feedbackAvailable) {
                self.imageAdView.feedbackButton.hidden = NO;
            }
            else {
                self.imageAdView.feedbackButton.hidden = YES;
            }
            
            YMANativeAdMedia *media = assets.media;
            if (media != nil) {
                //you can use the aspect ratio if you need it to determine the size of media view.
                NSLog(@"Media aspect ratio: %.2f", media.aspectRatio);
            }
        }

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