CANLI yayınlar için Dinamik Reklam Ekleme API'si

Google DAI API'si, IMA SDK'nın uygulanmasının desteklenmediği ortamlarda Google DAI özellikli akışları uygulamanıza olanak tanır. IMA SDK'nın desteklendiği platformlarda IMA kullanmaya devam etmenizi öneririz.

DAI API'sini aşağıdaki platformlarda kullanmanızı öneririz:

  • Samsung Akıllı TV (Tizen)
  • LG TV
  • HbbTV
  • Xbox (JavaScript uygulamaları)
  • KaiOS

API, IMA DAI SDK'sı tarafından sağlanan temel özellikleri destekler. Uyumluluk veya desteklenen özelliklerle ilgili belirli sorular için Google hesap yöneticinizle iletişime geçin.

CANLI yayınlar için DAI API'sini uygulama

DAI API'si, hem HLS hem de DASH protokollerini kullanan doğrusal (CANLI) akışları destekler. Bu kılavuzda açıklanan adımlar her iki protokol için de geçerlidir.

API'yi CANLI yayınlar için uygulamanıza entegre etmek için aşağıdaki adımları tamamlayın:

1. Akış isteğinde bulunma

DAI API'sinden canlı yayın isteğinde bulunmak için akış uç noktasına bir POST çağrısı yapın. JSON yanıtı, akış manifestinin yanı sıra ilişkili DAI API uç noktaları ve değerlerini içerir.

Örnek istek gövdesi

https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Örnek yanıt gövdesi

{
"stream_id":"c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session",
"polling_frequency":10
}

Hata yanıtı

Hata olması durumunda standart HTTP hata kodları, JSON yanıt gövdesi olmadan döndürülür.

JSON yanıtını ayrıştırın ve aşağıdaki değerleri depolayın:

stream_id
Bu değer, döndürülen akışı tanımlamak için kullanılabilir.
stream_manifest
Bu URL, akışın oynatılması için medya oynatıcınıza iletilir.
media_verification_url
Bu URL, oynatma etkinliklerini izlemek için temel uç noktadır.
metadata_url
Bu URL, yaklaşan canlı yayın etkinlikleri hakkında düzenli aralıklarla anket yapmak için kullanılır.
session_update_url
Bu URL, ilk akış isteği sırasında gönderilen akış isteği parametrelerini güncellemek için kullanılır. Bu isteğin parametrelerinin, önceki akış için ayarlanan tüm parametreleri değiştirdiğini unutmayın.
polling_frequency
DAI API'den güncellenmiş AdBreak Meta Verileri istenirken saniye cinsinden sıklık.

2. Yeni Reklam Arası Meta Verileri anketi

Meta veri URL'sini kullanarak yeni AdBreak Meta Verilerini yoklama sıklığında yoklamak için zamanlayıcı ayarlayın. Akış yanıtında belirtilmezse varsayılan önerilen aralık 10 saniyedir.

Örnek istek gövdesi

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata

Örnek yanıt gövdesi

{
   "tags":{
      "google_0492266569":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"firstquartile"
      },
      "google_1560331148":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"thirdquartile"
      },
      "google_1877686714378797835":{
         "ad":"0000229836_slate",
         "ad_break_id":"0000229836",
         "type":"progress"
      },
      "google_1vRyQBYPw_7Gg3MrZ6S5EjmV9aLje-YpW8QHed1DSlU":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"progress"
      },
      "google_2032765498":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"midpoint"
      },......
      "google_5646900623":{
         "ad":"0000229837_ad1",
         "ad_break_id":"0000229837",
         "type":"complete"
      }
   },
   "ads":{
      "0000229834_ad1":{
         "ad_break_id":"0000229834",
         "position":1,
         "duration":15.01,
         "title":"truman-e2e-creativeset4",
         "description":"truman-e2e-creativeset4 ad",
         "ad_system":"GDFP",
         "ad_id":"39066884",
         "creative_id":"58092079124",
         "clickthrough_url":"https://pubads.g.doubleclick.net/pcs/click?xai=AKAO...\u0026adurl=http://google.com",
         "universal_ad_id":{
            "id_value":"58092079124",
            "id_registry":"GDFP"
         }
      },
      "0000229834_slate":{
         "ad_break_id":"0000229834",
         "position":-1,
         "duration":14.974977777,
         "slate":true
      },...
   },
   "ad_breaks":{
      "0000229834":{
         "type":"mid",
         "duration":15.01,
         "expected_duration":29.984977776999997,
         "ads":1
      },....
   }
}

3. ID3 etkinliklerini dinleyin ve oynatma etkinliklerini izleyin

Bir video akışında belirli etkinliklerin gerçekleştiğini doğrulamak için ID3 etkinliklerini işlemek üzere şu adımları izleyin:

  1. Medya etkinliklerini sıraya alarak her medya kimliğini zaman damgasıyla (oynatıcı tarafından gösterilirse) kaydedin.
  2. Oynatıcıdan her güncelleme yapıldığında veya belirli bir sıklıkta (500 ms. önerilir) etkinlik zaman damgalarını video yer imleciyle karşılaştırarak son oynatılan etkinlikler için medya etkinlikleri sırasını kontrol edin.
  3. Oynatıldığını onayladığınız medya etkinlikleri için, depolanan reklam arası etiketlerinde medya kimliğini arayarak türü kontrol edin. Depolanan etiketlerin yalnızca medya kimliğinin önekini içerdiğini, bu nedenle tam bir eşleşmenin mümkün olmadığını unutmayın.
  4. Kullanıcının bir reklam arasında olup olmadığını izlemek için "ilerleme" etkinliklerini kullanın. Bu etkinlikleri medya doğrulaması uç noktasına göndermeyin. Diğer etkinlik türleri için medya kimliğini medya doğrulaması uç noktasına ekleyin ve oynatmayı izlemek için GET isteğinde bulunun.
  5. Medya etkinliğini sıradan kaldırın.

Örnek istek gövdesi

https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/

Örnek yanıtlar

Accepted for asynchronous verification - HTTP/1.1 202 Accepted
Successful empty response - HTTP/1.1 204 No Content
Media verification not found - HTTP/1.1 404 Not Found
Media verification sent by someone else - HTTP/1.1 409 Conflict

İzleme etkinliklerini Akış Etkinliği İzleyici'den doğrulayabilirsiniz.

4. Canlı yayın oturumu parametrelerini güncelleme

Bir akış oluşturulduktan sonra oturum parametrelerinizi ayarlamak isteyebilirsiniz. Bunu yapmak için oturum güncelleme URL'sine bir istekte bulunun.

Örnek istek gövdesi

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Örnek yanıt gövdesi

Successful response would be to look for - HTTP/1.1 200

Sınırlamalar

API'yi web görünümlerinde kullanıyorsanız hedefleme için aşağıdaki sınırlamalar geçerlidir:

  • UserAgent: Kullanıcı aracısı parametresi, temel platform yerine tarayıcıya özel değer olarak iletilir.
  • rdid, idtype, is_lat: Cihaz kimliği düzgün şekilde iletilmediği için aşağıdaki özelliklerin işlevleri sınırlanır:
    • Sıklık sınırı
    • Sıralı reklam rotasyonu
    • Kitle segmentasyonu ve hedefleme

En iyi uygulamalar

Canlı yayın dizinleri için meta veri uç noktasının, karşılık gelen ID3 etiketinin önekine dayalı olduğunu unutmayın. Bu, tüm doğrulama düğümlerini anında pinglemek için meta veri uç noktasının kullanılmasını önlemek amacıyla tasarlanmıştır.

Ek kaynaklar