Перейти к основному содержимому

Нативная реклама

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

Интеграция

Native AdQueue — это инструмент для реализации и управления нативной рекламой в Appodeal SDK. Вам больше не нужно загружать нативную рекламу вручную. Все, что вам нужно сделать, это установить объект AdQueue, и он будет автоматически загружать новые элементы.

Будьте осторожны при использовании AdQueue: если ваше приложение загружает слишком много рекламы, но не может ее использовать, рекламная сеть может либо снизить стоимость каждого показа для вас, либо ограничить вашу возможность загружать нативную рекламу.

import Appodeal
class ViewController: UIViewController {
var adQueue : APDNativeAdQueue!
}

Требования к нативной рекламе
  • Все поля нативной рекламы, помеченные как обязательные, должны быть отображены.
  • Каждое объявление должно иметь знак, четко указывающий, что это реклама. Например, "Реклама" или "Спонсировано".
  • Предоставленные изображения могут быть изменены для соответствия вашему рекламному пространству, но не должны быть значительно искажены или обрезаны.

Настройка параметров нативной рекламы

В adQueue.settings вы можете установить следующие параметры для нативной рекламы, отображаемой в вашем приложении:

Название параметра adQueue.settingsТипНазначениеВозможные значения
typeAPDNativeAdTypeТип нативной рекламыAPDNativeAdTypeAuto APDNativeAdTypeVideo APDNativeAdTypeVideo
adViewClassClass APDNativeAdViewКласс шаблонаШаблон по умолчанию APDDefaultNativeAdView.class
autocacheMaskAPDNativeResourceAutocacheMaskМаска для кэширования медиафайловКэширование иконок: (APDNativeResourceAutocacheIcon): 1, Кэширование изображений и видео (APDNativeResourceAutocacheMedia): 2, Кэширование всех медиафайлов: 3

Инициализация определенного типа нативной рекламы

Appodeal SDK предоставляет как статические, так и видеотипы нативной рекламы.

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

class ViewController: UIViewController {
var adQueue : APDNativeAdQueue!
override func viewDidLoad() {
super.viewDidLoad()
adQueue.settings.adViewClass = TemplateClass.self
adQueue.settings.autocacheMask = [.icon, .media]
adQueue.settings.type = .novideo

adQueue.loadAd()
}
}

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

class ViewController: UIViewController {
var adQueue : APDNativeAdQueue!
override func viewDidLoad() {
super.viewDidLoad()
adQueue.settings.adViewClass = TemplateClass.self
adQueue.settings.autocacheMask = [.icon, .media]
adQueue.settings.type = .video

adQueue.loadAd()
}
}

Соотношение сторон нативной видеорекламы в Appodeal SDK составляет 16:9, размер файла около 1-3 МБ.

В Appodeal SDK существуют два типа нативной видеорекламы:

  • skippable - если установлен флаг “skippable”, видео может быть пропущено через 5 секунд;
  • muted - если установлен флаг “muted”, видео будет воспроизводиться без звука.

Использование пользовательских шаблонов нативной рекламы

Чтобы использовать ваши пользовательские шаблоны для нативной рекламы, просто укажите ваш класс шаблона в adQueue.setting.adViewClass следующим образом:

adQueue.settings.adViewClass = YourNativeAdViewTemplate.self

Ваш класс шаблона должен соответствовать следующему протоколу:

protocol APDNativeAdView {
func titleLabel() -> UILabel
func callToActionLabel() -> UILabel
// Необязательно
func descriptionLabel() -> UILabel
func iconView() -> UIImageView
func mediaContainerView() -> UIView
func contentRatingLabel() -> UILabel
func adChoicesView() -> UIView
func setRating(_ rating: NSNumber)
static func nib() -> UINib
}

Объекты, упомянутые в этом протоколе:

  • titleLabel - контейнер для текста заголовка;
  • callToActionLabel - контейнер для текста призыва к действию;
  • descriptionLabel - контейнер для текста описания;
  • iconView - контейнер для изображения иконки;
  • mediaContainerView - контейнер для медиафайлов (изображений и видеофайлов);
  • contentRatingLabel - контейнер для отображения рейтинга контента;
  • adChoicesView - контейнер для отображения adChoice;
  • rating - контейнер для отображения рейтинга приложения;
  • nib - nib-файл для шаблона.
примечание

Все представления должны быть заключены в одном superview. Если YourNativeAdViewTemplate наследуется от UITableViewCell(UICollectionViewCell), эти представления должны содержаться в иерархии contentView.

Получить все нативные объявления из Native AdQueue

import UIKit
import Appodeal

class ViewController: UIViewController {

@IBOutlet weak var nativeAdView: UIView!
var nativeAdQueue: APDNativeAdQueue!
var nativeArray: [APDNativeAd] = []

override func viewDidLoad() {
super.viewDidLoad()
nativeAdQueue = APDNativeAdQueue()
nativeAdQueue.settings = APDNativeAdSettings.default()
nativeAdQueue.settings.adViewClass = CustomNativeAdView.self
nativeAdQueue.delegate = self
nativeAdQueue.settings.autocacheMask = [.icon, .media]

nativeAdQueue.loadAd()
}

@IBAction func presentNativeAd(_ sender: Any) {
let nativeAd = nativeArray.first
if let nativeAd = nativeAd {
nativeAd.delegate = self
do {
let adView = try nativeAd.getViewForPlacement("default", withRootViewController: self)
adView.frame = nativeAdView.bounds
nativeAdView.addSubview(adView)
} catch {
print("error")
}
}
}
}

extension ViewController: APDNativeAdQueueDelegate, APDNativeAdPresentationDelegate {
func adQueueAdIsAvailable(_ adQueue: APDNativeAdQueue, ofCount count: UInt) {
if nativeArray.count > 0 {
return
} else {
nativeArray.append(contentsOf: adQueue.getNativeAds(ofCount: 1))
nativeArray.map{( $0.delegate = self )}
}
}
}

Объект Native Ad

Объекты NativeAd имеют следующие характеристики в Appodeal SDK. Все поля, помеченные как "Обязательные", должны быть отображены:

Название поляОбязательноОписание
*NSString titleОбязательноЗаголовок нативного объявления. Должно отображаться не менее 25 символов заголовка. В конце можно добавить многоточие, если заголовок длиннее.
*NSString subtitleОпциональноПодзаголовок нативного объявления
*NSString descriptionTextОпциональноТекстовое описание нативного объявления. Если вы решили отобразить описание, вы должны отображать не менее 75 символов. В конце можно добавить многоточие.
*NSString callToActionTextОбязательноТекст призыва к действию. Должен отображаться на видимой кнопке без усечения.
*NSString contentRatingОпциональноРейтинг контента.
*NSNumber starRatingОпциональноПриложение в диапазоне [0-5].
*APDImage mainImageОпциональноБитмап изображения. Объект объявления содержит как иконку, так и изображение. Обязательно использовать хотя бы один из этих элементов. Устаревший метод. Вместо него следует использовать NativeMediaView для отображения изображений или видео.
*APDImage iconImageОбязательноБитмап иконки. Объект объявления содержит как иконку, так и изображение. Обязательно использовать хотя бы один из этих элементов.
*UIView adChoicesViewОбязательноView. Если он не возвращает null, обязательно отображать иконку провайдера в любом углу нативного объявления. Используется некоторыми сетями для отображения AdChoices или иконки конфиденциальности.

Распространенные ошибки с нативной рекламой

  • Отсутствие атрибуции рекламы или значка AdChoices

    Большинство рекламных сетей требуют от издателей добавлять специальную пометку к нативной рекламе, чтобы пользователи не спутали ее с контентом. Вот почему вы всегда должны убедиться, что нативная реклама в вашем приложении имеет атрибуцию рекламы (например, «Реклама») или значок AdChoices.

  • Отсутствие необходимых элементов нативной рекламы

    Каждое нативное объявление должно содержать:

    • заголовок;
    • кнопку призыва к действию;
    • атрибуцию рекламы или значок AdChoices;
    • иконку, изображение или видео.
  • Изменение элементов нативной рекламы

    Рекламодатели ожидают, что их объявления будут отображаться четко и без каких-либо изменений. Вы можете масштабировать кнопки и изображения, но не должны обрезать, закрывать или искажать их.

  • Наложение элементов нативной рекламы друг на друга

    Убедитесь, что все элементы нативной рекламы видны и не перекрываются.


Вы можете использовать наше демо-приложение в качестве примера проекта.

Демо-приложение


Если вы хотите использовать расширенную интеграцию нативной рекламы, подробную документацию вы можете найти здесь