Reklam kapsülü zamanlama meta verileri içeren reklamlar ekleme

Bu kılavuzda, reklam aralarının tam zamanlamasını ve süresini (yayın öncesi reklamlar dahil) getirmek için reklam kapsülü zamanlama meta verileri (ATM) yöntemi kullanılarak reklam aralarının nasıl ekleneceği açıklanmaktadır.

Videonun ortasında gösterilen reklam aralarından sonra içeriğe dönüşü yönetmek ve videodan önce gösterilen reklamları eklemek için aşağıdaki API'leri çağırmanızı öneririz:

İsteğe bağlı olarak, eşzamanlı izleyici sayısının yüksek olduğu canlı yayın etkinliklerinde, reklam arası başlamadan önce reklam kararlarını planlamak için Erken Reklam Arası Bildirimi (EABN) API'sinin çağrılması önerilir.

Ön koşullar

Başlamak için Kapsül yayınlama yönlendirme Dinamik Reklam Ekleme (DAI) türü için bir canlı yayın etkinliği ayarlamanız gerekir. Aşağıdaki yöntemlerden birini seçin:

İçerik akışını alma

Kullanıcı bir canlı yayın etkinliği seçtiğinde istemci uygulaması Google Ad Manager'a bir yayın isteğinde bulunur. Uygulama, yayın yanıtında Google DAI oturum kimliğini ve meta verileri çıkararak yayın manifesti isteğine ekler.

Aşağıdaki örnekte, bir Google DAI oturum kimliği, manifest değiştiriciye iletilir:

https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY

Video içeriği oynatma isteğini işlerken reklam eklemeye hazırlanmak için Google DAI oturum kimliğini ve CUSTOM_ASSET_KEY isteğinden gelen verileri saklayın.

Reklam kapsülü zamanlama meta verilerini alma

Reklam kapsülü zamanlamasını almak için aşağıdaki adımları uygulayın:

  1. HMAC jetonu oluşturun.
  2. HMAC jetonuyla ATM API'sini çağırın.

Videonun başında gösterilen reklamlar için zamanlama meta verilerini isteyin

Aşağıdaki seçenekleri kullanarak canlı yayın etkinliğinizin videodan önce gösterilen reklam ayarlarını doğrulayın:

Videodan önce gösterilen reklam kararı sonuçlarını almak için ATM API'ye istek gönderin.

Aşağıdaki örnekte, videodan önce gösterilen reklamlar için bir ATM isteği oluşturuluyor:

curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=preroll&auth-token=your_signed_HMAC_token"

Videonun ortasında gösterilen reklamlar için zamanlama meta verilerini isteme

Orta rulo reklamlar için reklam kapsülü meta verilerini almak üzere aşağıdaki adımları uygulayın:

  1. Her bir ara reklam arası için zamanlamayı ve süreyi içeren reklam işaretçilerini bulmak üzere canlı yayın manifestini ayrıştırın.
  2. Tam reklam kapsülü ve slate süresini istemek için ATM API uç noktasını çağırın. API, reklam kapsülünün karar sonuçlarını içeren bir JSON nesnesi döndürür.

Aşağıdaki örnekte, videonun ortasında gösterilen reklamlar için bir ATM isteği oluşturuluyor:

curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=AD_BREAK_ID&pd=AD_BREAK_DURATION&auth-token=your_signed_HMAC_token"

İşlem başarılı olursa aşağıdaki JSON nesnesine benzer bir çıkış görürsünüz:

{
  "status": "final",
  "ads": [
    {
      "duration_ms": 5046,
      "variants": {
        "devrel1428000": {
          "segment_extension": "ts",
          "segment_durations": {
            "timescale": 1000,
            "values": [
              5045
            ]
          }
        },
        "devrel1928000": {
          "segment_extension": "ts",
          "segment_durations": {
            "timescale": 1000,
            "values": [
              5045
            ]
          }
        }
      }
    }
  ],
  "slate": {
    "duration_ms": 0,
    "variants": {
      "devrel1428000": {
        "segment_extension": "ts",
        "segment_durations": {
          "timescale": 1000,
          "values": [
            5005,
            ...
            5046
          ]
        }
      },
      "devrel1928000": {
        "segment_extension": "ts",
        "segment_durations": {
          "timescale": 1000,
          "values": [
            5005,
            ...
            5046
          ]
        }
      }
    }
  }
}

Reklamları içerik manifestine yerleştirme

Aşağıdaki bölümlerde, canlı yayın manifestini nasıl değiştireceğiniz ve reklam segmentlerini nasıl ekleyeceğiniz açıklanmaktadır.

Reklam arası segmentlerini belirleme ve süreksizlikler ekleme

Her varyant manifestini işlerken akışınızdaki EXT-X-CUE-IN ve EXT-X-CUE-OUT etiketlerini belirleyin. Bu etiketler, reklam arası başlangıcını ve bitişini gösterir.

İstemci video oynatıcının içerik ve reklamlar arasında geçiş yapabilmesi için EXT-X-CUE-IN ve EXT-X-CUE-OUT etiketlerini EXT-X-DISCONTINUITY öğeleriyle değiştirin.

Aşağıdaki örnek manifest, EXT-X-CUE-IN ve EXT-X-CUE-OUT etiketlerinin yerine geçer:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:17.450
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXTINF:2.450,
contentorigin.com/6.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Aşağıdaki örnekte değiştirilmiş bir manifest gösterilmektedir:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Google DAI reklam segmentleri şifrelenmez. İçeriğiniz şifrelenmişse her reklam arasının ilk reklam segmentinden önce EXT-X-KEY:METHOD=NONE öğesini ekleyerek şifrelemeyi kaldırın. Reklam arasının sonunda, uygun bir EXT-X-KEY ekleyerek şifrelemeyi geri getirin.

Yaklaşan reklam arasının başlangıç zamanını, süresini ve dizinini takip edin.

Reklam segmenti URL'leri oluşturma

EXT-X-DISCONTINUITY etiketleri arasındaki içerik segmentlerini her reklam segmentinin URL'leriyle değiştirin. Kaç reklam segmenti ekleneceğini belirlemek için ATM API'den gelen JSON yanıtında sağlanan ads.segment_durations.values değerini kullanın.

Reklam kapsülü tamamlanmadan önceki içeriğe dönmek için (ör. EXT-X-CUE-IN etiketi algılandığında) manifest işleyicinizin son reklam segmentinin URL'sine d= parametresini eklemesi gerekir. Bu parametre, istemci video oynatıcısının zaman çizelgesini etkilememek için segmenti kısaltır.

Aşağıdaki örnekte, manifeste videodan önce gösterilen reklam segmenti URL'si eklenmektedir. Reklam segmentlerinin sıfır tabanlı bir dizin kullandığını unutmayın:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/preroll/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

Aşağıdaki örnekte, manifeste bir ara reklam segmenti URL'si eklenmektedir:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

Aşağıdaki örnekte, manifest dosyasına reklam segmentleri eklenmektedir:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXTINF:5.000,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID
#EXTINF:5.000,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/2.ts?stream_id=SESSION_ID
#EXTINF:2.450,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/3.ts?stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Seçenek listesi segmentleri oluşturma

Reklam ile içerik arasındaki boşluğu doldurmak için seçenek listesi segmentleri ekleyin. Her bir slate segmentinin süresini belirlemek için ATM API'sinin JSON yanıtındaki slates.segment_durations.values dizisini kullanın. Tüm reklam arası doldurulana kadar segment süreleri dizisini gerektiği gibi tekrarlayın.

Reklam kapsülü tamamlanmadan önceki içeriğe dönmek için (ör. EXT-X-CUE-IN etiketi algılandığında) son reklam segmentinin URL'sine d= parametresini ekleyin. Bu parametre, istemci video oynatıcısının zaman çizelgesini etkilememek için segmenti kısaltır. d= parametrelerinin değeri, segmenti kısaltmak için milisaniye cinsinden süreyi temsil eden bir tam sayı olmalıdır.

Aşağıdaki örnekte, bir slate segmenti oluşturulmaktadır:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

Örnekteki slate/0, slate yineleme numarasını temsil eder. 0 ile başlayıp bu sayıyı her bir slate döngüsü için artırmanız mı yoksa tüm yinelemeler için 0 olarak tutmanız mı gerektiğini belirlemek üzere istemci video oynatıcınızın uyumluluk ve önbelleğe alma özelliğine bakın.

İçeriğe dönüşü yönetme

Manifest işleyiciniz, reklam kapsülündeki tüm segmentleri ekledikten sonra içerik akışına geri dönmelidir. İçerik akışına geri dönmek için aşağıdaki yöntemlerden birini seçin. Her yöntemde, akış zaman çizelgesinin doğru olması için son bir yeniden hizalama segmenti gerekir.

Doldurma ve yeniden hizalama: Çakışma segmentlerini yerleştirin ve çakışmayı döngüye alın. Süreyi doldurun ve her bir çekim yinelemesi arasına EXT-X-DISCONTINUITY öğelerini ekleyin. Son segment için, içeriğin başlangıcıyla eşleşecek şekilde d= parametresini milisaniye cinsinden ekleyin.

Anında Geri Dönüş: d= parametresini kullanarak tek bir yeniden hizalama slate segmenti ekleyin ve içeriğe devam edin.

Video oynatıcı, zaman çizelgesi değiştirilmeden içeriğe geri döner.

Aşağıdaki örnekte, reklam arası süresinin kalan kısmı seçenek listesi segmentleriyle doldurularak geçiş oluşturulur.

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXTINF:5.000,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID
#EXTINF:5.000,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:2.450,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID&d=2450
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Bu yöntemde, manifest işleyiciniz gerektiğinde slate'i döngüye alır ve d= URL parametresini yalnızca son slate segmentine ekler. Bu süreç, temel içeriğin planlanan başlangıcıyla tam olarak aynı zamana denk gelir.

Aşağıdaki örnekte, kalan aranın tamamını döngüye alınmış slate'lerle doldurmadığınızda oynatıcı zaman çizelgesinin doğru kalmasına yardımcı olmak için d= parametresiyle tek bir slate segmentinin nasıl kullanılacağı gösterilmektedir.

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXTINF:5.000,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID
#EXTINF:5.000,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/2.ts?stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:2.450,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID&d=2450
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

İsteğe bağlı: Reklam arası planlama

Doldurma oranınızı artırmak için reklam kapsülü süresi, özel hedefleme parametreleri ve SCTE-35 sinyal verileriyle birlikte Erken Reklam Arası Bildirimi (EABN) gönderin. Daha fazla bilgi için Erken reklam arası bildirimleri gönderme başlıklı makaleyi inceleyin.