Dinamik Reklam Ekleme VOD API'si

Dinamik Reklam Ekleme API'si, DAI seç-izle video akışlarını istemenize ve izlemenize olanak tanır. HLS ve DASH akışları desteklenir.

Hizmet: dai.google.com

stream yönteminin yolu, https://dai.google.com ile ilgilidir.

Yöntem: stream

Yöntemler
stream POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream

Belirtilen içerik kaynağı ve video kimliği için bir HLS DAI akışı oluşturur.

POST /ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

Belirtilen içerik kaynağı ve video kimliği için bir DASH DAI akışı oluşturur.

HTTP isteği

POST https://dai.google.com/ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream

POST https://dai.google.com/ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

İstek başlığı

Parametreler
api‑key string

Akış oluşturulurken sağlanan API anahtarı, yayıncının ağı için geçerli olmalıdır.

API anahtarı, istek gövdesinde sağlanmak yerine aşağıdaki biçimde HTTP Yetkilendirme üstbilgisinde iletilebilir:

Authorization: DCLKDAI key="<api-key>"

Yol parametreleri

Parametreler
content-source string

Akışın içerik yönetim sistemi kimliği.

video-id string

Akışın video kimliği.

İstek metni

İstek gövdesi application/x-www-form-urlencoded türündedir ve aşağıdaki parametreleri içerir:

Parametreler
dai-ssb İsteğe bağlı

Sunucu tarafı işaret akışı oluşturmak için true olarak ayarlayın. Varsayılan olarak false değerine ayarlanır. Varsayılan akışın izlemesi istemci tarafından başlatılır ve sunucu tarafında pinglenir.

DFP Hedefleme Parametreleri İsteğe bağlı Ek hedefleme parametreleri.
Akış parametrelerini geçersiz kılma İsteğe bağlı Akış oluşturma parametresinin varsayılan değerlerini geçersiz kılma.
HMAC Kimlik Doğrulaması İsteğe bağlı HMAC tabanlı bir jeton kullanarak kimlik doğrulama.

Yanıt metni

Başarılı olursa yanıt gövdesi yeni bir Stream içerir. Sunucu tarafı sinyal gönderimi yapılan yayınlarda bu Stream yalnızca stream_id ve stream_manifest alanlarını içerir.

Open Measurement

Verifications alanı, sunucu tarafı işaretçisi kullanılmayan yayınlar için Open Measurement doğrulamasıyla ilgili bilgileri içerir. Verifications, reklam öğesi oynatmayı üçüncü taraf ölçüm koduyla doğrulamanız için gereken kaynakları ve meta verileri listeleyen bir veya daha fazla Verification öğesi içerir. Yalnızca JavaScriptResource desteklenir. Daha fazla bilgi için IAB Tech Lab ve VAST 4.1 spesifikasyonunu inceleyin.

Yöntem: medya doğrulaması

Oynatma sırasında bir reklam medyası tanımlayıcısıyla karşılaştıktan sonra hemen stream uç noktasından media_verification_url kullanarak bir istekte bulunun. media_verification_url mutlak bir yoldur. Sunucunun medya doğrulaması başlattığı sunucu tarafı sinyal akışlarında medya doğrulama istekleri gerekli değildir.

media verification uç noktasına yapılan istekler idempotent'tır.

Yöntemler
media verification GET {media_verification_url}/{ad_media_id}

API'yi bir medya doğrulama etkinliği hakkında bilgilendirir.

HTTP isteği

GET {media-verification-url}/{ad-media-id}

Yanıt metni

media verification aşağıdaki yanıtları döndürür:

  • HTTP/1.1 204 No Content Medya doğrulaması başarılı olursa ve tüm ping'ler gönderilirse
  • HTTP/1.1 404 Not Found İstek, yanlış URL biçimlendirmesi veya sürenin dolması nedeniyle medyayı doğrulayamıyorsa.
  • Bu kimlik için önceki bir doğrulama isteği başarılı olduysa HTTP/1.1 404 Not Found
  • HTTP/1.1 409 Conflict Şu anda başka bir istek zaten ping gönderiyorsa

Reklam medyası kimlikleri (HLS)

Reklam medyası tanımlayıcıları, "kullanıcı tanımlı metin bilgisi" çerçeveleri için ayrılmış olan TXXX anahtarı kullanılarak HLS Zamanlanmış Meta Verileri'nde kodlanır. Çerçevenin içeriği şifrelenmemiş olur ve her zaman "google_" metniyle başlar.

Çerçevenin tüm metin içeriği, her reklam doğrulama isteği için media_verification_url'ye eklenmelidir.

Reklam medyası kimlikleri (DASH)

Reklam medyası tanımlayıcıları, DASH'in EventStream öğesi kullanılarak manifeste eklenir.

Her EventStream, urn:google:dai:2018 şema kimliği URI'sine sahip olur. Bu etkinlikler, messageData özelliğinde "google_" ile başlayan bir reklam medyası kimliği içerir. messageData özelliğinin tüm içeriği, her reklam doğrulama isteği için media_verification_url'ye eklenmelidir.

Yanıt verileri

Akış

Stream, yeni oluşturulan bir akışla ilgili tüm kaynakların listesini JSON biçiminde oluşturmak için kullanılır .
JSON gösterimi
{
  "stream_id": string,
  "total_duration": number,
  "content_duration": number,
  "valid_for": string,
  "valid_until": string,
  "subtitles": [object(Subtitle)],
  "hls_master_playlist": string,
  "stream_manifest": string,
  "media_verification_url": string,
  "apple_tv": object(AppleTV),
  "ad_breaks": [object(AdBreak)],
}
Alanlar
stream_id string

Akış tanımlayıcısı.
total_duration number

Saniye cinsinden yayın süresi.
content_duration number

Reklamlar olmadan içeriğin süresi (saniye).
valid_for string

Süre akışı, "00h00m00s" biçiminde geçerlidir.
valid_until string

Akışın geçerli olduğu tarih (RFC 3339 biçiminde).
subtitles [object(Subtitle)]

Altyazı listesi. Boşsa atlanır. Yalnızca HLS.
hls_master_playlist string

(KULLANIMDAN KALDIRILDI) HLS ana oynatma listesi URL'si. stream_manifest'i kullanın. Yalnızca HLS.
stream_manifest string

Akışın manifest dosyası. HLS'deki ana oynatma listesine ve DASH'teki MPD'ye karşılık gelir. Bu alan, sunucu tarafı işaretçi akışı oluşturulurken yanıtta bulunan "stream_id" dışındaki tek alandır.
media_verification_url string

Medya doğrulama URL'si.
apple_tv object(AppleTV)

Apple TV cihazlarına özel isteğe bağlı bilgiler. Yalnızca HLS.
ad_breaks [object(AdBreak)]

Reklam aralarının listesi. Boşsa atlanır.

AppleTV

AppleTV, Apple TV cihazlarına özgü bilgileri içerir.
JSON gösterimi
{
  "interstitials_url": string,
}
Alanlar
interstitials_url string

Geçiş reklamı URL'si.

AdBreak

AdBreak, akıştaki tek bir reklam arasını tanımlar. Konum, süre, tür (orta/ön/son) ve reklam listesi içerir.
JSON gösterimi
{
  "type": string,
  "start": number,
  "duration": number,
  "ads": [object(Ad)],
}
Alanlar
type string

Geçerli sayfa/sütun sonu türleri şunlardır: mid, pre ve post.
start number

Aranın başladığı yayın konumu (saniye cinsinden).
duration number

Reklam arasının süresi (saniye).
ads [object(Ad)]

Reklam listesi. Boşsa atlanır.
Reklam, akıştaki bir reklamı tanımlar. Reklamın aradaki konumu, reklamın süresi ve bazı isteğe bağlı meta veriler bulunur.
JSON gösterimi
{
  "seq": number,
  "start": number,
  "duration": number,
  "title": string,
  "description": string,
  "advertiser": string,
  "ad_system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
  "clickthrough_url": string,
  "icons": [object(Icon)],
  "wrappers": [object(Wrapper)],
  "events": [object(Event)],
  "verifications": [object(Verification)],
  "universal_ad_id": object(UniversalAdID),
  "companions": [object(Companion)],
  "interactive_file": object(InteractiveFile),
  "skip_metadata": object(SkipMetadata),
  "extensions": [],
}
Alanlar
seq number

Reklamın aradaki konumu.
start number

Reklamın yayında başladığı konum (saniye cinsinden).
duration number

Reklamın süresi (saniye).
title string

Reklamın isteğe bağlı başlığı.
description string

İsteğe bağlı reklam açıklaması.
advertiser string

İsteğe bağlı reklamveren kimliği.
ad_system string

İsteğe bağlı reklam sistemi.
ad_id string

İsteğe bağlı reklam kimliği.
creative_id string

İsteğe bağlı reklam öğesi kimliği.
creative_ad_id string

İsteğe bağlı reklam öğesi reklam kimliği.
deal_id string

İsteğe bağlı anlaşma kimliği.
clickthrough_url string

İsteğe bağlı tıklama URL'si.
icons [object(Icon)]

Boşsa atlanan simge listesi.
wrappers [object(Wrapper)]

Sarmalayıcıların listesi. Boşsa çıkarılır.
events [object(Event)]

Reklamdaki etkinliklerin listesi.
verifications [object(Verification)]

Üçüncü taraf ölçüm kodunu yürütmek için gereken kaynakları ve meta verileri listeleyen, isteğe bağlı Open Measurement doğrulama girişleri. Bu girişler, reklam öğesi oynatmayı doğrulamak için kullanılır.
universal_ad_id object(UniversalAdID)

İsteğe bağlı evrensel reklam kimliği.
companions [object(Companion)]

Bu reklamla birlikte gösterilebilecek isteğe bağlı tamamlayıcılar.
interactive_file object(InteractiveFile)

Reklam oynatma sırasında gösterilmesi gereken isteğe bağlı etkileşimli reklam öğesi (SIMID).
skip_metadata object(SkipMetadata)

Atlanabilir reklamlar için isteğe bağlı meta veriler. Ayarlanırsa bu, reklamın atlanabilir olduğunu gösterir ve atlama kullanıcı arayüzünün ve izleme etkinliğinin nasıl işleneceğiyle ilgili talimatlar içerir.
extensions string

VAST'taki tüm <Extension> düğümlerinin isteğe bağlı listesi.

Etkinlik

Etkinlik, bir etkinlik türü ve etkinliğin sunum zamanını içerir.
JSON gösterimi
{
  "time": number,
  "type": string,
}
Alanlar
time number

Bu etkinliğin sunum zamanı.
type string

Bu etkinliğin türü.

Alt başlık

Subtitle, video akışı için bir sidecar altyazı parçasını tanımlar. TTML ve WebVTT olmak üzere iki altyazı biçimini depolar. TTMLPath özelliği, TTML sidecar dosyasının URL'sini, WebVTTPath özelliği ise WebVTT sidecar dosyasının URL'sini içerir.
JSON gösterimi
{
  "language": string,
  "language_name": string,
  "ttml": string,
  "webvtt": string,
}
Alanlar
language string

"en" veya "de" gibi bir dil kodu.
language_name string

Dilin açıklayıcı adı. Aynı dil için birden fazla altyazı grubu varsa bu grupları birbirinden ayırır.
ttml string

TTML yardımcı dosyasının isteğe bağlı URL'si.
webvtt string

WebVTT yardımcı dosyasının isteğe bağlı URL'si.

SkipMetadata

SkipMetadata, müşterilerin atlanabilir reklamlar için atlama etkinliklerini işlemesi için gereken bilgileri sağlar.
JSON gösterimi
{
  "offset": number,
  "tracking_url": string,
}
Alanlar
offset number

Ofset, oynatıcının atla düğmesini oluşturmak için reklamda kaç saniye beklemesi gerektiğini gösterir. VAST'ta sağlanmamışsa atlanır.
tracking_url string

TrackingURL, atlama etkinliğinde pinglenmesi gereken bir URL içeriyor.

Simge

Simge, VAST simgesiyle ilgili bilgiler içerir.
JSON gösterimi
{
  "click_data": object(ClickData),
  "creative_type": string,
  "click_fallback_images": [object(FallbackImage)],
  "height": int32,
  "width": int32,
  "resource": string,
  "type": string,
  "x_position": string,
  "y_position": string,
  "program": string,
  "alt_text": string,
}
Alanlar
click_data object(ClickData)

creative_type string

click_fallback_images [object(FallbackImage)]

height int32

width int32

resource string

type string

x_position string

y_position string

program string

alt_text string

ClickData

ClickData, bir simge tıklamasıyla ilgili bilgileri içerir.
JSON gösterimi
{
  "url": string,
}
Alanlar
url string

FallbackImage

FallbackImage, bir VAST yedek resmiyle ilgili bilgileri içerir.
JSON gösterimi
{
  "creative_type": string,
  "height": int32,
  "width": int32,
  "resource": string,
  "alt_text": string,
}
Alanlar
creative_type string

height int32

width int32

resource string

alt_text string

Wrapper

Sarmalayıcı, sarmalayıcı reklamla ilgili bilgileri içerir. Mevcut değilse anlaşma kimliği içermez.
JSON gösterimi
{
  "system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
}
Alanlar
system string

Reklam sistemi tanımlayıcısı.
ad_id string

Sarmalayıcı reklam için kullanılan reklam kimliği.
creative_id string

Sarmalayıcı reklam için kullanılan reklam öğesi kimliği.
creative_ad_id string

Sarmalayıcı reklam için kullanılan reklam öğesi reklam kimliği.
deal_id string

Sarmalayıcı reklam için isteğe bağlı anlaşma kimliği.

Doğrulama

Doğrulama, üçüncü taraf görüntülenebilirlik ve doğrulama ölçümünü kolaylaştıran Open Measurement ile ilgili bilgiler içerir. Şu anda yalnızca JavaScript kaynakları desteklenmektedir. https://iabtechlab.com/standards/open-measurement-sdk/ adresine göz atın.
JSON gösterimi
{
  "vendor": string,
  "java_script_resources": [object(JavaScriptResource)],
  "tracking_events": [object(TrackingEvent)],
  "parameters": string,
}
Alanlar
vendor string

Doğrulama tedarikçisi.
java_script_resources [object(JavaScriptResource)]

Doğrulama için JavaScript kaynaklarının listesi.
tracking_events [object(TrackingEvent)]

Doğrulama için izleme etkinliklerinin listesi.
parameters string

Önyükleme doğrulama koduna iletilen opak bir dize.

JavaScriptResource

JavaScriptResource, JavaScript aracılığıyla doğrulama için bilgiler içerir.
JSON gösterimi
{
  "script_url": string,
  "api_framework": string,
  "browser_optional": boolean,
}
Alanlar
script_url string

JavaScript yükü için URI.
api_framework string

APIFramework, doğrulama kodunu kullanan video çerçevesinin adıdır.
browser_optional boolean

Bu komut dosyasının tarayıcı dışında çalıştırılıp çalıştırılamayacağı.

TrackingEvent

TrackingEvent, belirli durumlarda istemci tarafından ping gönderilmesi gereken URL'ler içerir.
JSON gösterimi
{
  "event": string,
  "uri": string,
}
Alanlar
event string

İzleme etkinliğinin türü.
uri string

Ping gönderilecek izleme etkinliği.

UniversalAdID

UniversalAdID, reklam sistemlerinde korunan benzersiz bir reklam öğesi tanımlayıcısı sağlamak için kullanılır.
JSON gösterimi
{
  "id_value": string,
  "id_registry": string,
}
Alanlar
id_value string

Reklam için seçilen reklam öğesinin Evrensel Reklam Kimliği.
id_registry string

Seçilen reklam öğesinin Evrensel Reklam Kimliğinin kataloglandığı kayıt otoritesi web sitesinin url'sini tanımlamak için kullanılan dize.

Tamamlayıcı

Tamamlayıcı, reklamla birlikte görüntülenebilecek tamamlayıcı reklamlarla ilgili bilgileri içerir.
JSON gösterimi
{
  "click_data": object(ClickData),
  "creative_type": string,
  "height": int32,
  "width": int32,
  "resource": string,
  "type": string,
  "ad_slot_id": string,
  "api_framework": string,
  "tracking_events": [object(TrackingEvent)],
}
Alanlar
click_data object(ClickData)

Bu tamamlayıcı reklam öğesinin tıklama verileri.
creative_type string

Bu, statik türde bir tamamlayıcı ise VAST'taki <StaticResource> düğümünde CreativeType özelliği.
height int32

Bu tamamlayıcı öğenin piksel cinsinden yüksekliği.
width int32

Bu tamamlayıcının piksel cinsinden genişliği.
resource string

Statik ve iframe eşlikçiler için bu, yüklenecek ve görüntülenecek URL'dir. HTML tamamlayıcılar için bu, tamamlayıcı olarak gösterilmesi gereken HTML snippet'idir.
type string

Bu tamamlayıcının türü. Statik, iFrame veya HTML olabilir.
ad_slot_id string

Bu eşlik eden öğenin yer kimliği.
api_framework string

Bu tamamlayıcı için API çerçevesi.
tracking_events [object(TrackingEvent)]

Bu eşlikçiyle ilgili izleme etkinliklerinin listesi.

InteractiveFile

InteractiveFile, reklam oynatımı sırasında gösterilmesi gereken etkileşimli reklam öğesi (ör. SIMID) bilgilerini içerir.
JSON gösterimi
{
  "resource": string,
  "type": string,
  "variable_duration": boolean,
  "ad_parameters": string,
}
Alanlar
resource string

Etkileşimli reklam öğesinin URL'si.
type string

Kaynak olarak sağlanan dosyanın MIME türü.
variable_duration boolean

Bu reklam öğesinin sürenin uzatılmasını isteyip istemediği.
ad_parameters string

VAST'taki <AdParameters> düğümünün değeri.