En esta guía, se explica cómo configurar tu manipulador de manifiestos para solicitar anuncios o segmentos de pizarra 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 en vivo para los perfiles de codificación y el tipo de inserción de anuncios dinámicos (DAI) de redireccionamiento de publicación de Pod. 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.
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 corte publicitario. Al final de la pausa publicitaria, vuelve a agregar la encriptación insertando un EXT-X-KEY adecuado.
Haz un seguimiento de la hora de inicio, la duración y el índice de la próxima pausa publicitaria.
Genera un token de código de autenticación de mensajes basado en hash (HMAC)
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 corte publicitario y compártelo en todas las sesiones de transmisión.
Recopila parámetros de tokens
Para completar el cuerpo del token, recopila la siguiente información de la pausa publicitaria actual:
| Parámetros de token | ||
|---|---|---|
custom_asset_key
|
Obligatorio | Es la clave del recurso de la transmisión en vivo personalizada de Google Ad Manager. |
cust_params
|
Opcional | Parámetros de segmentación personalizada Consulta los cust_params.
|
exp
|
Obligatorio | Es la marca de tiempo de vencimiento del token actual en segundos. |
network_code
|
Obligatorio | Es el código de red de Ad Manager 360. |
pod_id
|
Obligatorio | Es el identificador de la pausa publicitaria. Es un número entero que comienza en 1. Para cada pausa publicitaria, este identificador aumenta en uno.
Este valor debe ser el mismo para todos los usuarios que vean la misma pausa publicitaria en el evento actual. |
pd
|
Es obligatorio, excepto para los eventos con pausas publicitarias sin duración habilitadas. | Es la duración en milisegundos de la pausa publicitaria. Se hace referencia a ella como ad_pod_duration.
|
scte35
|
Opcional | Es un indicador SCTE-35 codificado en Base64. La DAI de Google siempre copia el indicador en la pausa publicitaria creada, incluso si el indicador es incorrecto.
Si es incorrecto, recibirás un mensaje en el encabezado HTTP X-Ad-Manager-Dai-Warning de la respuesta, y el indicador seguirá creando una pausa publicitaria. Para obtener detalles sobre cómo la DAI usa la señal SCTE-35, consulta los marcadores de anuncios admitidos.
|
Crea una cadena de token
Para crear una cadena de token, enumera cada parámetro en orden alfabético, en el formato NAME=VALUE, con cada par nombre-valor separado por un carácter de virgulilla ~.
En el caso de los parámetros opcionales no utilizados, usa una cadena vacía como valor o quita el parámetro por completo.
En el siguiente ejemplo, se da formato a una cadena de token:
custom_asset_key=CUSTOM_ASSET_STRING~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=AD_POD_INDEX~scte35=SCTE35_MESSAGE
Genera la firma HMAC
La firma HMAC es un hash SHA-256 de la cadena de token en formato HEX. La clave secreta es la clave de autenticación HMAC asociada a tu evento de transmisión en vivo en Google Ad Manager.
Cadena del token de firma
Después de generar la firma HMAC, agrégala a la cadena del token con el siguiente formato:
~hmac=HMAC_SIGNATURE
Codifica la cadena del token
Para pasar el token como un parámetro de URL, codifica la URL para mayor seguridad.
En el siguiente ejemplo, se genera un token HMAC firmado y codificado en el que los parámetros opcionales no utilizados son cadenas vacías:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~cust_params%3D~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3D86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
En el siguiente ejemplo, se genera un token HMAC firmado y codificado sin parámetros opcionales no utilizados:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
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 Ad Pod. 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 pod de anuncios, los parámetros de segmentación personalizados y los datos de la señal SCTE-35. Para obtener más información, consulta Cómo enviar notificaciones anticipadas de pausas publicitarias.