Early ad break notification v1
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
- Reklam arasının oluşturulduğu ilgili canlı yayının tanımlayıcısıdır. Bu tanımlayıcı aşağıdakilerden biri olabilir:
- Canlı yayının "Öğe Anahtarı".
- Canlı yayının "Özel Öğe Anahtarı". Bu anahtar, kendi tanımlayıcı dizenizi belirterek kendi anahtar alanınızı yönetmenize olanak tanır.
- Canlı yayının "İçerik Kaynağı Kimliği" ve "İçerik Kimliği".
Not: Bu tanımlayıcı türünü kullanabilmeniz gerekir. Daha fazla bilgi için hesap yöneticinizle iletişime geçin.
- Bir sonraki reklam arasının beklenen süresi. Süre, gerçek reklam arası süresine mümkün olduğunca yakın olmalıdır.
Bu zorunlu alanlara ek olarak özel hedefleme parametreleri, uygulanacak bir reklam kapsülü şablonunun adını veya varsa SCTE35 Cue Out verilerini de gönderebilirsiniz.
Ön koşullar
EABN API'yi kullanmak için bir hizmet hesabı oluşturmanız ve hesabı Google Ad Manager ağınıza eklemeniz gerekir.
Hizmet hesabı oluşturma
EABN API'sini çağırmak için bir hizmet hesabı oluşturmak üzere aşağıdaki adımları tamamlayın: - Google Cloud hesabınız varsa hizmet hesabı oluşturmak için IAM modülünü kullanın. Daha fazla bilgi için Hizmet hesapları oluşturma ve yönetme başlıklı makaleyi inceleyin. - Google Cloud hesabınız yoksa Google API Console'dan hesap oluşturmak için aşağıdaki adımları uygulayın:
- Yeni bir proje oluşturun veya mevcut bir projeyi seçin.
- Kimlik bilgileri sayfasında Hizmet hesaplarını yönet'i tıklayın.
- Hizmet hesapları sayfasında HİZMET HESAPLARI OLUŞTUR'u tıklayın.
- Hizmet hesabı oluştur sayfasında hesap ayrıntılarını girin. Ardından OLUŞTUR'u tıklayın.
Hizmet hesabı oluşturduktan sonra, kimlik doğrulama için kullanılan hesabın JSON anahtarını kopyalayın.
API'yi etkinleştirme
Hizmet hesabını oluşturduktan sonra, hesabınız için API'yi etkinleştirmek üzere hesap yöneticinize aşağıdaki bilgileri sağlayın:
- Google Cloud Hesabınızın e-posta adresi
- Hizmet hesabınız
- Google Ad Manager ağınızın ağ kodu.
API, hesap yöneticiniz tarafından etkinleştirildikten sonra API'yi etkinleştirmek için aşağıdaki adımları uygulayın:
- Google API kitaplığında "Google Ad Manager Video API"yi arayın.
- ETKİNLEŞTİR'i tıklayın.
Not: API, arama sonuçlarında görünmüyorsa hesabınızın DAI API için etkinleştirildiğini onaylamak üzere hesap yöneticinizle iletişime geçin.
API'yi kullanma
EABN API'yi JSON/REST isteklerini kullanarak çağırabilirsiniz.
Yetkilendirme
EABN API'ye yetkili çağrılar yapmak için hizmet hesabınızdaki JSON anahtarını ve https://www.googleapis.com/auth/video-ads
kapsamını kullanarak OAuth2 hizmet hesabı kimlik bilgileri oluşturmanız gerekir. Daha fazla bilgi için Sunucudan Sunucuya Uygulamalar için OAuth 2.0'ı Kullanma başlıklı makaleyi inceleyin.
Elde edilen yetkilendirme jetonunu, EABN API'sine yapılan her çağrı için bir Kimlik Doğrulama üst bilgisi olarak eklemeniz gerekir.
Erken reklam arası bildirimi göndermek için canlı yayını nasıl belirtmeyi tercih ettiğinize bağlı olarak üç geçerli EABN URL'sinden birine bir POST isteği gönderin. Aşağıdaki bölümlerde, URL'ler arasındaki farklar açıklanmakta ve istek ve yanıt örnekleri verilmektedir.
URL'ler
Erken reklam arası bildirimi için üç geçerli URL vardır. Reklam arası oluşturmak (POST
) veya atanan reklam aralarının listesini almak (GET
) için üç türün de kullanabilirsiniz.
Canlı yayının öğe anahtarını kullanmak için:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
Canlı yayının özel öğe anahtarını kullanmak için:
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
İçerik kaynağı kimliği ve Content ID yaklaşımını kullanmak için:
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
Tüm parametreler için:
network_code
, Google Ad Manager ağınızın ağ kodunu temsil eder.
asset_key
, canlı yayın ayrıntıları sayfanızda gösterilen öğe anahtarını temsil eder.
custom_asset_key
, canlı yayınınızın özel öğe anahtarını temsil eder.
content_source_id
, Google Ad Manager'daki bir içerik kaynağının kimliğini temsil eder.
content_id
, Google Ad Manager'daki bir içeriğin kimliğini temsil eder.
Not: Belirtilen content_source_id
/content_id
çifti, Google Ad Manager'daki bir canlı yayınla ilişkilendirilmelidir.
İstek gövdesi: Yalnızca reklam arası oluşturmak için kullanılır (POST)
Nesne |
expectedDuration
| Zorunlu | Bu reklam arasının, Google'ın standart süre biçimi (xx.xxx saniye sayısının olduğu xx.xxxs) kullanılarak gösterilen süresi |
customParams
| İsteğe bağlı | AM360'taki özel ölçüt hedefleme için bu arayla ilgili reklam isteklerine dahil edilecek,
=
ve
&
. Örnek:
key=value&key2=value2,value3
Hedefleme hakkında daha fazla bilgi için Akışınıza hedefleme parametreleri sağlama başlıklı makaleyi inceleyin.
|
podTemplateName
| İsteğe bağlı | Reklam kapsülü şablon adı |
scte35CueOut
| İsteğe bağlı | scte35 işaret çıkışından alınan Base-64 ile kodlanmış veriler. Şunları içerebilir:
splice_insert()
veya
time_signal()
komutunu kullanın. Örnekler: |
Örnek istekler
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"
}
Yanıt gövdesi
Yanıt gövdesinde, adBreak
nesnesinde gönderilen tüm parametrelerin yanı sıra oluşturulan reklam arasının Google genelindeki standart kimliğini içeren ek bir name
alanı bulunur. Bu alan aşağıdaki biçimde döndürülür:
networks/{network_code}/assets/{asset_key}/adBreaks/{ad_break_id}
Örnek yanıt
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 …
Yanıt gövdesi
Yanıt gövdesi, akışa atanan her reklam arası için ek bir breakState
alanıyla reklam aralarını içerir. breakState
alanı aşağıdaki değerleri destekler:
// Ad break decisioning has started.
BREAK_STATE_DECISIONED
// Break has started to be delivered to end users.
BREAK_STATE_COMPLETE
Örnek yanıt
HTTP/1.1 200 OK
{
"name": "networks/.../assets/.../adBreaks/1",
"expectedDuration": "30s",
"breakState": "BREAK_STATE_COMPLETE"
}
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-21 UTC.
[null,null,["Son güncelleme tarihi: 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 }"]]