Google DAI Kapsül Yayınlama API'si, kontrol edebilirsiniz.
Bu kılavuzda, Kapsül Yayınlama API'si ile nasıl etkileşimde bulunacağınız ve IMA DAI SDK'sı ile benzer işlevlere sahiptir. Yeşil Ofis web sitesinde Google hesap yöneticinizle iletişime geçin.
Kapsül Yayınlama API'si, HLS veya MPEG-DASH'de kapsül sunma akışlarını destekler akış protokolleri. Bu kılavuzda, HLS akışlarına odaklanılmakta ve HLS ve MPEG-DASH arasındaki farklar.
Kapsül Yayınlama API'sini VOD akışlarına yönelik uygulamanıza entegre etmek için şu adımları uygulayın:
DAI Kapsül Yayınlama API'sine akış kaydı isteğinde bulunma
Akış kaydı uç noktasına bir POST isteği gönderin. Bunun karşılığında size Manifest işlemenize gönderilecek akış kimliğini içeren JSON yanıtı sunucusu ve ilişkili Kapsül Yayınlama API'si uç noktaları.
API uç noktası
POST: /ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset}/stream
Host: dai.google.com
Content-Type: application/x-www-form-urlencoded
Yol parametreleri
{network_code} |
Google Ad Manager 360 ağ kodunuz |
{custom_asset} |
Google Ad Manager'da bu etkinlikle ilişkili özel tanımlayıcı. |
Form kodlu gövde parametreleri
Form kodlu isteğe bağlı hedefleme parametreleri ziyaret edin.
Yanıt JSON
media_verification_url |
Oynatma izleme etkinliklerini pingleyen temel URL. Eksiksiz bir medya doğrulaması URL, bu temel URL'ye bir reklam etkinliği kimliği eklenerek oluşturulur. |
metadata_url |
Reklam kapsülü meta verilerini istenecek URL. |
stream_id |
Geçerli akış oturumunu tanımlamak için kullanılan dize. |
valid_for |
Mevcut akış oturumunun süresinin dolmasına kalan süre (önceki değerde)
dhms (gün, saat, dakika, saniye) biçimindedir. Örneğin,
2h0m0.000s , 2 saatlik bir süreyi temsil eder.
|
valid_until |
ISO 8601 uyarınca geçerli akış oturumunun sona erdiği zaman
yyyy-MM-dd'T'hh:mm:ss.sssssssss[+|-]hh:mm konumundaki tarih ve saat dizesi
biçimindedir.
|
Örnek istek (cURL)
curl -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "cust_params=\"section%3Dsports%26page%3Dgolf%2Ctennis\"" \
https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/ext-doc-ps-redirect-hls/stream
Örnek yanıt
{
"stream_id":"9fe8fe4f-f12e-4fed-b509-0ca269bb1668:TUL",
"media_verification_url":"https://dai.google.com/.../media/",
"metadata_url":"https://dai.google.com/.../metadata",
"session_update_url":"https://dai.google.com/.../session",
"polling_frequency":10
}
Hata olması durumunda, standart HTTP hata kodları JSON yanıtı olmadan döndürülür gövde.
JSON yanıtını ayrıştırın ve ilgili değerleri depolayın.
Manifest düzenleyiciden akış manifestini isteme
Her manifest düzenleyicinin farklı bir istek ve yanıt biçimi vardır. İletişim manipülatör sağlayıcınızla paylaşın. Eğer manifesto oluşturucunuzu uygulamak için manifest düzenleyiciyi okuyun rehberimizi bu bileşene ait gereksinimleri karşılayın.
Genel olarak, oluşturmak için manifest manipülatörünüze yönlendiren bir kayıt uç noktası oluşturun. oturuma özgü manifest'ler oluşturun. Manifest'inizde açıkça belirtilmediği sürece manifesto isteğinize yanıt olarak aşağıdakileri içeren bir video akışı bulunur: hem içerik hem de reklamlar.
Örnek istek (cURL)
curl https://{manifest_manipulator}/video/1331997/stream/6e69425c-0ac5-43ef-b070-c5143ba68541:CHS/vod_manifest.m3u8
Örnek yanıt (HLS)
#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs0",LANGUAGE="en",NAME="English",AUTOSELECT=YES,DEFAULT=YES,URI="abcd1234_ subitles-en.vtt"
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
abcd1234_video-1080p.m3u8
Akışı oynat
Manifest manipülasyon sunucusundan aldığınız manifest dosyasını video oynatıcıya gidip oynatmayı başlatın.
Yeni AdBreak meta verileri için anket
Uygulama her reklam arası için meta verileri almaktan sorumludur; dolayısıyla,
hangi gösterimlerin tetiklenmesi gerektiğini bilir. Bunu başarmak için,
hedeflerinizi
yeni reklam için DAI API'lerini metadata_url
düzenli olarak yoklayan zamanlayıcı
ekleyebilirsiniz. Yoklama aralığı polling_frequency
ile belirtilir
alanına girin.
Karşılık olarak aşağıdaki parametreleri içeren bir JSON nesnesi alırsınız:
tags |
Gösterilen tüm reklam etkinliklerini içeren anahtar/değer çiftleri kümesi
akış şeklinde gösterilir. Anahtarlar bir reklam etkinliğinin ilk 17 karakteridir
Akışın zamanlı meta verilerinde veya etkinlikler söz konusu olduğunda görünen kimlik
progress türünde tam reklam etkinliği kimliği.
Her değer, aşağıdaki parametreleri içeren bir nesnedir:
|
||||||||||||||||||
ads |
Akışta görünen tüm reklamları açıklayan bir anahtar/değer çiftleri kümesi. İlgili içeriği oluşturmak için kullanılan
anahtarları, tags nesnesinde bulunan değerlerle eşleşen reklam kimlikleridir
listelenenler gibi. Her değer, aşağıdaki parametreleri içeren bir nesnedir:
|
||||||||||||||||||
ad_breaks |
Akışta görünen tüm reklam aralarını açıklayan bir anahtar/değer çiftleri grubu.
Anahtarlar, tags içinde bulunan değerlerle eşleşen reklam arası kimlikleridir
ve yukarıda ads nesne listelenir. Her değer bir nesnedir
şunları içerir:
|
Zamanlanmış meta veri etkinliklerini video akışınıza gitmiş olursunuz.
Örnek istek (cURL)
curl https://dai.google.com/.../metadata
Örnek yanıt
{
"tags":{
"google_5555555555":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"firstquartile"
},
"google_1234567890123456789":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"progress"
},
...
},
"ads":{
"0000229834_ad1":{
"ad_break_id":"0000229834",
"position":1,
"duration":15,
"clickthrough_url":"https://.../",
...
},
...
},
"ad_breaks":{
"0000229834":{
"type":"mid",
"duration":15,
"ads":1
},
...
}
}
Reklam etkinliklerini dinleme
Ses/video akışında tetiklenen reklam etkinlikleri aracılığıyla süreli meta verileri dinleme video oynatıcınızın resmidir.
MPEG-TS akışlarında meta veriler bant içi ID3 v2.3 etiketleri olarak görünür. Her biri
meta veri etiketi TXXX
kimliğine sahiptir ve değer google_
dizesiyle başlar
ve ardından bir dizi karakter gelir. Bu değer, reklam etkinliği kimliğidir.
TXXX
içindeki XXX
bir yer tutucu değil. TXXX
dizesi, ID3 etiket kimliğidir
"kullanıcı tanımlı metin" için ayrıldı.
Örnek ID3 etiketi
TXXXgoogle_1234567890123456789
MP4 akışlarında bunlar ID3 v2.3'ü emüle eden bant içi e-posta etkinlikleri olarak gönderilir.
etiketleri arasında yer alır. Alakalı her e-posta kutusunda scheme_id_uri
değeri vardır:
https://aomedia.org/emsg/ID3
veya
https://developer.apple.com/streaming/emsg-id3
ve bir message_data
değeri
ID3TXXXgoogle_
ile başlıyor. Bu message_data
değeri,
ID3TXXX
öneki, reklam etkinliği kimliğidir.
Örnek e-posta kutusu
Veri yapısı, medya oynatıcı kitaplığınıza bağlı olarak değişiklik gösterebilir.
Reklam etkinliği kimliği google_1234567890123456789
ise yanıt şöyle görünür:
bu:
{
"scheme_id_uri": "https://developer.apple.com/streaming/emsg-id3",
"presentation_time": 27554,
"timescale": 1000,
"message_data": "ID3TXXXgoogle_1234567890123456789",
...
}
Bazı medya oynatıcı kitaplıkları, ID3'e öykünen e-posta etkinliklerini otomatik olarak sunar etiketleri yerel ID3 etiketleri olarak kabul eder. Bu durumda, MP4 akışları aynı ID3 etiketlerini sunar olarak desteklenmektedir.
İstemci video oynatıcı uygulamasının kullanıcı arayüzünü güncelleme
Her reklam etkinliği kimliği, 4. adımdaki tags
nesnesindeki bir anahtarla eşleştirilebilir.
Bu değerleri eşleştirmek iki adımlı bir işlemdir:
Tam reklam etkinliği kimliğiyle eşleşen anahtar için
tags
nesnesini kontrol edin. Eğer eşleşme bulunursa etkinlik türünü ve ilişkiliad
vead_break
nesne. Bu etkinliklerin türüprogress
olmalıdır.Tam reklam etkinliği kimliği için eşleşme bulunamazsa
tags
özelliğini kontrol edin. reklam etkinliği kimliğinin ilk 17 karakteriyle eşleşen bir anahtarın nesnesidir. Etkinlik türünü ve ilişkiliad
ilead_break
nesnelerini alın. Bu,progress
dışındaki türlere sahip tüm etkinlikleri almalıdır.Oynatıcınızın kullanıcı arayüzünü güncellemek için alınan bu bilgileri kullanın. Örneğin, Bir
start
veya ilkprogress
etkinliği aldığınızda oyuncunuzun konumunu gizleyin kontrol eder ve geçerli reklamın reklamdaki konumunu açıklayan bir yer paylaşımı görüntüler ara, örneğin: "Reklam 1/3".
Örnek reklam etkinliği kimlikleri
google_1234567890123456789 // Progress event ID
google_5555555555123456789 // First Quartile event ID
Örnek etiketler nesnesi
{
"google_5555555555":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"firstquartile"
},
"google_1234567890123456789":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"progress"
},
...
}
Medya doğrulama ping'leri gönder
Her reklam etkinliğinde Ad Manager'a bir medya doğrulama ping'i gönderilmelidir
progress
dışında bir türe sahip URL'ler alındığında.
Bir reklam etkinliğinin tam medya doğrulama URL'sini oluşturmak için
reklam etkinliği kimliğinin, akış kaydındaki media_verification_url
değerine
tıklayın.
Tam URL ile bir GET isteğinde bulunun. Doğrulama isteği
başarılı olursa 202
durum kodunu içeren bir HTTP yanıtı alırsınız.
Aksi takdirde HTTP hata kodunu 404
alırsınız.
Örnek istek (cURL)
curl https://{...}/media/google_5555555555123456789
Örnek başarılı yanıt
HTTP/1.1 202 Accepted