Early ad break notification v1
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
- Identifiant de la diffusion en direct correspondante pour laquelle la coupure publicitaire est créée. Cet identifiant peut être l'un des suivants:
- "Clé d'élément" de la diffusion en direct.
- La "Clé d'élément personnalisée" de la diffusion en direct, qui vous permet de gérer votre propre espace de clés en spécifiant votre propre chaîne d'identifiant.
- "ID de la source de contenu" et "ID de contenu" de la diffusion en direct.
Remarque: Vous devez être autorisé à utiliser ce type d'identifiant. Pour en savoir plus, contactez votre responsable de compte.
- Durée prévue de la prochaine coupure publicitaire. La durée doit être aussi proche que possible de la durée réelle de la coupure publicitaire.
En plus de ces champs obligatoires, vous pouvez également envoyer des paramètres de ciblage personnalisés, le nom d'un modèle de série d'annonces à appliquer ou des données de cue-out SCTE35, le cas échéant.
Prérequis
Pour utiliser l'API EABN, vous devez créer un compte de service et l'ajouter à votre réseau Google Ad Manager.
Créer un compte de service
Pour créer un compte de service permettant d'appeler l'API EABN, procédez comme suit: - Si vous disposez d'un compte Google Cloud, utilisez le module IAM pour créer un compte de service. Pour en savoir plus, consultez Créer et gérer des comptes de service. - Si vous ne possédez pas de compte Google Cloud, suivez les étapes ci-dessous pour en créer un dans la console Google APIs:
- Créez un projet ou sélectionnez-en un.
- Sur la page Identifiants, cliquez sur Gérer les comptes de service.
- Sur la page Service accounts (Comptes de service), cliquez sur CREATE SERVICE ACCOUNT (CRÉER UN COMPTE DE SERVICE).
- Sur la page Créer un compte de service, saisissez les détails du compte. Cliquez ensuite sur CRÉER.
Une fois que vous avez créé un compte de service, copiez sa clé JSON, qui est utilisée pour l'authentification.
Activer l'API
Une fois le compte de service créé, fournissez les informations suivantes à votre responsable de compte pour activer l'API pour votre compte:
- Adresse e-mail de votre compte Google Cloud
- Votre compte de service
- Code de réseau de votre réseau Google Ad Manager.
Une fois que votre responsable de compte a activé l'API, procédez comme suit pour l'activer:
- Dans la bibliothèque des API Google, recherchez "API Google Ad Manager Video".
- Cliquez sur ENABLE (ACTIVER).
Remarque: Si l'API n'apparaît pas dans les résultats de recherche, contactez votre responsable de compte pour vous assurer que l'API DAI a été activée dans votre compte.
Utilisation de l'API
Vous pouvez appeler l'API EABN à l'aide de requêtes JSON/REST.
Autorisation
Pour effectuer des appels autorisés à l'API EABN, vous devez générer des identifiants de compte de service OAuth2 à l'aide de la clé JSON de votre compte de service et de l'étendue https://www.googleapis.com/auth/video-ads
. Pour en savoir plus, consultez Utiliser OAuth 2.0 pour l'authentification serveur à serveur.
Vous devez inclure le jeton d'autorisation obtenu en tant qu'en-tête d'autorisation pour chaque appel de l'API EABN.
Pour envoyer une notification de coupure publicitaire anticipée, envoyez une requête POST à l'une des trois URL EABN valides, selon la méthode de spécification de la diffusion en direct que vous préférez. Les sections suivantes expliquent les différences entre les URL et fournissent des exemples de requêtes et de réponses.
URL
Il existe trois URL valides pour la notification anticipée de coupure publicitaire. Vous pouvez utiliser les trois types pour créer une coupure publicitaire (POST
) ou obtenir la liste des coupures publicitaires attribuées (GET
).
Pour utiliser la clé de l'élément d'une diffusion en direct, utilisez:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
Pour utiliser la clé d'élément personnalisée d'une diffusion en direct, utilisez:
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
Pour utiliser l'approche de l'ID de la source du contenu et de Content ID, utilisez:
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
Pour tous les paramètres:
network_code
représente le code de réseau de votre réseau Google Ad Manager.
asset_key
représente la clé d'élément affichée sur la page d'informations de votre diffusion en direct.
custom_asset_key
représente la clé d'élément personnalisée de votre diffusion en direct.
content_source_id
représente l'ID d'une source de contenu dans Google Ad Manager.
content_id
représente l'ID d'un contenu dans Google Ad Manager.
Remarque: La paire content_source_id
/content_id
spécifiée doit être associée à un flux en direct dans Google Ad Manager.
Corps de la requête : uniquement utilisé pour créer une coupure publicitaire (POST)
Objet |
expectedDuration
| Obligatoire | Durée de cette coupure publicitaire, au format Google standard (xx,xxxs, où xx,xxx correspond au nombre de secondes) |
customParams
| Facultatif | Paires clé-valeur à inclure dans les demandes d'annonces liées à cette coupure publicitaire pour le ciblage par critères personnalisés dans AM360, séparées par
=
et rejoint par
&
. Exemple:
key=value&key2=value2,value3
Pour en savoir plus sur le ciblage, consultez Indiquer des paramètres de ciblage dans votre flux.
|
podTemplateName
| Facultatif | Nom du modèle de série d'annonces |
scte35CueOut
| Facultatif | Données encodées en base64 à partir du point de sortie scte35. Peut inclure les
splice_insert()
ou
time_signal()
en utilisant la commande gcloud, Exemples: |
Exemples de requête
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"
}
Corps de la réponse
Le corps de la réponse contient tous les paramètres envoyés dans l'objet adBreak
, ainsi qu'un champ name
supplémentaire, qui contient l'ID standard Google de la coupure publicitaire créée. Ce champ est renvoyé au format suivant:
networks/{network_code}/assets/{asset_key}/adBreaks/{ad_break_id}
Exemple de réponse
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 …
Corps de la réponse
Le corps de la réponse contient les coupures publicitaires avec un champ breakState
supplémentaire pour chaque coupure publicitaire attribuée au flux. Le champ breakState
accepte les valeurs suivantes:
// Ad break decisioning has started.
BREAK_STATE_DECISIONED
// Break has started to be delivered to end users.
BREAK_STATE_COMPLETE
Exemple de réponse
HTTP/1.1 200 OK
{
"name": "networks/.../assets/.../adBreaks/1",
"expectedDuration": "30s",
"breakState": "BREAK_STATE_COMPLETE"
}
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/21 (UTC).
[null,null,["Dernière mise à jour le 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 }"]]