Режимы работы SDK
SDK может работать в одном или нескольких режимах в зависимости от ответа на рекламу, который он получает от рекламного сервера.
- Одиночное объявление
-  Рекламное объявление может быть воспроизведено в любой момент после отправки startсообщения вIMAAdsManager. Для воспроизведения одного рекламного объявления специальная инициализация не требуется.
- Рекламный блок
-  Несколько рекламных блоков, которые воспроизводятся один за другим после отправки startсообщения вIMAAdsManager. Для воспроизведения одного рекламного блока специальная инициализация не требуется.
- Правила рекламы
-  Плейлист с рекламными паузами, запланированными на определённое время для определённого контента. startсообщение игнорируется в режиме правил для рекламы. В одном плейлисте может быть запланировано несколько рекламных пауз (например, в начале, в середине или в конце ролика). Подробнее о реализации см. в разделе «Правила для рекламы» ниже.
Правила рекламы
SDK IMA tvOS поддерживает полностью автоматизированные плейлисты с рекламой. Эта функция вставляет рекламные паузы в контент, как указано в 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 перед воспроизведением контента.