Начните использовать SGAI для прямой трансляции

Серверная управляемая вставка рекламы (SGAI) предоставляет манифест рекламного блока, готовый для интеграции на клиентских устройствах. Если вы включили Pod Serving DAI в своей сети Google Ad Manager, вы можете использовать SGAI. Если Pod Serving DAI не включен, обратитесь к своему менеджеру аккаунта.

В SGAI вы используете конечные точки API для обслуживания Pod-ов, чтобы создать поток, получающий метаданные рекламы и манифесты рекламных Pod-ов.

Если у вас есть сервер для обработки манифестов, вы можете генерировать URL-адреса манифеста рекламных блоков и вставлять в поток контента рекламные маркеры, содержащие информацию из манифеста, в соответствии с вашими предпочтительными спецификациями.

В качестве альтернативы, вы можете запланировать рекламную паузу, используя другой механизм, отличный от рекламных маркеров в манифесте потока. В таких случаях ваше приложение может отслеживать другие события, например, взаимодействие пользователя с потоком, самим приложением или push-уведомлением. После этих событий приложение может сгенерировать URL-адреса манифеста рекламного блока и дать указание плееру начать загрузку манифеста рекламного блока.

Предварительные требования

Прежде чем продолжить, убедитесь, что у вас есть следующее:

  • В вашей рекламной сети Google Ad Manager включена поддержка DAI Pod.
  • Событие прямой трансляции с типом манифеста обслуживания подов . Чтобы создать событие, см. раздел «Настройка прямой трансляции для DAI» .

Следуйте рекомендациям

Перед генерацией URL-адреса манифеста рекламного блока мы рекомендуем обратиться к API уведомлений о ранних рекламных паузах (EABN), чтобы указать ожидаемую продолжительность, информацию о таргетинге и другие параметры каждой рекламной паузы.

Для рабочих и тестовых потоков используйте API EABN, особенно если ваша рекламная сеть использует программные кампании. Дополнительную информацию см. в разделе «Функции и рекомендации по использованию Programmatic Direct» .

Отправить запрос на регистрацию на трансляцию

Когда пользователь запускает потоковую передачу контента в вашем приложении видеоплеера, вы отправляете запрос на регистрацию потока с параметрами таргетинга для создания сеанса потоковой передачи в Ad Manager. Подробную информацию о выполнении запроса на регистрацию потока см. в разделе Метод:stream . После этого вы получаете данные ответа на запрос.

Следующие примеры демонстрируют запрос на регистрацию в потоке:

HTTP в обычном текстовом формате

  • Запрос:
authority: dai.google.com
method: POST
path: /ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream
scheme: https
content-type: application/x-www-form-urlencoded

cust_params=customID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2
  • Ответ:
{
    "manifest_format": "hls",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "polling_frequency": 10,
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}

Оболочка

  • Командная строка:
curl \
-H "Host: dai.google.com" \
-H "content-type: application/x-www-form-urlencoded" \
  --data-binary "cust_params=channelID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2" \
  --compressed "https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream"
  • Выход:
{
    "manifest_format": "hls",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
    "polling_frequency": 10,
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}

JavaScript

  • Использование Fetch API:
const response = await fetch("https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
  },
  "body": "cust_params=channelID%3D1543216789%26anotherKey%3Dvalue1%2Cvalue2",
  "method": "POST",
});

  const stream = await response.json();
  console.log(stream);
  • Журнал консоли:
{
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "polling_frequency": 10,
    "pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
    "manifest_format": "hls"
}

Опрос для получения метаданных рекламной паузы

После отправки запроса на регистрацию потока необходимо запросить метаданные объявления. Для этого на этапе регистрации в ответе потока устанавливается polling_frequence который будет вызывать функцию получения метаданных объявления. При каждом запросе вы можете получать частичный список объявлений с метаданными по мере их появления.

Сгенерируйте URL-адрес манифеста рекламного блока.

Сформируйте URL-адрес для ресурса pod-файла в API Pod Serving. Затем передайте этот URL-адрес видеоплееру, чтобы начать загрузку рекламного pod-файла.

Следующий пример демонстрирует структуру URL-адреса манифеста рекламного блока:

https://dai.google.com/linear/pods/v1/hls/network/51636543/custom_asset/pod_serving_hls_manifest_mp4/ad_break_id/ab101.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db:TUL&pd=120000

Вы можете рассчитать параметры URL-адреса манифеста рекламного блока на основе информации о рекламной паузе, полученной из видеоплеера или уведомления сервера. Требования к этим параметрам см. в разделе «Метод: манифест рекламного блока» .

Воспроизвести манифест рекламного подкаста

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

Если вы генерируете URL-адреса манифеста рекламного блока и вставляете их в манифест на стороне сервера, отслеживайте предстоящие события рекламных пауз в видеоплеере и обязательно подписывайтесь на события ID3 во время каждого воспроизведения рекламной паузы. Если вы планируете события рекламных пауз на стороне клиента, подписывайтесь на события ID3 при их создании.

Отчеты о показах и рекламных событиях

Когда видеоплеер воспроизводит рекламный блок и обнаруживает метаданные id3 с временным интервалом, отслеживайте события , запускаемые видеоплеером, и обрабатывайте их для отправки запросов на подтверждение медиаконтента .