Early ad break notification v1
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
- ID live stream yang sesuai tempat jeda iklan dibuat. ID ini dapat berupa salah satu dari hal berikut:
- “Kunci Aset” live stream.
- “Kunci Aset Kustom” live stream, yang memungkinkan Anda mengelola ruang kunci sendiri dengan menentukan string ID Anda sendiri.
- “ID Sumber Konten” dan “Content ID” live stream.
Catatan: Anda harus diizinkan untuk menggunakan jenis ID ini. Untuk informasi selengkapnya, hubungi Account Manager Anda.
- Perkiraan durasi jeda iklan berikutnya. Durasi harus sedekat mungkin dengan durasi jeda iklan yang sebenarnya.
Selain kolom wajib ini, Anda juga dapat mengirim parameter penargetan kustom, nama template pod iklan yang akan diterapkan, atau data Cue Out SCTE35, jika tersedia.
Prasyarat
Untuk menggunakan EABN API, Anda harus membuat akun layanan dan menambahkan akun tersebut ke jaringan Google Ad Manager.
Membuat akun layanan
Untuk membuat akun layanan guna memanggil EABN API, selesaikan langkah-langkah berikut: - Jika Anda memiliki akun Google Cloud, gunakan modul IAM untuk membuat akun layanan. Untuk informasi selengkapnya, lihat Membuat dan mengelola akun layanan. - Jika Anda tidak memiliki akun Google Cloud, selesaikan langkah-langkah berikut untuk membuatnya dari Konsol Google API:
- Buat project baru atau pilih project yang ada.
- Di halaman Kredensial, klik Kelola akun layanan.
- Di halaman Service accounts, klik CREATE SERVICE ACCOUNT.
- Di halaman Create Service account, masukkan detail akun. Kemudian, klik CREATE.
Setelah membuat akun layanan, salin kunci JSON akun, yang digunakan untuk autentikasi.
Mengaktifkan API
Setelah membuat akun layanan, berikan informasi berikut kepada Account Manager Anda untuk mengaktifkan API untuk akun Anda:
- Alamat email Akun Google Cloud Anda
- Akun layanan Anda
- Kode Jaringan Jaringan Google Ad Manager Anda.
Setelah API diaktifkan oleh Account Manager Anda, selesaikan langkah-langkah berikut untuk mengaktifkan API:
- Di library Google API, telusuri “Google Ad Manager Video API”.
- Klik ENABLE.
Catatan: Jika API tidak muncul di hasil penelusuran, hubungi Account Manager Anda untuk mengonfirmasi bahwa akun Anda telah diaktifkan untuk DAI API.
Menggunakan API
Anda dapat memanggil EABN API menggunakan permintaan JSON/REST.
Otorisasi
Untuk melakukan panggilan yang diotorisasi ke EABN API, Anda harus membuat kredensial akun layanan OAuth2 menggunakan kunci JSON dari akun layanan dan cakupan https://www.googleapis.com/auth/video-ads
. Untuk informasi selengkapnya, lihat Menggunakan OAuth 2.0 untuk Aplikasi Server ke Server.
Anda harus menyertakan token otorisasi yang dihasilkan sebagai header Auth untuk setiap panggilan ke EABN API.
Untuk mengirim notifikasi jeda iklan awal, kirim permintaan POST ke salah satu dari tiga URL EABN yang valid, bergantung pada cara Anda menentukan live stream. Bagian berikut menjelaskan perbedaan antara URL dan memberikan contoh permintaan dan respons.
URL
Ada tiga URL yang valid untuk notifikasi jeda iklan awal. Anda dapat menggunakan ketiga jenis tersebut untuk membuat jeda iklan (POST
) atau mendapatkan daftar jeda iklan yang ditetapkan (GET
).
Untuk menggunakan kunci aset live stream, gunakan:
POST admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
GET admanagervideo.googleapis.com/v1/networks/{network_code}/assets/{asset_key}/adBreaks
Untuk menggunakan kunci aset kustom live stream, gunakan:
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
Untuk menggunakan pendekatan ID Sumber Konten dan Content ID, gunakan:
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
Untuk semua parameter:
network_code
mewakili kode jaringan jaringan Google Ad Manager Anda.
asset_key
mewakili kunci aset yang ditampilkan di halaman detail live stream Anda.
custom_asset_key
mewakili kunci aset kustom live stream Anda.
content_source_id
mewakili ID sumber konten di Google Ad Manager.
content_id
mewakili ID potongan konten di Google Ad Manager.
Catatan: Pasangan content_source_id
/content_id
yang ditentukan harus dikaitkan dengan live stream di Google Ad Manager.
Isi permintaan - hanya digunakan untuk membuat Jeda Iklan (POST)
Objek |
expectedDuration
| Wajib | Durasi jeda iklan ini, menggunakan format durasi standar Google (xx.xxxs dengan xx.xxx adalah jumlah detik) |
customParams
| Opsional | Pasangan nilai kunci yang akan disertakan dalam permintaan iklan untuk jeda ini bagi penargetan kriteria kustom di AM360, dipisahkan oleh
=
dan bergabung dengan
&
. Contoh:
key=value&key2=value2,value3
Untuk informasi selengkapnya tentang penargetan, lihat Menyediakan parameter penargetan ke streaming Anda.
|
podTemplateName
| Opsional | Nama template pod iklan |
scte35CueOut
| Opsional | Data yang dienkode base-64 dari cue out scte35. Dapat mencakup
splice_insert()
atau
time_signal()
perintah. Contoh: |
Contoh permintaan
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"
}
Isi respons
Isi respons berisi semua parameter yang dikirim dalam objek adBreak
, serta kolom name
tambahan, yang berisi ID standar seluruh Google dari jeda iklan yang dibuat. Kolom ini ditampilkan dalam format berikut:
networks/{network_code}/assets/{asset_key}/adBreaks/{ad_break_id}
Contoh respons
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 …
Isi respons
Isi respons berisi jeda iklan dengan kolom breakState
tambahan untuk setiap jeda iklan yang ditetapkan ke streaming. Kolom breakState
mendukung nilai berikut:
// Ad break decisioning has started.
BREAK_STATE_DECISIONED
// Break has started to be delivered to end users.
BREAK_STATE_COMPLETE
Contoh respons
HTTP/1.1 200 OK
{
"name": "networks/.../assets/.../adBreaks/1",
"expectedDuration": "30s",
"breakState": "BREAK_STATE_COMPLETE"
}
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-21 UTC.
[null,null,["Terakhir diperbarui pada 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 }"]]