La inserción de anuncios guiada por el servidor (SGAI) proporciona un manifiesto de grupo de anuncios listo para unir en dispositivos cliente. Si habilitaste la DAI de publicación de Pods en tu red de Google Ad Manager, tienes acceso para usar la SGAI. Si no tienes habilitada la DAI de publicación de pods, comunícate con tu administrador de cuentas.
Con SGAI, usas los extremos de la API de publicación de pods para crear un flujo que recupera los metadatos de los anuncios y los manifiestos de los grupos de anuncios.
Si tienes un servidor de manipulación de manifiestos, puedes generar las URLs del manifiesto del grupo de anuncios e insertar marcadores de anuncios que contengan la información del manifiesto del grupo de anuncios en tu flujo de contenido, según tus especificaciones preferidas.
Como alternativa, puedes programar una pausa publicitaria con un mecanismo diferente a los marcadores de anuncios en el manifiesto de transmisión. En estos casos, tu app puede escuchar otros eventos, por ejemplo, la interacción del usuario con la transmisión, la app en sí o una notificación push. Después de estos eventos, la app puede generar las URLs del manifiesto del grupo de anuncios y decirle al reproductor que comience a cargar el manifiesto del grupo de anuncios.
Requisitos previos
Antes de continuar, asegúrate de tener lo siguiente:
- La publicación de grupos de anuncios de DAI habilitada en tu red de Google Ad Manager
- Un evento de transmisión en vivo con el tipo Manifiesto de publicación de grupos de anuncios Para crear el evento, consulta Cómo configurar una transmisión en vivo para DAI.
Sigue las recomendaciones
Antes de generar la URL del manifiesto del grupo de anuncios, te recomendamos que llames a la API de Early Ad Break Notification (EABN) para especificar la duración esperada, la información de segmentación y otros parámetros de cada pausa publicitaria.
Para las transmisiones de producción y prueba, llama a la API de EABN, en especial si tu red de anuncios tiene campañas programáticas. Para obtener más información, consulta Funciones y lineamientos de Programática directa.
Realiza una solicitud de registro de transmisión
Cuando un usuario inicia una transmisión de contenido en tu app de reproductor de video, realizas una solicitud de registro de transmisión con parámetros de segmentación para crear una sesión de transmisión en Ad Manager. Para obtener detalles sobre cómo realizar una solicitud de registro de transmisión, consulta Método:transmisión. Luego, recibes datos de respuesta de la solicitud.
En los siguientes ejemplos, se realiza una solicitud de registro de transmisión:
- Solicitud:
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
- Respuesta:
{
"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"
}
- Línea de comandos:
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"
- Resultado:
{
"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"
}
- Usa la API de Fetch:
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);
- Registro de la consola:
{
"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"
}
Cómo sondear metadatos de pausas publicitarias
Después de realizar una solicitud de registro de transmisión, sondea los metadatos del anuncio. Para sondear, configuras un temporizador con polling_frequence
en la respuesta del flujo en el paso de registro para llamar a los metadata del anuncio.
Para cada sondeo, es posible que recibas una lista parcial de anuncios con metadatos a medida que estén disponibles.
Genera la URL del manifiesto del grupo de anuncios
Crea una URL para el recurso de pod de la API de Pod Serving. Luego, pasa la URL a un reproductor de video para comenzar a cargar el grupo de anuncios.
En el siguiente ejemplo, se muestra la estructura de la URL del manifiesto del grupo de anuncios:
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
Puedes calcular los parámetros de URL del manifiesto del grupo de anuncios según la información de la pausa del anuncio que se recupera del reproductor de video o una notificación del servidor. Para conocer los requisitos de estos parámetros, consulta Método: Manifiesto de pod.
Cómo reproducir el manifiesto del grupo de anuncios
En la app del reproductor de video cliente, comienza a reproducir contenido de transmisión con un reproductor de video principal y sigue la documentación del reproductor para observar la reproducción y la programación de anuncios, si corresponde.
Si generas las URLs del manifiesto de grupo de anuncios y las insertas en el manifiesto del servidor, observa los próximos eventos de pausas publicitarias del reproductor de video y asegúrate de suscribirte a los eventos de ID3 durante cada reproducción de pausa publicitaria. Si programas los eventos de pausas publicitarias desde el lado del cliente, suscríbete a los eventos id3 en la creación.
Informa impresiones y eventos de anuncios
Cuando un reproductor de video reproduce el grupo de anuncios y encuentra metadatos de tiempo ID3, escucha los eventos de anuncios que activa el reproductor de video y los procesa para enviar pings de verificación de contenido multimedia.