Early ad break notification v1
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
- Identyfikator odpowiedniej transmisji na żywo, dla której tworzona jest przerwa na reklamę. Identyfikator może być jednym z tych:
- „Klucz zasobu” transmisji na żywo.
- „Niestandardowy klucz zasobu” transmisji na żywo, który umożliwia zarządzanie własnym obszarem klucza przez podanie własnego ciągu identyfikatora.
- „Identyfikator źródła treści” i „Content ID” transmisji na żywo.
Uwaga: musisz mieć uprawnienia do używania tego typu identyfikatora. Aby dowiedzieć się więcej, skontaktuj się z menedżerem konta.
- Przewidywany czas trwania następnej przerwy na reklamę. Czas trwania musi być jak najbardziej zbliżony do rzeczywistego czasu trwania przerwy na reklamę.
Oprócz tych wymaganych pól możesz też wysyłać niestandardowe parametry kierowania, nazwę szablonu podgrupy reklam, który ma być zastosowany, lub dane SCTE35 Cue Out (jeśli są dostępne).
Wymagania wstępne
Aby korzystać z interfejsu EABN API, musisz utworzyć konto usługi i dodać je do sieci Google Ad Manager.
Tworzę konto usługi
Aby utworzyć konto usługi do wywoływania interfejsu EABN API, wykonaj te czynności: – Jeśli masz konto Google Cloud, użyj modułu IAM, aby utworzyć konto usługi. Więcej informacji znajdziesz w artykule Tworzenie kont usługi i zarządzanie nimi. – Jeśli nie masz konta Google Cloud, wykonaj te czynności, aby je utworzyć w Konsoli Google API:
- Utwórz nowy projekt lub wybierz już istniejący.
- Na stronie Dane logowania kliknij Zarządzaj kontami usługi.
- Na stronie Konta usługi kliknij UTWÓRZ KONTO USŁUGI.
- Na stronie Utwórz konto usługi wpisz szczegóły konta. Następnie kliknij UTWÓRZ.
Po utworzeniu konta usługi skopiuj klucz JSON tego konta, który służy do uwierzytelniania.
Włączanie interfejsu API
Po utworzeniu konta usługi przekaż swojemu menedżerowi konto, aby umożliwić włączenie interfejsu API:
- adres e-mail konta Google Cloud,
- Twoje konto usługi
- Kod sieci Google Ad Managera.
Gdy Twój menedżer konta włączy interfejs API, wykonaj te czynności, aby go włączyć:
- W bibliotece interfejsów API Google wyszukaj „Google Ad Manager Video API”.
- Kliknij WŁĄCZ.
Uwaga: jeśli interfejs API nie pojawia się w wynikach wyszukiwania, skontaktuj się z menedżerem konta, aby potwierdzić, że na Twoim koncie włączono interfejs DAI API.
Korzystanie z interfejsu API
Interfejs EABN API możesz wywoływać za pomocą żądań JSON/REST.
Autoryzacja
Aby wykonywać autoryzowane wywołania interfejsu EABN API, musisz wygenerować dane logowania do konta usługi OAuth 2 przy użyciu klucza JSON z konta usługi i zakresu https://www.googleapis.com/auth/video-ads
. Więcej informacji znajdziesz w artykule Używanie protokołu OAuth 2.0 w aplikacjach międzyserwerowych.
Musisz uwzględnić uzyskany token autoryzacji jako nagłówek autoryzacji w przypadku każdego wywołania interfejsu EABN API.
Aby wysłać powiadomienie o przerwie na reklamę, wyślij żądanie POST do jednego z trzech prawidłowych adresów URL EABN, w zależności od tego, jak chcesz określić transmisję na żywo. W następnych sekcjach wyjaśniono różnice między tymi adresami URL i podano przykłady żądań i odpowiedzi.
Adresy URL
Wcześniejsze powiadomienie o przerwie na reklamę może mieć 3 prawidłowe adresy URL. Możesz użyć wszystkich trzech typów, aby utworzyć przerwę na reklamę (POST
) lub uzyskać listę przypisanych przerw na reklamę (GET
).
Aby użyć klucza zasobu transmisji na żywo:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
Aby użyć niestandardowego klucza zasobu transmisji na żywo, użyj:
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
Aby korzystać z identyfikatora źródła treści i identyfikatora treści, użyj:
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
W przypadku wszystkich parametrów:
network_code
to kod sieci Google Ad Managera.
asset_key
to klucz zasobu widoczny na stronie z informacjami o transmisji na żywo.
custom_asset_key
to niestandardowy klucz zasobu transmisji na żywo.
content_source_id
to identyfikator źródła treści w Google Ad Managerze.
content_id
to identyfikator treści w usłudze Google Ad Manager.
Uwaga: podany zestaw wartości content_source_id
/content_id
musi być powiązany z transmisją na żywo w Google Ad Managerze.
Treść żądania – służy tylko do tworzenia przerwy na reklamę (POST).
Obiekt |
expectedDuration
| Wymagane | Czas trwania przerwy na reklamę w standardowym formacie Google (xx.xxxs, gdzie xx.xxx to liczba sekund). |
customParams
| Opcjonalny | Pary klucz-wartość, które mają być uwzględniane w żądaniach reklamy na potrzeby tej przerwy, używane w ramach kierowania według niestandardowych kryteriów w AM360, rozdzielone przez
=
i dołączyli
&
. Przykład:
key=value&key2=value2,value3
Więcej informacji o kierowaniu znajdziesz w artykule Dodawanie parametrów kierowania do strumienia.
|
podTemplateName
| Opcjonalny | Nazwa szablonu bloku reklamowego |
scte35CueOut
| Opcjonalny | Dane zakodowane w formacie Base-64 z sygnału SCTE-35. Mogą obejmować:
splice_insert()
lub
time_signal()
polecenie. Przykłady: |
Przykładowe żądania
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"
}
Treść odpowiedzi
Treść odpowiedzi zawiera wszystkie parametry wysłane w obiekcie adBreak
, a także dodatkowe pole name
, które zawiera standardowy identyfikator utworzonej przerwy na reklamę w Google. To pole jest zwracane w tym formacie:
networks/{network_code}/assets/{asset_key}/adBreaks/{ad_break_id}
Przykładowa odpowiedź
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 …
Treść odpowiedzi
Treść odpowiedzi zawiera przerwy na reklamy z dodatkowym polem breakState
dla każdej przerwy przypisanej do strumienia. Pole breakState
obsługuje te wartości:
// Ad break decisioning has started.
BREAK_STATE_DECISIONED
// Break has started to be delivered to end users.
BREAK_STATE_COMPLETE
Przykładowa odpowiedź
HTTP/1.1 200 OK
{
"name": "networks/.../assets/.../adBreaks/1",
"expectedDuration": "30s",
"breakState": "BREAK_STATE_COMPLETE"
}
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-21 UTC.
[null,null,["Ostatnia aktualizacja: 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 }"]]