Режимы работы SDK
SDK может работать в одном или нескольких режимах в зависимости от ответа на рекламу, который он получает от рекламного сервера.
- Одиночное объявление
- Объявление, которое можно воспроизвести в любой момент после отправки
start
сообщения вIMAAdsManager
. Для воспроизведения одного объявления не требуется никакой специальной инициализации. - Рекламный блок
- Несколько рекламных объявлений, которые воспроизводятся последовательно, когда
start
сообщение отправляется вIMAAdsManager
. Для воспроизведения одного рекламного модуля не требуется никакой специальной инициализации. - Правила рекламы
- Плейлист с рекламными паузами, запланированными в определенное время для определенного контента.
start
сообщение игнорируется в режиме правил объявлений. В одном плейлисте может быть запланировано несколько рекламных пауз (например, в начале, в середине и после ролика). Дополнительные сведения о реализации см. в разделе «Правила для объявлений» ниже.
Правила рекламы
IMA iOS SDK поддерживает полностью автоматизированные плейлисты с рекламой. Эта функция вставляет рекламные паузы в контент, как указано в Google Ad Manager при размещении ваших объявлений. Это также значительно упрощает код видеоплеера, необходимый для поддержки рекламных пауз, включая предварительные, средние и последующие ролики.
- При размещении объявлений в Менеджере рекламы можно указать различные правила для рекламы, например «всегда воспроизводить рекламную паузу в начале контента» или «играть одноминутную рекламную паузу каждые 30 минут контента».
- При запросе рекламы рекламный сервер может вернуть список воспроизведения рекламы. SDK обрабатывает список воспроизведения и автоматически планирует указанные рекламные паузы.
- При инициализации
AdsManager
объектIMAContentPlayhead
передается через вызовinitializeWithContentPlayhead:adsRenderingSettings:
Если вы используете AVPlayer для отображения своего контента, вы передаете экземплярIMAAVPlayerContentPlayhead
в SDK при созданииadDisplayContainer
. Этот объект используется для отслеживания хода воспроизведения контента, поэтому рекламные паузы автоматически вставляются в время, указанное в Менеджере рекламы.С AVPlayer:
IMAContentPlayhead *contentPlayhead = [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentAVPlayer]; IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:adTagUrl adDisplayContainer:adDisplayContainer contentPlayhead:contentPlayhead userContext:nil];
Без AVPlayer:
- Реализуйте интерфейс
IMAContentPlayhead
. - Реализуйте
currentTime
, чтобы вернуть текущее время вашего видеоплеера. - Измените вызов инициализации
IMAAdsManager
, чтобы использоватьinitializeWithContentPlayhead:self
.
- Реализуйте интерфейс
- IMAAdsManagerDelegate используется для приостановки и возобновления контента во время воспроизведения рекламных пауз.
Примечание. Когда воспроизведение контента завершено или пользователь остановил воспроизведение, обязательно вызовите contentComplete
в IMAAdsLoader
, чтобы сообщить SDK о завершении воспроизведения контента. Затем SDK воспроизводит рекламную паузу после ролика, если она запланирована. Событие ALL_ADS_COMPLETED
возникает после воспроизведения всех рекламных пауз. Кроме того, обратите внимание, что отслеживание контента начинается, когда вызывается метод initializeWithContentPlayhead:adsRenderingSettings
IMAAdsManager
, и вам всегда следует вызывать initializeWithContentPlayhead:adsRenderingSettings
перед воспроизведением контента.