В этом руководстве рассказывается, как интегрировать IMA DAI SDK в приложение с видеопроигрывателем. Если вы хотите посмотреть пример интеграции, скачайте PodServingExample с GitHub.
Обзор IMA DAI
Внедрение IMA DAI включает четыре основных компонента SDK, как показано в этом руководстве:
IMAAdDisplayContainer– объект-контейнер, который находится поверх элемента воспроизведения видео и содержит элементы интерфейса объявления.IMAAdsLoader– объект, который запрашивает потоки и обрабатывает события, инициированные объектами ответов на запросы потоков. Вам нужно создать только один экземпляр загрузчика объявлений, который можно использовать повторно в течение всего жизненного цикла приложения.IMAStreamRequest–IMAPodVODStreamRequestилиIMAPodStreamRequest.IMAStreamManager– объект, который управляет потоками динамической вставки объявлений и взаимодействием с серверной частью динамической вставки объявлений. Менеджер потоков также обрабатывает запросы на отслеживание и пересылает издателю события потока и объявлений.
Кроме того, чтобы воспроизводить пакетные трансляции, реализуйте специальный обработчик VTP. Этот обработчик отправляет идентификатор потока вашему техническому партнеру по видеорекламе вместе с другой информацией, необходимой для возврата манифеста потока, содержащего как контент, так и объединенные объявления. Инструкции по реализации пользовательского обработчика VTP можно получить у поставщика VTP.
Требования
Прежде чем начать, вам понадобится следующее:
- Xcode 13 или более поздней версии;
- Способ установки IMA SDK:
- Swift Package Manager (рекомендуется)
- Скачайте IMA SDK для iOS.
Кроме того, параметры необходимы для запроса трансляции из IMA SDK.
| Параметры трансляции | |
|---|---|
| Код сети |
Код сети для вашего аккаунта Менеджера рекламы 360. |
| Специальный ключ объекта |
Специальный ключ объекта, который идентифицирует событие пакетной передачи в Менеджере рекламы 360. Его создает ваш инструмент управления манифестом или сторонний партнер по показу пакетов. |
| Параметры трансляции видео по запросу | |
| Код сети |
Код сети для вашего аккаунта Менеджера рекламы 360. |
Создайте проект Xcode
В Xcode создайте новый проект iOS на Objective-C с названием PodServingExample.
Добавьте IMA DAI SDK в проект Xcode
Выберите способ установки IMA SDK.
Рекомендуемый способ: установка SDK с помощью Swift Package Manager
Interactive Media Ads SDK поддерживает Swift Package Manager начиная с версии 3.18.4. Чтобы импортировать пакет Swift, выполните следующие действия:
В Xcode установите пакет IMA DAI SDK Swift. Для этого выберите File (Файл) > Add Packages (Добавить пакеты).
В появившемся окне найдите хранилище IMA DAI SDK Swift Package на GitHub:
https://github.com/googleads/swift-package-manager-google-interactive-media-ads-iosВыберите версию пакета Swift IMA DAI SDK, которую вы хотите использовать. Для новых проектов используйте Up to Next Major Version (До следующей основной версии).
После этого Xcode распознает зависимости пакета и скачает их в фоновом режиме. Подробную информацию о том, как добавлять зависимости пакетов, можно найти в статье Apple.
Как скачать и установить SDK вручную
Если вы не хотите использовать Swift Package Manager, скачайте IMA SDK и добавьте его в проект вручную.
Как создать видеопроигрыватель
Реализуйте видеопроигрыватель в основном контроллере представления, поместив AV-проигрыватель в представление пользовательского интерфейса. IMA SDK использует представление пользовательского интерфейса для показа элементов интерфейса объявлений.
Objective-C
Swift
Инициализируйте загрузчик объявлений
Импортируйте IMA SDK в контроллер представления и примените протоколы IMAAdsLoaderDelegate и IMAStreamManagerDelegate, чтобы обрабатывать события загрузчика объявлений и менеджера потоков.
Добавьте следующие закрытые свойства, чтобы сохранить ключевые компоненты IMA SDK:
IMAAdsLoader- Управляет запросами потоков в течение всего времени работы приложения.
IMAAdDisplayContainer- Управляет вставкой и настройкой элементов пользовательского интерфейса объявлений.
IMAAVPlayerVideoDisplay– обеспечивает обмен данными между IMA SDK и медиапроигрывателем, а также обрабатывает метаданные с временными метками.IMAStreamManager– управляет воспроизведением трансляции и активирует события, связанные с рекламой.
Инициализируйте загрузчик объявлений, контейнер для показа объявлений и показ видео после загрузки представления.
Objective-C
Swift
Как отправить запрос на создание потока
Когда пользователь нажимает кнопку воспроизведения, отправьте новый запрос на трансляцию.
Для прямых трансляций используйте класс IMAPodStreamRequest. Для видео по запросу используйте класс IMAPodVODStreamRequest.
В запросе трансляции должны быть указаны параметры трансляции, а также ссылка на контейнер объявлений и видеопроигрыватель.
Objective-C
Swift
Как отслеживать события загрузки потока
Класс IMAAdsLoader вызывает методы IMAAdsLoaderDelegate при успешной инициализации или сбое запроса потока.
В методе делегата adsLoadedWithData задайте IMAStreamManagerDelegate.
Передайте идентификатор потока в собственный обработчик VTP и получите URL манифеста потока. Для прямых трансляций загрузите URL манифеста в видеопроигрыватель и начните воспроизведение. Для видео по запросу передайте URL манифеста в метод loadThirdPartyStream менеджера потоковой передачи. Этот метод запрашивает данные о событиях объявлений из Менеджера рекламы 360, а затем загружает URL манифеста и начинает воспроизведение.
В методе делегата failedWithErrorData зарегистрируйте ошибку. При необходимости запустите резервный поток. Ознакомьтесь с рекомендациями по динамической вставке объявлений.
Objective-C
Swift
Как реализовать собственный обработчик VTP
Специальный обработчик VTP отправляет идентификатор потока зрителя вашему техническому партнеру по видеорекламе (VTP) вместе с любой другой информацией, которая требуется VTP для возврата манифеста потока, содержащего как контент, так и сшитые объявления. В документации к VTP должны быть инструкции по реализации обработчика.
Например, в VTP может быть URL шаблона манифеста, содержащий макрос [[STREAMID]]. В этом примере обработчик вставляет идентификатор потока вместо макроса и возвращает полученный URL манифеста.
Objective-C
Swift
Как отслеживать события объявлений
IMAStreamManager вызывает методы IMAStreamManagerDelegate, чтобы передавать события и ошибки потока в приложение.
В этом примере в консоль записываются основные события объявлений:
Objective-C
Swift
Как удалить объекты IMA DAI
Чтобы остановить воспроизведение трансляции, прекратить отслеживание всех объявлений и освободить все загруженные объекты трансляции, вызовите IMAStreamManager.destroy().
Запустите приложение. Если все в порядке, запросите и воспроизведите потоки Google с динамической вставкой объявлений, используя IMA SDK. Чтобы узнать больше о расширенных функциях SDK, ознакомьтесь с другими руководствами, перечисленными на боковой панели слева, или примерами на GitHub.