Early ad break notification v1
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
- Es el identificador de la transmisión en vivo correspondiente para la que se crea la pausa publicitaria. Este identificador puede ser uno de los siguientes:
- La "Clave del activo" de la transmisión en vivo.
- La "Clave de activo personalizada" de la transmisión en vivo, que te permite administrar tu propio espacio de claves especificando tu propia cadena de identificador.
- El “ID de la fuente de contenido” y el “ID de contenido” de la transmisión en vivo
Nota: Debes tener autorización para usar este tipo de identificador. Para obtener más información, comunícate con tu administrador de cuentas.
- Es la duración esperada de la próxima pausa publicitaria. La duración debe ser lo más cercana posible a la duración real de la pausa publicitaria.
Además de estos campos obligatorios, también puedes enviar parámetros de segmentación personalizados, el nombre de una plantilla de grupo de anuncios para aplicar o datos de salida de SCTE35, si están disponibles.
Requisitos previos
Para usar la API de EABN, debes crear una cuenta de servicio y agregarla a tu red de Google Ad Manager.
Crea una cuenta de servicio
Para crear una cuenta de servicio para llamar a la API de EABN, completa los siguientes pasos: - Si tienes una cuenta de Google Cloud, usa el módulo de IAM para crear una cuenta de servicio. Para obtener más información, consulta Crea y administra cuentas de servicio. - Si no tienes una cuenta de Google Cloud, completa los siguientes pasos para crear una desde la Consola de API de Google:
- Crea un proyecto nuevo o selecciona uno existente.
- En la página Credenciales, haz clic en Administrar cuentas de servicio.
- En la página Cuentas de servicio, haz clic en CREAR CUENTA DE SERVICIO.
- En la página Crear cuenta de servicio, ingresa los detalles de la cuenta. Luego, haz clic en CREAR.
Una vez que hayas creado una cuenta de servicio, copia la clave JSON de la cuenta, que se usa para la autenticación.
Habilitar la API
Una vez que hayas creado la cuenta de servicio, proporciona la siguiente información a tu administrador de cuentas para habilitar la API de tu cuenta:
- La dirección de correo electrónico de tu cuenta de Google Cloud
- Tu cuenta de servicio
- El código de red de tu red de Google Ad Manager
Una vez que el administrador de cuentas haya habilitado la API, completa los siguientes pasos para habilitarla:
- En la biblioteca de la API de Google, busca "API de Google Ad Manager Video".
- Haz clic en HABILITAR.
Nota: Si la API no aparece en los resultados de la búsqueda, comunícate con tu administrador de cuentas para confirmar que tu cuenta esté habilitada para la API de DAI.
Usar la API
Puedes llamar a la API de EABN con solicitudes JSON/REST.
Autorización
Para realizar llamadas autorizadas a la API de EABN, debes generar credenciales de cuenta de servicio de OAuth2 con la clave JSON de tu cuenta de servicio y el alcance https://www.googleapis.com/auth/video-ads
. Si deseas obtener más información, consulta Cómo usar OAuth 2.0 para aplicaciones de servidor a servidor.
Debes incluir el token de autorización resultante como encabezado de autorización para cada llamada a la API de EABN.
Para enviar una notificación de pausa publicitaria anticipada, envía una solicitud POST a una de las tres URLs de EABN válidas, según cómo prefieras especificar la transmisión en vivo. En las siguientes secciones, se explican las diferencias entre las URLs y se proporcionan ejemplos de solicitudes y respuestas.
URL
Existen tres URLs válidas para la notificación de pausa publicitaria anticipada. Puedes usar los tres tipos para crear una pausa publicitaria (POST
) o obtener la lista de pausas publicitarias asignadas (GET
).
Para usar la clave del activo de una transmisión en vivo, usa lo siguiente:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
Para usar la clave del activo personalizado de una transmisión en vivo, usa lo siguiente:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/customAssets/{custom_asset_key}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/customAssets/{custom_asset_key}/adBreaks
Para usar el ID de fuente de contenido y el enfoque de Content ID, sigue estos pasos:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/sources/{content_source_id}/content/{content_id}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/sources/{content_source_id}/content/{content_id}/adBreaks
Para todos los parámetros:
network_code
representa el código de red de tu red de Google Ad Manager.
asset_key
representa la clave del activo que se muestra en la página de detalles de la transmisión en vivo.
custom_asset_key
representa la clave de activo personalizada de tu transmisión en vivo.
content_source_id
representa el ID de una fuente de contenido en Google Ad Manager.
content_id
representa el ID de un elemento de contenido en Google Ad Manager.
Nota: El par content_source_id
/content_id
especificado debe estar asociado con una transmisión en vivo en Google Ad Manager.
Cuerpo de la solicitud: Solo se usa para crear una pausa publicitaria (POST).
Objeto |
expectedDuration
| Obligatorio | Es la duración de esta pausa publicitaria con el formato de duración estándar de Google (xx.xxxs, en el que xx.xxx es la cantidad de segundos). |
customParams
| Opcional | Son los pares clave-valor que se incluirán en las solicitudes de anuncios de esta pausa para la segmentación de criterios personalizados en AM360, separados por
=
y se unió
&
. Ejemplo:
key=value&key2=value2,value3
Para obtener más información sobre la segmentación, consulta Cómo proporcionar parámetros de segmentación a tus novedades.
|
podTemplateName
| Opcional | El nombre de la plantilla de grupo de anuncios |
scte35CueOut
| Opcional | Datos codificados en Base-64 a partir del indicador de scte35. Puede incluir lo siguiente:
splice_insert()
o
time_signal()
"kubectl describe". Ejemplos: |
Solicitudes de ejemplo
POST admanagervideo.googleapis.com/v1/networks/.../sources/.../content/.../adBreaks
Content-Type: application/json
Authorization: Bearer …
{
"expectedDuration": "30s",
"scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
"customParams": "param1=value1¶m2=value2",
"podTemplateName": "podtemplate"
}
Cuerpo de la respuesta
El cuerpo de la respuesta contiene todos los parámetros enviados en el objeto adBreak
, así como un campo name
adicional, que contiene el ID estándar de Google de la pausa publicitaria creada. Este campo se muestra en el siguiente formato:
networks/{network_code}/assets/{asset_key}/adBreaks/{ad_break_id}
Ejemplo de respuesta
HTTP/1.1 200 OK
{
"name": "networks/.../assets/.../adBreaks/1",
"expectedDuration": "30s",
"scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
"customParams": "param1=value1¶m2=value2",
"podTemplateName": "podtemplate"
}
GET admanagervideo.googleapis.com/v1/networks/.../sources/.../content/.../adBreaks
Content-Type: application/json
Authorization: Bearer …
Cuerpo de la respuesta
El cuerpo de la respuesta contiene las pausas publicitarias con un campo breakState
adicional para cada pausa publicitaria asignada a la transmisión. El campo breakState
admite los siguientes valores:
// Ad break decisioning has started.
BREAK_STATE_DECISIONED
// Break has started to be delivered to end users.
BREAK_STATE_COMPLETE
Ejemplo de respuesta
HTTP/1.1 200 OK
{
"name": "networks/.../assets/.../adBreaks/1",
"expectedDuration": "30s",
"breakState": "BREAK_STATE_COMPLETE"
}
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-21 (UTC)
[null,null,["Última actualización: 2025-08-21 (UTC)"],[[["\u003cp\u003eThe Early Ad Break Notification (EABN) API enables you to inform Google Ad Manager about upcoming ad breaks in live streams, including metadata, up to an hour in advance.\u003c/p\u003e\n"],["\u003cp\u003eTo use the EABN API, you must create a service account, add it to your Google Ad Manager network, and have the API enabled by your account manager.\u003c/p\u003e\n"],["\u003cp\u003eThe API requires the live stream identifier (asset key, custom asset key, or content source ID with content ID) and the expected ad break duration.\u003c/p\u003e\n"],["\u003cp\u003eYou can optionally include custom targeting parameters, an ad pod template name, and SCTE35 Cue Out data with your EABN requests.\u003c/p\u003e\n"],["\u003cp\u003eEABN requests are immutable, and subsequent requests for the same event are rejected until the break appears in the event's manifest.\u003c/p\u003e\n"]]],[],null,["# Early ad break notification v1\n\nUsing the Early Ad Break Notification API\n-----------------------------------------\n\n- The identifier of the corresponding live stream to which the ad break is being created. This identifier can be one of the following:\n- The \"Asset Key\" of the live stream.\n- The \"Custom Asset Key\" of the live stream, which allows you to manage your own key space by specifying your own identifier string.\n- The \"Content Source ID\" and the \"Content ID\" of the live stream.\n\nNote: You must be enabled to use this identifier type. For more information, contact your account manager.\n\n- The expected duration of the next ad break. The duration needs to be as close to the actual ad break length as possible.\n\nIn addition to these required fields, you can also send custom targeting parameters, the name of an ad pod template to apply, or SCTE35 Cue Out data, if available.\n\n### Prerequisites\n\nIn order to use the EABN API, you must create a service account and add the account to your Google Ad Manager network.\n\n#### Creating a service account\n\nTo create a service account for calling the EABN API, complete the following steps: - If you have a Google Cloud account, use the IAM module to create a service account. For more information, see [Creating and managing service accounts](//cloud.google.com/iam/docs/creating-managing-service-accounts). - If you do not have a Google Cloud account, complete the following steps to create one from the [Google API Console](//console.developers.google.com/apis/credentials/):\n\n1. Create a new project or select an existing project.\n2. In the **Credentials** page, click **Manage service accounts**.\n3. In the **Service accounts** page, click **CREATE SERVICE ACCOUNT**.\n4. In the **Create Service account** page, enter the account details. Then, click **CREATE**.\n\nOnce you have created a service account, copy the account's JSON key, which is used for authentication.\n\n#### Adding your service account to your Google Ad Manager network\n\nTo add your service account to your network, complete the steps in [Add a service account user for API access](//support.google.com/admanager/answer/6078734).\n\n### Enabling the API\n\nOnce you have created the service account, provide the following information to your account manager to enable the API for your account:\n\n- Your Google Cloud Account email address\n- Your service account\n- The Network Code of your Google Ad Manager Network.\n\nAfter the API has been enabled by your account manager, complete the following steps to enable the API:\n\n1. In the [Google API library](//console.developers.google.com/apis/library), search for \"Google Ad Manager Video API\".\n2. Click **ENABLE**.\n\nNote: If the API does not appear in the search results, contact your account manager to confirm that your account has been enabled for the DAI API.\n\n### Using the API\n\nYou can call the EABN API using JSON/REST requests.\n\n#### Authorization\n\nTo make authorized calls to the EABN API, you need to generate OAuth2 service account credentials using the JSON key from your service account and the scope `https://www.googleapis.com/auth/video-ads`. For more information, see [Using OAuth 2.0 for Server to Server Applications](https://developers.google.com/identity/protocols/oauth2/service-account).\n\nYou must include the resulting authorization token as an Auth header for each call to the EABN API.\n\n#### Sending an early ad break notification\n\nTo send an early ad break notification, send a POST request to one of the three valid EABN URLs, depending on how you prefer to specify the live stream. The following sections explain the differences between the URLs and provide request and response examples.\n\n##### URLs\n\nThere are three valid URLs for early ad break notification. You can use all three types to create an ad break (`POST`) or get the list of assigned ad breaks (`GET`).\n\nTo use the asset key of a live stream, use: \n\n POST admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks\n\n GET admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks\n\nTo use the custom asset key of a live stream, use: \n\n POST admanagervideo.googleapis.com/v1/networks/{network_code}/customAssets/{custom_asset_key}/adBreaks\n\n GET admanagervideo.googleapis.com/v1/networks/{network_code}/customAssets/{custom_asset_key}/adBreaks\n\nTo use the Content Source ID and Content ID approach, use: \n\n POST admanagervideo.googleapis.com/v1/networks/{network_code}/sources/{content_source_id}/content/{content_id}/adBreaks\n\n GET admanagervideo.googleapis.com/v1/networks/{network_code}/sources/{content_source_id}/content/{content_id}/adBreaks\n\nFor all the parameters:\n\n- `network_code` represents the network code of your Google Ad Manager network.\n- `asset_key` represents the asset key shown in your live stream details page.\n- `custom_asset_key` represents the custom asset key of your live stream.\n- `content_source_id` represents the id of a content source in Google Ad Manager.\n- `content_id` represents the id of a piece of content in Google Ad Manager.\n\nNote: The specified `content_source_id`/`content_id` pair must be associated with a live stream in Google Ad Manager.\n\n##### Request body - only used to create an Ad Break (POST)\n\n\u003cbr /\u003e\n\n| Object |||\n| \u003cbr /\u003e `expectedDuration` \u003cbr /\u003e | Required | The duration of this ad break, using Google's standard duration format (xx.xxxs where xx.xxx is the number of seconds) |\n| \u003cbr /\u003e `customParams` \u003cbr /\u003e | Optional | Key-value pairs to be included on ad requests for this break for custom criteria targeting in AM360, separated by \u003cbr /\u003e `=` and joined by `&` . Example: `key=value&key2=value2,value3` \u003cbr /\u003e For more information on targeting, see [Supply targeting parameters to your stream](//support.google.com/admanager/answer/7320899). |\n| \u003cbr /\u003e `podTemplateName` \u003cbr /\u003e | Optional | The ad pod template name |\n| \u003cbr /\u003e `scte35CueOut` \u003cbr /\u003e | Optional | Base-64-encoded data from the scte35 cue out. Can include the \u003cbr /\u003e `splice_insert()` or `time_signal()` command. Examples: - time_signal(): \u003cbr /\u003e `/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==` \u003cbr /\u003e - splice_insert(): \u003cbr /\u003e `/DAvAAAAAAAA///wFAVIAACPf+/+c2nALv4AUsz1AAAAAAAKAAhDVUVJAAABNWLbowo=` \u003cbr /\u003e |\n|----------------------------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n\n\u003cbr /\u003e\n\n### Example requests\n\n##### Create an Ad Break\n\n POST admanagervideo.googleapis.com/v1/networks/.../sources/.../content/.../adBreaks\n Content-Type: application/json\n Authorization: Bearer ...\n {\n \"expectedDuration\": \"30s\",\n \"scte35CueOut\": \"/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==\",\n \"customParams\": \"param1=value1¶m2=value2\",\n \"podTemplateName\": \"podtemplate\"\n }\n\n###### Response body\n\nThe response body contains all of the parameters sent in the `adBreak` object, as well as an additional `name` field, which contains the Google-wide standard ID of the created ad break. This field is returned in the following format: \n\n networks/{network_code}/assets/{asset_key}/adBreaks/{ad_break_id}\n\n###### Example response\n\n HTTP/1.1 200 OK\n {\n \"name\": \"networks/.../assets/.../adBreaks/1\",\n \"expectedDuration\": \"30s\",\n \"scte35CueOut\": \"/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==\",\n \"customParams\": \"param1=value1¶m2=value2\",\n \"podTemplateName\": \"podtemplate\"\n }\n\n##### List assigned Ad Breaks\n\n GET admanagervideo.googleapis.com/v1/networks/.../sources/.../content/.../adBreaks\n Content-Type: application/json\n Authorization: Bearer ...\n\n###### Response body\n\nThe response body contains the ad breaks with an additional `breakState` field for each ad break assigned to the stream. `breakState` field supports the following values: \n\n // Ad break decisioning has started.\n BREAK_STATE_DECISIONED\n\n // Break has started to be delivered to end users.\n BREAK_STATE_COMPLETE\n\n###### Example response\n\n HTTP/1.1 200 OK\n {\n \"name\": \"networks/.../assets/.../adBreaks/1\",\n \"expectedDuration\": \"30s\",\n \"breakState\": \"BREAK_STATE_COMPLETE\"\n }"]]