Dengan menggunakan Video Stitcher API, Anda membuat sesi video on demand (VOD) setiap kali menyisipkan iklan yang ditayangkan oleh Google Ad Manager secara dinamis sebelum dikirim ke perangkat klien. Saat Anda membuat sesi, responsnya akan menyertakan URL pemutaran dan informasi tentang iklan yang Anda sisipkan ke dalam video.
Halaman ini menjelaskan cara membuat dan mengelola sesi VOD yang diaktifkan oleh Google Ad Manager. Untuk informasi tentang sesi VOD yang tidak menggunakan Google Ad Manager, lihat Mengelola sesi VOD.
Sebelum memulai
- Buat konfigurasi VOD. Untuk integrasi dengan Google Ad Manager, pastikan objek
gamVodConfig
ditetapkan.
Membuat sesi
Anda dapat membuat sesi VOD menggunakan IMA SDK (yang memanggil Video Stitcher API) atau menggunakan Video Stitcher API secara langsung.
Menggunakan IMA SDK
Jika Anda berintegrasi dengan IMA SDK, IMA SDK akan membuat sesi VOD.
function requestVodVideoStitcherStream() { const streamRequest = new google.ima.dai.api.VideoStitcherVodStreamRequest(); streamRequest.vodConfigId = 'VOD_CONFIG_ID'; streamRequest.region = 'LOCATION'; streamRequest.projectNumber = 'PROJECT_NUMBER'; streamRequest.oAuthToken = 'OAUTH_TOKEN'; streamRequest.networkCode = 'NETWORK_CODE'; streamManager.requestStream(streamRequest); }
Sesi VOD yang diaktifkan oleh Google Ad Manager harus menggunakan pelacakan iklan sisi klien.
Anda dapat menetapkan atau mengganti parameter opsional berikut per sesi:
manifestOptions
: menentukan render video yang dibuat dalam manifes video yang digabungkan dan urutan render; lihat dokumentasi opsi manifesadTagMacroMap
: daftar pasangan nilai kunci untuk penggantian makro tag iklan; lihat bagian makro tag iklan
Lihat bagian berikutnya untuk mempelajari cara menetapkan parameter ini menggunakan IMA SDK.
Parameter dan penggantian opsional
function requestVodVideoStitcherStream() { const streamRequest = new google.ima.dai.api.VideoStitcherVodStreamRequest(); streamRequest.vodConfigId = 'VOD_CONFIG_ID'; streamRequest.region = 'LOCATION'; streamRequest.projectNumber = 'PROJECT_NUMBER'; streamRequest.oAuthToken = 'OAUTH_TOKEN'; streamRequest.networkCode = 'NETWORK_CODE'; streamRequest.videoStitcherSessionOptions = { manifestOptions: { "includeRenditions": [ { "bitrateBps": 150000, "codecs": "hvc1.1.4.L126.B0" }, { "bitrateBps": 440000, "codecs": "hvc1.1.4.L126.B0" }, ], "bitrateOrder": "descending", }, "adTagMacroMap": { "my-key": "my-value" } }; streamManager.requestStream(streamRequest); }
Menggunakan API secara langsung
Untuk membuat sesi untuk video yang digabungkan dengan iklan, gunakan
metode projects.locations.vodSessions.create
.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor project Google Cloud Anda yang berada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat membuat sesi; gunakan salah satu region yang didukungMenampilkan lokasius-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
VOD_CONFIG_ID
: ID yang ditentukan pengguna untuk konfigurasi VOD
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/SESSION_ID", "interstitials": { "sessionContent": { "duration": "60s" } }, "playUri": "PLAY_URI", # This is the ad-stitched VOD URI "sourceUri": "VOD_URI", "adTagUri": "AD_TAG_URI", "assetId": "ASSET_ID", "adTracking": "SERVER", "vodConfig": "projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID" }
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Video Stitcher API menghasilkan ID sesi unik untuk setiap permintaan. Masa berlaku sesi akan berakhir setelah 4 jam.
Responsnya sekarang akan mirip dengan berikut ini:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/SESSION_ID", "interstitials": { "adBreaks": [ { "progressEvents": [ { "timeOffset": "0s", "events": [ { "type": "IMPRESSION", "uri": "https://securepubads.g.doubleclick.net/pcs/view..." }, { "type": "START", "uri": "https://pubads.g.doubleclick.net/pagead/interaction/..." }, ... ] }, ... ], "ads": [ { "duration": "10s", "activityEvents": [ { "type": "ERROR", "uri": "https://pubads.g.doubleclick.net/pagead/interaction/..." }, { "type": "CLICK_THROUGH", "uri": "https://pubads.g.doubleclick.net/pcs/click...", "id": "GDFP" }, ... ] } ], "endTimeOffset": "10s", "startTimeOffset": "0s" } ], "sessionContent": { "duration": "70s" } }, "playUri": "PLAY_URI", "sourceUri": "VOD_URI", "adTagUri": "AD_TAG_URI", "assetId": "ASSET_ID", "adTracking": "SERVER", "vodConfig": "projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID" }
Responsnya adalah
objek VodSession
yang berisi kolom berikut:
- Kolom
name
yang menampilkan VOD SESSION_ID. Gunakan ID ini untuk mendapatkan sesi. - Kolom
interstitials
yang berisi metadata tentang iklan yang disisipkan (lihat konsep metadata iklan). - Kolom
playUri
yang menampilkan URL yang digunakan perangkat klien untuk memutar aset video yang dikondisikan.
Jika Anda membuat sesi atas nama perangkat pelanggan, tetapkan parameter berikut menggunakan header HTTP:
Parameter | Header HTTP |
---|---|
CLIENT_IP | x-user-ip |
REFERRER_URL | referer |
USER_AGENT | user-agent |
Anda dapat menambahkan header berikut ke permintaan curl
sebelumnya:
-H "x-user-ip: CLIENT_IP" \ -H "referer: REFERRER_URL" \ -H "user-agent: USER_AGENT" \
Makro tag iklan
Tag iklan dapat berisi makro, yang dapat menghasilkan tag iklan yang berbeda untuk setiap sesi. Makro dilambangkan dengan tanda kurung siku dalam tag iklan, seperti yang diilustrasikan oleh contoh berikut:
AD_TAG_URI¯o=[my-key]
adTagUri
ditentukan dalam konfigurasi VOD.
Untuk mengganti nilai dalam makro tag iklan, berikan pemetaan di
kolom adTagMacroMap
. Misalnya, jika ingin mengganti
makro [my-key]
dengan string my-value
, Anda harus memberikan
hal berikut:
{ ... "adTagMacroMap": { "my-key": "my-value" }, ... }
Saat meminta metadata iklan, Video Stitcher API menggunakan tag iklan berikut:
AD_TAG_URI¯o=my-value
Mendapatkan sesi
Untuk mendapatkan sesi video yang digabungkan dengan iklan, gunakan
metode projects.locations.vodSessions.get
.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor project Google Cloud Anda yang berada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi sesi Anda; gunakan salah satu wilayah yang didukungMenampilkan lokasius-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
SESSION_ID
: ID untuk sesi VOD
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/SESSION_ID", "interstitials": { "adBreaks": [ { "progressEvents": [ { "timeOffset": "0s", "events": [ { "type": "IMPRESSION", "uri": "https://securepubads.g.doubleclick.net/pcs/view..." }, { "type": "START", "uri": "https://pubads.g.doubleclick.net/pagead/interaction/..." }, ... ] }, ... ], "ads": [ { "duration": "10s", "activityEvents": [ { "type": "ERROR", "uri": "https://pubads.g.doubleclick.net/pagead/interaction/..." }, { "type": "CLICK_THROUGH", "uri": "https://pubads.g.doubleclick.net/pcs/click...", "id": "GDFP" }, ... ] } ], "endTimeOffset": "10s", "startTimeOffset": "0s" } ], "sessionContent": { "duration": "70s" } }, "playUri": "PLAY_URI", "sourceUri": "VOD_URI", "adTagUri": "AD_TAG_URI", "assetId": "ASSET_ID", "adTracking": "SERVER", "vodConfig": "projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID" }
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di panduan memulai Video Stitcher API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Video Stitcher API.
Untuk melakukan autentikasi ke Video Stitcher API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh playlist yang digabungkan dengan iklan
Berikut adalah contoh playlist VOD sumber sebelum penyambungan iklan:
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:4
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:6.000,
segment_01.ts
#EXTINF:6.000,
segment_02.ts
#EXTINF:6.000,
segment_03.ts
#EXTINF:6.000,
segment_04.ts
#EXTINF:6.000,
segment_05.ts
#EXTINF:6.000,
segment_06.ts
#EXT-X-ENDLIST
Berikut adalah contoh playlist VOD sumber setelah penyambungan iklan dengan iklan pre-roll, mid-roll, dan post-roll:
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:6
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-DISCONTINUITY
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:1.990,
https://redirector.googlevideo.com/videoplayback/...
#EXT-X-DISCONTINUITY
#EXTINF:6.000,
segment_01.ts
#EXTINF:6.000,
segment_02.ts
#EXT-X-DISCONTINUITY
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:0.990,
https://redirector.googlevideo.com/videoplayback/...
#EXT-X-DISCONTINUITY
#EXTINF:6.000,
segment_03.ts
#EXTINF:6.000,
segment_04.ts
#EXTINF:6.000,
segment_05.ts
#EXTINF:6.000,
segment_06.ts
#EXT-X-DISCONTINUITY
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:1.990,
https://redirector.googlevideo.com/videoplayback/...
#EXT-X-ENDLIST
Menangani pelacakan iklan sisi klien
IMA SDK akan otomatis menangani pelacakan iklan sisi klien.
Memeriksa sesi VOD yang diaktifkan oleh Google Ad Manager
Untuk memeriksa sesi VOD dan detail tag iklan untuk sesi ini, gunakan Pemantauan aktivitas streaming di Ad Manager.