En esta guía, se explica cómo configurar tu manipulador de manifiestos para solicitar segmentos de anuncios o cortinillas de video con el método de segmento de grupo de anuncios.
Selecciona un protocolo de transmisión:
Requisitos previos
Antes de continuar, debes configurar un evento de transmisión en vivo para el tipo de inserción de anuncios dinámicos (DAI) de redireccionamiento de publicación de Pod y los perfiles de codificación. Para configurar un evento de transmisión en vivo, elige uno de los siguientes métodos:
- IU de Ad Manager: Configura una transmisión en vivo para la DAI.
- API de Ad Manager: Usa una biblioteca cliente para llamar al método
LiveStreamEventService.createLiveStreamEvents. Establece el parámetroLiveStreamEvent.dynamicAdInsertionTypeenPOD_SERVING_REDIRECT. - Autentica las solicitudes: Cada solicitud de segmento que se realice con la publicación de pods de redireccionamiento de segmentos debe incluir un token firmado con HMAC para la autenticación. Calcula este token una vez por pausa publicitaria y compártelo en todas las sesiones de transmisión. Para calcular el token HMAC, consulta Cómo autenticar solicitudes de grupos de anuncios.
Después de configurar el evento de transmisión en vivo, recupera los perfiles de codificación del evento desde la IU o la API de Ad Manager llamando al método DaiEncodingProfileService.getDaiEncodingProfilesByStatement.
Recupera la transmisión de contenido
Cuando un usuario selecciona un evento de transmisión en vivo, la app cliente realiza una solicitud de transmisión a Google Ad Manager. En la respuesta de transmisión, la app extrae el ID de sesión y los metadatos de la DAI de Google para incluirlos en la solicitud del manifiesto de transmisión.
En el siguiente ejemplo, se pasa un ID de sesión de la DAI de Google a un manipulador de manifiestos:
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
Cuando proceses la solicitud de reproducción de contenido de video, almacena el ID de sesión de la DAI de Google y CUSTOM_ASSET_KEY de la solicitud para preparar la inserción de anuncios.
Identifica los segmentos de pausas publicitarias e inserta discontinuidades
A medida que procesas cada manifiesto de variantes, identifica las etiquetas EXT-X-CUE-IN y EXT-X-CUE-OUT en tu transmisión, que indican el inicio y el final de una pausa publicitaria.
Reemplaza las etiquetas EXT-X-CUE-IN y EXT-X-CUE-OUT por los elementos EXT-X-DISCONTINUITY para que el reproductor de video del cliente pueda cambiar entre el contenido y los anuncios.
En el siguiente ejemplo de manifiesto, se reemplazan las etiquetas EXT-X-CUE-IN y EXT-X-CUE-OUT:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
En el siguiente ejemplo, se muestra un manifiesto reemplazado:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Los segmentos de anuncios de la DAI de Google no están encriptados. Si tu contenido está encriptado, quita la encriptación insertando el elemento EXT-X-KEY:METHOD=NONE antes del primer segmento de anuncio de cada pausa publicitaria. Al final de la pausa publicitaria, vuelve a agregar la encriptación insertando un EXT-X-KEY adecuado.
Realiza un seguimiento de la hora de inicio, la duración y el índice de la próxima pausa publicitaria.
Crea URLs de segmentos de anuncios
Reemplaza cada segmento de contenido entre las etiquetas EXT-X-DISCONTINUITY por una URL que apunte al método de segmento de la tanda de anuncios.
En el siguiente ejemplo, se ensambla un segmento de pod de anuncios. Ten en cuenta que los segmentos de anuncios usan un índice basado en cero:
https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC
En el siguiente ejemplo, se insertan los segmentos del pod de anuncios en el manifiesto:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4
Opcional: Programa una pausa publicitaria
Para mejorar tu tasa de relleno, envía una notificación de Early Ad Break Notification (EABN) con la duración del grupo de anuncios, los parámetros de segmentación personalizada y los datos de la señal SCTE-35. Para obtener más información, consulta Cómo enviar notificaciones anticipadas de pausas publicitarias.