Оформление с помощью шаблона
Это архивная версия документации. Актуальная документация по всем платформам находится здесь.
Для настройки внешнего оформления можно использовать стандартный шаблон оформления или создать свое оформление на основе стандартного шаблона.
Использование стандартного шаблона оформления
После настройки оформления задайте местоположение и размеры рекламы относительно экрана устройства.
- Создайте объект — экземпляр класса YMANativeBannerView и установите для него загруженную рекламу:
let bannerView = YMANativeBannerView() bannerView.ad = ad view.addSubview(bannerView)
YMANativeBannerView *bannerView = [[YMANativeBannerView alloc] init]; bannerView.ad = ad; [self.view addSubview:bannerView];
- Чтобы получать уведомления о взаимодействии пользователя с рекламой (открытие рекламы, выход из приложения), установите для нее делегат YMANativeAdDelegate, реализующий методы:
ad.delegate = self
ad.delegate = self;
- Пример использования стандартного шаблона оформления:
Создание своего оформления на основе шаблона
После настройки оформления задайте местоположение и размеры рекламы относительно экрана устройства.
- Создайте объект — экземпляр класса YMANativeBannerView и установите для него загруженную рекламу:
let bannerView = YMANativeBannerView() bannerView.ad = ad view.addSubview(bannerView)
YMANativeBannerView *bannerView = [[YMANativeBannerView alloc] init]; bannerView.ad = ad; [self.view addSubview:bannerView];
- Чтобы получать уведомления о взаимодействии пользователя с рекламой (открытие рекламы, выход из приложения), установите для нее делегат YMANativeAdDelegate, реализующий методы:
ad.delegate = self
ad.delegate = self;
- Запросите настройки стандартного шаблона оформления:
let appearance = YMAMutableNativeTemplateAppearance.default()
YMAMutableNativeTemplateAppearance *appearance = [[YMANativeTemplateAppearance defaultAppearance] mutableCopy];
- Задайте предпочитаемые настройки.
- Чтобы применить настройки к шаблону, вызовите метод -applyAppearance::
bannerView.apply(appearance)
[bannerView applyAppearance:appearance];
Пример настроек оформления
// Определяем собственные цветовые решения для работы.
let orangeColor = UIColor(red: 1, green: 176.0/255, blue: 32.0/255, alpha: 1)
let blueColor = UIColor(red: 0, green: 170.0/255, blue: 1, alpha: 1)
// Создаем копию с настройками стандартного шаблона оформления.
let appearance = YMAMutableNativeTemplateAppearance.default()
// Начинаем изменять стандартные настройки шаблона.
// Задаем цвет для рамки рекламного объявления.
appearance.borderColor = orangeColor
// Создаем копию с настройками рейтинга.
let ratingAppearance = appearance.ratingAppearance?.mutableCopy() as? YMAMutableRatingAppearance
// Задаем цвет для закрашенных звезд в рейтинге.
ratingAppearance?.filledStarColor = orangeColor
appearance.ratingAppearance = ratingAppearance
// Задаем цвет и размер шрифта для надписи на кнопке с действием.
let callToActionTextAppearance = YMALabelAppearance(font: .systemFont(ofSize: 14), textColor: blueColor)
// Задаем цвет кнопки для обычного и нажатого состояния, цвет и толщину обводки кнопки.
let callToActionAppearance = YMAButtonAppearance(
textAppearance: callToActionTextAppearance,
normalColor: .clear,
highlightedColor: .gray,
borderColor: blueColor,
borderWidth: 1
)
appearance.callToActionAppearance = callToActionAppearance
// Задаем размер и цвет шрифта для надписи с возрастным ограничением.
appearance.ageAppearance = YMALabelAppearance(font: .systemFont(ofSize: 12), textColor: .gray)
// Задаем размер и цвет шрифта для заголовка рекламного объявления.
appearance.titleAppearance = YMALabelAppearance(font: .systemFont(ofSize: 14), textColor: .black)
// Задаем размер и цвет шрифта для основного рекламного текста.
appearance.bodyAppearance = YMALabelAppearance(font: .systemFont(ofSize: 12), textColor: .gray)
// Задаем ширину изображения и правило формирования размера.
let imageConstraint = YMASizeConstraint(type: .fixed, value: 60)
// Применяем настройки к изображению.
appearance.imageAppearance = YMAImageAppearance(widthConstraint: imageConstraint)
// Определяем собственные цветовые решения для работы.
UIColor *orangeColor =
[UIColor colorWithRed:255.f / 255.f green:176.f / 255.f blue:32.f / 255.f alpha:1.f];
UIColor *blueColor =
[UIColor colorWithRed:0.f / 255.f green:170.f / 255.f blue:255.f / 255.f alpha:1.f];
// Создаем копию с настройками стандартного шаблона оформления.
YMAMutableNativeTemplateAppearance *appearance = [[YMANativeTemplateAppearance defaultAppearance] mutableCopy];
// Начинаем изменять стандартные настройки шаблона.
// Задаем цвет для рамки рекламного объявления.
appearance.borderColor = orangeColor;
// Создаем копию с настройками рейтинга.
YMAMutableRatingAppearance *ratingAppearance = [appearance.ratingAppearance mutableCopy];
// Задаем цвет для закрашенных звезд в рейтинге.
ratingAppearance.filledStarColor = orangeColor;
appearance.ratingAppearance = ratingAppearance;
// Задаем цвет и размер шрифта для надписи на кнопке с действием.
YMALabelAppearance *callToActionTextAppearance =
[YMALabelAppearance appearanceWithFont:[UIFont systemFontOfSize:14.f]
textColor:blueColor];
// Задаем цвет кнопки для обычного и нажатого состояния, цвет и толщину обводки кнопки.
YMAButtonAppearance *callToActionAppearance =
[YMAButtonAppearance appearanceWithTextAppearance:callToActionTextAppearance
normalColor:[UIColor clearColor]
highlightedColor:[UIColor grayColor]
borderColor:blueColor
borderWidth:1.f];
appearance.callToActionAppearance = callToActionAppearance;
// задаем размер и цвет шрифта для надписи с возрастным ограничением.
appearance.ageAppearance =
[YMALabelAppearance appearanceWithFont:[UIFont systemFontOfSize:12.f]
textColor:[UIColor grayColor]];
// Задаем размер и цвет шрифта для заголовка рекламного объявления.
appearance.titleAppearance =
[YMALabelAppearance appearanceWithFont:[UIFont systemFontOfSize:14.f]
textColor:[UIColor blackColor]];
// Задаем размер и цвет шрифта для основного рекламного текста.
appearance.bodyAppearance =
[YMALabelAppearance appearanceWithFont:[UIFont systemFontOfSize:12.f]
textColor:[UIColor grayColor]];
// Задаем ширину изображения и правило формирования размера.
YMASizeConstraint *imageConstraint =
[YMASizeConstraint constraintWithType:YMASizeConstraintTypeFixed value:60.f];
// Применяем настройки к изображению.
appearance.imageAppearance =
[YMAImageAppearance appearanceWithWidthConstraint:imageConstraint];
Получаем собственный дизайн на основе шаблона:
Настройка местоположения и размера рекламы
Минимальный размер экземпляра класса YMANativeMediaView, в котором поддерживается воспроизведение видео: 300x160 или 160x300.
Для поддержки воспроизведения видео в шаблонах нативной рекламы рекомендуется выставить ширину для YMANativeBannerView не менее 300. Корректная высота для mediaView
будет вычислена автоматически, с учетом соотношения ширины и высоты.
- с помощью системного механизма
AutoLayout
;Примечание.При работе с
AutoLayout
задайтеconstraint
для шириныUIView
. Высота будет определена автоматически на основании указанной ширины. - вручную, задавая все размеры.
Настройка размеров вручную
Не рекомендуется задавать ширину объекта более 420 логических пикселей.
Задайте для объекта YMANativeBannerView
ширину и высоту. Высота определяется с помощью метода +heightWithAd:width:appearance:, в который необходимо передать рекламное объявление, ширину и объект YMANativeTemplateAppearance
(используется для настроек внешнего вида рекламного объявления).
// Задаем отступы слева и справа относительно экрана.
let inset: CGFloat = 50
// Задаем ширину.
let width = view.frame.width - 2 * inset
// Задаем высоту.
let height = YMANativeBannerView.height(with: ad, width: width, appearance: nil)
// Задаем позицию по вертикали.
let y = view.frame.maxY - height - inset
// Задаем координаты и размеры для frame.
bannerView.frame = CGRect(x: inset, y: y, width: width, height: height)
// Задаем отступы слева и справа относительно экрана.
CGFloat inset = 50.f;
// Задаем ширину.
CGFloat width = CGRectGetWidth(self.view.frame) - 2 * inset;
// Задаем высоту.
CGFloat height = [YMANativeBannerView heightWithAd:ad width:width appearance:nil];
// Задаем позицию по вертикали.
CGFloat y = CGRectGetMaxY(self.view.frame) - height - inset;
// Задаем координаты и размеры для frame.
bannerView.frame = CGRectMake(inset, y, width, height);