Reklam Araları

Genel Bakış

Web Receiver SDK'sı, reklam araları ve tamamlayıcı reklamlar için yerel destek sunar. belirli bir medya akışı içinde yer alır. Reklam konumunu, reklam kaynağını ve öğeleri ve reklam araları ile ilişkili ara kliplerinin davranışı. Bu kılavuzda, Break bir veya daha fazla reklam ya da bumper içeren bir oynatma aralığını ve her bir reklam veya bumper BreakClip. Bu aralar, yüklenen veya oynatılan medyayla ilişkilidir.

Reklam türleri

Web Receiver SDK, istemci tarafı reklam eklemeyi (CSAI) ve sunucuyu destekler. birleştirilmiş reklam ekleme (SSAI) Müşteri tarafından bir araya getirilmiş reklamlar, veya VAST ve VMAP şablon dosyalarından ayıklanır. Sunucu tarafından birleştirilmiş reklamlar, içerik yüklenmeden önce manuel olarak yerleştirilmiş reklamlar aracılığıyla veya içerik oynatma sırasında dinamik olarak yerleştirilmiş genişletilmiş şekilde reklam. Bu reklam türlerinin her biri için uygulamalar aşağıda ayrıntılı olarak açıklanmıştır.

el ile istemci dikişli

İstemci tarafından eklenmiş manuel reklam arası, birleştirilmiş bir reklam arası türüdür tarafından uygulanır ve uygulama tarafından SDK API'leri Bu reklam türü, ana içeriğin akışına yerleştirilmiş değil. İlgili içeriği oluşturmak için kullanılan BreakClip, contentId Bu, reklam içeriğine yönlendiren bir URL, contentType reklam içeriğinin biçimini ve title

Break özelliği, isEmbedded ve expanded false varsayılan değerine ayarlandı. İlgili içeriği oluşturmak için kullanılan position videodan önce gösterilen reklam, videonun ortasında gösterilen veya videodan sonra gösterilen reklam arası olarak ayarlanabilir (daha fazla bilgi için: ara konumlandırma bölümüne bakın). Proje başlatma belgesini Web Receiver SDK'sı ise yüklemek üzere başka bir oynatıcı örneği oluşturur. ve reklam içeriğini oynatır. Bu aralar için stitched timeline gerekir ve aralar şu şekilde olmalıdır: statik olarak ekleyebilirsiniz (daha fazla bilgi için reklam ekleme bölümüne bakın). Aşağıdaki örnekte, bir reklam kampanyasında müşteri tarafından eklenmiş manuel reklamın uygulanması:

// Create the BreakClip.
let clipClient = new cast.framework.messages.BreakClip('bc_client');
clipClient.title = 'The Ad Title to be displayed during playback';
clipClient.contentId = 'https://example.com/ad.m3u8';
clipClient.contentType = 'application/vnd.apple.mpegurl';

// Optional: Used when HLS ad container formats differ from the main content's.
clipClient.hlsSegmentFormat = cast.framework.messages.HlsSegmentFormat.FMP4;

// Create the Break using the BreakClip id above.
let breakPostrollClient = new cast.framework.messages.Break(
    'break_postroll_client', ['bc_client'], -1);
breakPostrollClient.isEmbedded = false; // Optional: default is false.
breakPostrollClient.expanded = false; // Optional: default is false.

VAST

Web Alıcı SDK'sı, IAB standart VAST (Video Reklam Sunma) eklemeyi destekler Şablon) reklamlar. Bu kod sağlandığında XML şablonu ayrıştırılır ve sonraki istemciyle eklenmiş ara klibini uygular.

VAST reklamı oluşturmak için alıcı uygulamanın bir VastAdsRequest BreakClip içinde belirtmeniz gerekir vastAdsRequest VastAdsRequest nesnesi, adsResponse (a dize gösterimi) veya adTagUrl (URL XML şablonunun barındırıldığı yer) mülkünün tanımlanması. URL belirtilmişse SDK, şablonu getirir. Kapsamlı Break aşağıdakileri takip eder: istemci tarafından oluşturulmuş reklamlar için geçerli olan kurallara bakın. Bu reklamlar, diğer manuel olarak istemci tarafından bir araya getirilmiş reklamlar, ele alacağız. Aşağıdaki örnekte, VAST API'sinin temel bir uygulaması gösterilmektedir reklam:

// Create the VastAdsRequest.
let vastTemplate = new cast.framework.messages.VastAdsRequest();
vastTemplate.adTagUrl = 'https://example.com/ads.xml'

// Create the BreakClip.
let clipVast = new cast.framework.messages.BreakClip('bc_vast');
clipVast.vastAdsRequest = vastTemplate;

// Create the Break using the BreakClip id above.
let breakPostrollVast = new cast.framework.messages.Break(
    'break_postroll_vast', ['bc_vast'], -1);
breakPostrollVast.isEmbedded = false; // Optional: default is false.
breakPostrollVast.expanded = false; // Optional: default is false.

VAST BreakClip içeren bir Break girildiğinde Web Alıcısı SDK, isteğe bağlı olarak şablonu getirir ve ayrıştırır. Ayrıştırma işlemi sırasında SDK, yeni bir BreakClip oluşturur ve bunu contentId, contentType, title, duration ve whenSkippable ve clickThroughUrl. Oluşturulan ara klibinin id değeri: GENERATED:N olarak ayarlanır; burada N, her yeni değer için 1 artan bir tam sayıdır 0 itibarıyla başlayan VAST ara klibi oluşturuldu. Oluşturulan reklam BreakClip dizisidir. Her VAST ara klibinin id'ı geçerli Break içindedir ardından, buna karşılık gelen ara klibinin id'si ile değiştirilir. Snippet'ler son üç aylık dönemdeki değişiklikleri MEDIA_STATUS verilen mesaj sayısını gösterir.

VAST reklamlarına ara girmeden önce Break ve BreakClip bilgileri.

"breaks": [
  {
    "id": "break_postroll_vast",
    "breakClipIds": [
      "bc_vast"
    ],
    "position": 0,
    "isWatched": false
  }
],
"breakClips": [
  {
    "id": "bc_vast"
  }
]

VAST reklamlarına ara girdikten sonra Break ve BreakClip bilgileri.

"breaks": [
  {
    "id": "break_postroll_vast",
    "breakClipIds": [
      "GENERATED:0"
    ],
    "position": 0,
    "isWatched": true
  }
],
"breakClips": [
  {
    "id": "bc_vast"
  },
  {
    "id": "GENERATED:0",
    "contentId": "https://example.com/break-clip-1.mpd",
    "contentType": "application/dash+xml",
    "title": "Ad Title Extracted from Template",
    "duration": 10,
    "whenSkippable": 5,
    "clickThroughUrl": "https://example.com/ad-target"
  }
]

VMAP

Web Alıcı SDK'sı IAB VMAP'yi (Video Çoklu Reklam Oynatma Listeleri) destekler standart. VMAP sağlandığında Web Receiver SDK, VMAP'yi ayrıştırır. herhangi bir <AdBreak> için client-stitched Break nesneleri oluşturma giriş yapmış olursunuz. Ayrıca, şununla uygun BreakClips öğesini de oluşturur: VMAP'de sağlanan her <AdSource> girişi için bir vastAdsRequest nesnesi. Alıcı: içeriğinize reklam eklemek için VMAP'yi etkinleştirdiyseniz, uygulamanın bir VastAdsRequest nesnesini tanımlayın ve bunu vmapAdsRequest öğesinin özelliği MediaInformation LoadRequestData Bu reklamlar statik olarak eklenmelidir (daha fazla bilgi için reklam ekleme bölümü). Aşağıda, oluşturmayı öğreneceksiniz.

// Create the VastAdsRequest.
let vastTemplate = new cast.framework.messages.VastAdsRequest();
vastTemplate.adTagUrl = 'https://example.com/vmap.xml'

// Add it to the MediaInformation of the LoadRequest.
loadRequestData.media.vmapAdsRequest = vastTemplate;

yerleştirilmiş

Yerleşik reklam arası, sunucu tarafında birleştirilmiş bir reklam arası türüdür ana içerik akışına eklenir. Break öğesinin süresi kısaltılır. ana içeriğin süresinden yararlanabilir.

BreakClip, duration ve kaliteyle ilgili title. Break özelliği, isEmbedded true olarak ayarlandı ve expanded false olarak ayarlandı. İlgili içeriği oluşturmak için kullanılan position videodan önce gösterilen reklam veya videonun ortasında gösterilen reklam arası olarak ayarlanabilir. Videodan sonra gösterilen reklam araları: tam olarak pozitif position değerleriyle desteklenir. Şurada daha fazla bilgi bulabilirsiniz: ara konumlandırma bölümüne bakın. Reklamın tetiklenmesi: Web Buyer SDK, reklam segmentleri olarak akışı oynatmaya devam eder yerleşik olarak bulunur. Bu reklam türü için ek bir yükleme mekanizması yoktur. Video yer imleci reklam öğesinin içine yerleştirildikten sonra, alakalı reklam meta verileri ara zaman aralığını seçin. Bu aralar embedded timeline gerektirir ve eklenmelidir statik olarak (Reklam ekleme bölümünde daha fazla bilgi bulabilirsiniz). İlgili içeriği oluşturmak için kullanılan aşağıdaki örnek, bir embedded reklamının temel uygulamasını göstermektedir.

// Create the BreakClip.
let clipEmbedded = new cast.framework.messages.BreakClip('bc_embedded');
clipEmbedded.title = 'The Ad Title to be displayed during playback';
clipEmbedded.duration = 15;

// Create the Break using the BreakClip id above.
let breakPrerollEmbedded = new cast.framework.messages.Break(
    'break_preroll_embedded', ['bc_embedded'], 0);
breakPrerollEmbedded.isEmbedded = true;
breakPrerollEmbedded.expanded = false; // Optional: default is false.

yerleştirilmiş, genişletildi

Yerleştirilmiş genişletilmiş reklam arası, birleştirilmiş sunucudan oluşan bir reklam arası türüdür ana içerik akışına dahil edilir. Break süresi dahildir süresi hesaplanır.

BreakClip, duration ve kaliteyle ilgili title. Break özelliği, isEmbedded true olarak ayarlandı ve expanded true olarak ayarlandı. İlgili içeriği oluşturmak için kullanılan position videodan önce gösterilen reklam veya videonun ortasında gösterilen reklam arası olarak ayarlanabilir. Videodan sonra gösterilen reklam araları: pozitif position değerleriyle desteklenir. Şurada daha fazla bilgi bulabilirsiniz: ara konumlandırma bölümüne bakın. Reklamın tetiklenmesi: Web Buyer SDK, reklam segmentleri olarak akışı oynatmaya devam eder yerleşik olarak bulunur. Bu reklam türü için ek bir yükleme mekanizması yoktur. Video yer imleci reklam öğesinin içine yerleştirildikten sonra, alakalı reklam meta verileri ara zaman aralığını seçin. Bu aralar için embedded timeline gerekir ve aralar eklenebilir. statik veya dinamik olarak (daha fazla bilgi için reklam ekleme bölümüne bakın). Aşağıdaki örnekte, bir reklam kampanyasında embedded expanded reklamı uygulanması:

// Create the BreakClip.
let clipEmbeddedExpanded =
    new cast.framework.messages.BreakClip('bc_embedded_expanded');
clipEmbeddedExpanded.title = 'The Ad Title to be displayed during playback';
clipEmbeddedExpanded.duration = 15;

// Create the Break using the BreakClip id above.
let breakPrerollEmbeddedExpanded = new cast.framework.messages.Break(
    'break_preroll_embedded_expanded', ['bc_embedded_expanded'], 0);
breakPrerollEmbeddedExpanded.isEmbedded = true;
breakPrerollEmbeddedExpanded.expanded = true;

Oynatıcı zaman çizelgesi türleri

Web Retriever SDK'sı oynatıcı örneği oluştururken bir zaman çizelgesi türü seçer: içerik oynatma sırasında reklam oynatmayı destekler. Her zaman çizelgesi, belirli bir reklamın ara türünü de seçebilirsiniz. Zaman çizelgesi türü, reklam türleri, Search Ads 360'taki yükleme süresinde MediaInformation LoadRequestData. Yerleştirilmiş reklam araları varsa embedded zaman çizelgesi seçilir. Eğer client-stitched reklam araları varsa stitched zaman çizelgesi seçilir. Reklam olmaması durumunda SDK varsayılan olarak embedded kullanır. önceliklendirebilirsiniz. Zaman çizelgesi seçildikten sonra, şu anki medya öğesi. Aşağıdaki tabloda her bir zaman çizelgesinin ayrıntılı bir açıklaması bulunmaktadır.

Zaman Çizelgesi Türü Açıklama
yerleştirilmiş zaman çizelgesi Reklamları destekleyen medya zamanının temsili Bunlar ana içeriğe gömülü olarak (yerleştirilmiş ve yerleştirilmiş genişletilmiş reklam araları). Genişletilmemiş reklam arası mevcut olduğunda süre toplamının toplam süresinden içerik. Öte yandan, genişletilmiş bir reklam bir ara varsa o aranın zamanı ana içeriğin bir kısmını görebilirsiniz.
birleştirilmiş zaman çizelgesi Reklamları destekleyen medya zamanının temsili harici medya dosyalarından edinilen (manuel olarak istemci tarafından eklenmiş, VAST ve VMAP reklam araları) kaldırın. Eklendiğinde reklam arasının süresi şu şekilde olur: ana içerik süresinin bir parçası değil.

Aşağıdaki Şekil 1-3'te çeşitli reklam türlerine sahip bazı içerikler ve bunların ilgili zaman çizelgesi değerleri sunar. İçerik, videodan önce gösterilen reklam arasıyla yapılandırılır iki ara klibi ile videonun ortasında gösterilen reklam ve videodan sonra gösterilen reklam araları içeren bir klip oluşturabilirsiniz. İçerik oynatmanın başlangıcından itibaren geçerli olan duvar süresi, ana içeriğin medya zamanı ve aranın şu anki oynatma klibi her bir şeklin altında hizalanır.

Müşteri tarafından bir araya getirilen reklamların zaman çizelgesi
Şekil 1: Bazı içerikleri ve bu içeriklerin istemciyle birleştirilmiş 3 reklam arasını temsil eden zaman çizelgesi.


Sunucu tarafından birleştirilmiş yerleşik reklamların zaman çizelgesi
Şekil 2: Bazı içerikleri ve bu içeriklerin sunucuyla birleştirilmiş 3 reklam arasını temsil eden zaman çizelgesi.


Sunucu tarafından birleştirilmiş genişletilmiş reklamların zaman çizelgesi
Şekil 3: Bazı içerikleri ve bu içeriklerin sunucuyla birleştirilmiş 3 genişletilmiş reklam aralarını temsil eden zaman çizelgesi.

Ara konumlandırma

Web Receiver SDK'sı, geliştiricilerin reklam aralarının nerede olması gerektiğini belirtmesine olanak tanır. değeri ayarlayarak position Break özelliğinin değerleri. Bu değer, ana içeriğin medya süresine karşılık gelir Ayrıca pre-roll, mid-roll ve post-roll reklam arası oluşturmak için kullanılabilir. Bunlar aşağıdaki şekilde tanımlanır:

Ara Konumu Açıklama
videodan önce gösterilen reklam Ana içerikten önce oynatılan bir reklam arası. Bu breakPosition değerinin 0 olarak ayarlanmasıyla gösterilir
videonun ortasında gösterilen reklam İçeriğin ortasında oynatılan bir reklam arası. Bu, şunlarla gösterilir: breakPosition değerini, aranın başlangıç, ana içeriğin başlangıcından daha büyüktür Aranın bitiş zamanı, ana içeriğin bitiş zamanından kısaysa gerekir.
videodan sonra gösterilen reklam Ana içerikten sonra oynatılan bir reklam arası. Bu breakPosition değerinin -1 olarak ayarlanmasıyla gösterilir birleştirilmiş zaman çizelgeleri kullanabilirsiniz. Gömülü için zaman çizelgeleri breakPosition ana içeriğin süresinden devam edebilirsiniz. Canlı içerik için desteklenmez.

Birlikte çalışabilirlik matrisi

Hızlı bir referans noktası olarak Tablo 1'de, reklam türlerine ve reklamlarla ilgili özelliklerle uyumluluklarını

Tablo 1: Ads birlikte çalışabilirlik matrisi
Özellik Desteği müşteri tarafından birleştirilmiş manuel reklam VAST VMAP yerleşik reklam yerleşik genişletilmiş reklam
şununla uyumlu: VAST el ile istemci dikişli Yok yerleştirilmiş, genişletildi yerleştirilmiş
zaman çizelgesi dikişli dikişli dikişli yerleştirilmiş yerleştirilmiş
reklam ekleme statik statik statik statik statik, dinamik
reklam kaldırma
videodan önce gösterilen reklam
videonun ortasında gösterilen reklam
videodan sonra gösterilen reklam
reklam atlama
ara yakalama önleyici
klip yük önleyiciyi kesme

Etkinlikler

Yayın SDK'sı, önemli ara etkinlikleri gerçekleştiğinde şu tür etkinlikleri gönderir: BreaksEvent. Alıcı uygulamalar, PlayerManager kullanarak bunlara abone olabilir addEventListener API'ye gidin.

Bu etkinlikler, analiz ve reklam oynatma takibi için kullanılabilir. VMAP olduğunda (Video Çoklu Reklam Oynatma Listesi) ve VAST (Video Reklam Sunma Şablonu) reklamları, varsa yanıtlarda sağlanan standart izleme etkinlikleri otomatik olarak tarafından gönderilir.

Etkinlik türleri, aşağıdaki ilgili bölümde yer alan ayrıntılı açıklamalarla Tablo 2'de listelenmiştir: empati gösterebilirsiniz.

Döküm Etkinlikleri Yaşam Döngüsü
Şekil 4: Ara etkinlikleri yaşam döngüsü.
Tablo 2: Ara etkinlikleri ve açıklamaları.
Ara Etkinliği Açıklama
BREAK_STARTED Ana içeriğin mevcut medya zamanı İzlenmeyen bir aranın position kadarı.
BREAK_CLIP_LOADING Yalnızca birleştirilmiş zaman çizelgesi ara klibi yüklenmeye başladığında tetiklenir.
BREAK_CLIP_STARTED Ara klibi oynatılmaya başladığında tetiklenir.
BREAK_CLIP_ENDED Ara klibi sona erdiğinde tetiklenir. İlgili içeriği oluşturmak için kullanılan endedReason alanı aşağıdaki durumlarda doldurulacaktır:
  • Tamamıyla oynatılan, birleştirilmiş bir zaman çizelgesi ara klibi.
  • Birleştirilmiş zaman çizelgesindeki ayrılma klibi, başka bir ara klibine geçiş yapar.
  • Ara klipleri atlanır.
  • Son ara klibinin tamamı, videodan sonra gösterilen reklam yerleştirilmiş ara klibinde oynatılmıştır.
  • Bir hata oluştu.
BREAK_ENDED Aradaki son ara klibi sona erdiğinde tetiklenir.

Reklam ekleme

Yayınlama SDK'sı, uygulamaların farklı anlarda reklam ekleyip kaldırmasına olanak tanır adım adım anlatmıştım. İki reklam ekleme türü statik ve dinamik'dir. Statik reklam ekleme, reklamların LoadRequestData tahmin edilir. Dinamik reklam ekleme, BreakManager addBreak Önceden yüklenmiş içeriğe ara eklemek için kullanılan API. Her bir ekleme türü yöntemi, belirli reklam türleriyle uyumludur. Uyumluluk genel bakışı birlikte çalışabilirlik matrisinde sağlanmıştır.

Statik reklam ekleme

Statik reklam ekleme, reklamdan önce alakalı reklam meta verilerinin eklenmesiyle tanımlanır. oyuncu oluşturma aşamasına geçelim. Bu bilgiler, MediaInformation LoadRequestData. Örneğin, bu, bağlı bir gönderenin veya web Alıcı uygulaması tarafından eklenebilir. LOAD isteğine müdahale etme. LoadRequestData, Web Buyer SDK'nın işlenmesi için oynatıcı oluşturulur. Daha fazla bilgi için: medyanın yüklenmesi. Örnek aşağıda LOAD isteğine eklenen istemci tarafından eklenmiş manuel bir reklam gösterilmektedir kesici.

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.setMessageInterceptor(
    cast.framework.messages.MessageType.LOAD, loadRequestData => {

  // Create the BreakClip.
  let clipClient = new cast.framework.messages.BreakClip('bc_client');
  clipClient.title = 'The Ad Title to be displayed during playback';
  clipClient.contentId = 'https://example.com/ad.mp4';
  clipClient.contentType = 'video/mp4';

  // Create the Break using the BreakClip id above.
  let breakPostrollClient = new cast.framework.messages.Break(
      'break_postroll_client', ['bc_client'], -1);

  // Set the ad information in the load request data.
  let media = loadRequestData.media;
  media.breakClips = [clipClient];
  media.breaks = [breakPostrollClient];

  return loadRequestData;
});

Dinamik reklam ekleme

Dinamik reklam ekleme, içerik sırasında reklam arası ayarlanmasıyla tanımlanır oynatmaya devam edebilirsiniz. Bu işlem, BreakManager öğesinin bir örneğini alıp "the" addBreak API'ye gidin. Bu işlem en az iki parametre gerektirir: yerleştirilmiş genişletilmiş Break ve bir dizi BreakClip. Değişikliklerin true olarak ayarlandığında, bir MediaStatus yayını aracılığıyla bağlı gönderenler. Zaman aralar ve ara klipleri eklediğinizde, ilgili kimliklerin benzersiz olması gerekir. Bu reklamlar yalnızca oynatıcı oluşturulduktan sonra eklenebilir. Web Alıcı SDK'sı etkinleşir "the" PLAYER_LOADING etkinlik oluşturulur. Google Ads'deki kullanımı gösteren aşağıdaki örneğe bakın Bir akışın ID3 meta verilerindeki değişikliklere yanıt veren ve , zaman çizelgesine eklemek üzere Break ve BreakClip nesneleri oluşturur.

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();

playerManager.addEventListener(cast.framework.events.EventType.ID3, (event) => {

  // Create the BreakClip.
  let clipEmbeddedExpanded = parseBreakClipFromData(event.segmentData);
  let breakEmbeddedExpanded = parseExpandedBreakFromData(event.segmentData);

  // Add the break and break clip.
  breakManager.addBreak(breakEmbeddedExpanded, [clipEmbeddedExpanded]);
});

Dinamik reklam kaldırma

Dinamik araları kaldırmak için uygulamanın removeBreakById oynatma sırasında. İşlev, aranın dize tanımlayıcısını alır zaman çizelgesinden kaldırılır. Belirtilen breakId, yerleştirilmiş bir dosyaya işaret etmelidir genişletilmiş reklam arası. Başka tür bir reklam arası algılanırsa reklam arası zaman çizelgesinde kalmaya devam eder. Arayı kaldıran aşağıdaki örneği inceleyin.

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();

breakManager.removeBreakById('break_midroll_embedded_expanded');

Araların davranışı

SDK, oynatıcının giriş ve çıkış anlarına yönelik varsayılan davranışı tanımlar. ve sağlanan bazı API'leri kullanarak onu daha da özelleştirmenin bir yolunu sunuyor. inç BreakManager.

Varsayılan ara davranışı

Normal oynatma sırasında veya Break üzerinde bir yöne sarılarak Break girildiğinde SDK, kontrol ederek kullanıcının bunu daha önce görüp görmediğini "the" isWatched Oluşturulduğunda, bu mülk için aranın varsayılan değeri false olur. Eğer tesis true, girildiğinde ve ana olduğunda ara oynatılmaz içerik oynatılmaya devam eder. Özellik false ise ara şöyle olur: girildiğinde oynanır.

Geçmiş aralar ararken varsayılan uygulama, tüm Break öğelerini alır. position değeri arama işleminin seekFrom ve seekTo değerler. SDK, bu ara listesinden positionBreak seekTo değerine en yakın olan ve isWatched özelliği false. Böylece bu aranın isWatched özelliği true olarak ayarlanır ve oynatıcı ara kliplerini oynatmaya başlar. Ara verildiğinde, ana içerik, seekTo konumundan oynatılmaya devam edecek. Böyle bir belge yoksa ara varsa hiçbir ara oynatılmaz ve ana içerik devam ettirilir seekTo. sırada.

Oynatma sırasında SDK, ilgili güncellemeleri içinde yer alan ve gönderen uygulamaları MediaStatus. Bu uygulamalar, "the" breakStatus Bu özellik yalnızca ara oynatma sırasında tanımlanır.

Alıcı uygulamalar ayrıca, BreakClip öğesinin geçerli zamanına göre video yer imlecinin konumu PlayerManager numaralı telefon aranarak gösterilmektedir getBreakClipCurrentTimeSec. Benzer şekilde, uygulamalar mevcut BreakClip süresinin süresini arama getBreakClipDurationSec

Özel ara davranışı

Varsayılan davranış mola kliplerini değiştirmek için setBreakClipLoadInterceptor ve setBreakSeekInterceptor yöntemleri BreakManager içinde sağlanır.

Arada ara engeli

Mola arama önleyicisi, uygulamanın arama davranışını kontrol etmesini sağlar. reklam aralarını devreye sokmaktır. Arama işlemi istendiğinde işlev tetiklenir zaman çizelgesine yer verir. Çağrı yapıldığında, BreakSeekData işlevine parametre olarak aktarılır. BreakSeekData nesnesi bir dizi içeren Break position özelliği geçerli ile video yer imleci süresinin tanımı seekFrom ve varış zamanı seekTo.

Bu müdahale, ilgili aralardaki Break nesnelerinin değiştirildi. Uygulandığında, ara arama önleyicisi hangi reklamı belirtmelidir? oynatılacak araları verir.BreakSeekData İlgili içeriği oluşturmak için kullanılan oynatıcı, döndürülen değerdeki tüm araları oynatır. Değer veya ara arama önleyicisinden hiçbir şey döndürülmezse aranull atlandı.

Aşağıdaki örneğe bakın. Bu örnekte, dahil olmak üzere, önceden izlenmiş aralar hariç tutulabilir.

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();

breakManager.setBreakSeekInterceptor((breakSeekData) => {

  // Filter the breaks array by removing watched breaks.
  const unwatchedBreaks =
      breakSeekData.breaks.filter(adBreak => !adBreak.isWatched);
  breakSeekData.breaks = unwatchedBreaks;

  return breakSeekData;
});

Klip yük önleyicisini kes

Ara klibi yükleme önleyicisi kullanılarak bir BreakClip nesnesi değiştirilebilir başlamadan önce kontrol edin.

Kesme klibi yük önleyicisi yalnızca birleştirilmiş zaman çizelgesi sonları ve setBreakClipLoadInterceptor. Bu müdahale aracı, bir Break girmeden önce her kişi için bir kez çağrılır. Bu arada BreakClip tanımlandı. SDK, orijinal BreakClip nesnesini tanımlayın. Uygulama daha sonra Bu BreakClip ve SDK'nın arayı getirip görüntüleyebilmesi için değeri döndürün klibini güncelleyin. null değeri döndürülürse veya hiçbir şey döndürülmezse ara klip atlanır.

Aşağıdaki bölümde, ara kliplerinin contentUrl değerini BreakClip öğesinin id değeri olan getUrlFromClipId yardımcı program işlevi çağrısı bir URL ile eşlendiğinden emin olun.

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();

breakManager.setBreakClipLoadInterceptor(
    (breakClip, breakClipLoadInterceptorContext) => {

  // Obtains the URL of a break clip id from a function call.
  breakClip.contentUrl = getUrlFromClipId(breakClip.id);

  return breakClip;
});

Reklam Atlama

Web Receiver SDK, reklam aralarını ve ara kliplerini atlayan API'ler sunar. bir reklam grubu ekleyin. SDK, kullanıcıların isteğe bağlı olarak ara kliplerini şu ölçüte göre atlamasına da olanak tanır: gönderen uygulamaları veya akıllı ekran cihazlarıyla etkileşime geçebilir.

Kullanıcı atlanabilir ara klipleri

Ara kliplerinin atlanabilir olarak ayarlanması, kullanıcıların bağlı gönderenle etkileşim kurmasına olanak tanır uygulamaları ve akıllı ekran cihazlarıyla şu anda ara klibi oynatılıyor. whenSkippable değerini negatif olmayan bir saniye uzunluğunda bir değere ayarlayabilirsiniz. Bu özellik, BreakClip nesne. Oynatıcı, reklam ara klibini atlanabilir olarak kabul eder. belirtilen sayıda saniye oynatıldığından ara klibi oynatılmıştır. Bu değer 0 olarak ayarlanıyor kullanıcıların ara klibini hemen atlamasına olanak tanır.

// Create the BreakClip.
let clip = new cast.framework.messages.BreakClip('bc');
clip.title = 'The Ad Title to be displayed during playback';
clip.whenSkippable = 10; // Users can skip the clip after 10 seconds of playback.

Bu bilgiler, gönderenin orijinal yükleme isteğinde veya alıcı uygulaması. Atlandığında, birleştirilmiş zaman çizelgesi reklam arasındaki ara klibi mevcut ara klibinin oynatılmasını durdurur. Oynatıcı bir sonraki videoyu varsa klibi bölmeli veya ana içeriği yüklemelidir. Atlandığında, yerleşik zaman çizelgesi reklam arası, ara klibin sonuna gider ve o noktada akışı oynatmaya devam edebilirsiniz.

Reklamları programatik olarak atlama

Ayrıca reklamlar kullanıcı etkileşimi olmadan otomatik olarak atlanabilir.

Oynamaya tüm ara vermek için bir uygulama isWatched Break ile true arasındaki kopya. Bu işlem, yükleme sırasında herhangi bir zamanda yapılabilir. dizi veya içerik oynatma. isWatched özelliği ana içeriğin geçerli saatinde aranın position değerine ulaşıldı. Kuyruklu a işareti bu noktada oyuncu ara girilip girilmeyeceğini belirler. Tüm araları döngüye alan ve değeri gösterilir.

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();

playerManager.addEventListener(cast.framework.events.EventType.PLAYER_LOADING,
    (event) => {

  // Obtain the breaks and iterate through each item to skip all ad breaks.
  let breaks = breakManager.getBreaks();
  breaks.forEach((brk) => {
    brk.isWatched = true;
  });
});

Belirli bir ara klibini programatik olarak atlamak için Klip yükleme önleyicisi kullanılmalıdır. Ölçüt null döndürülmesi veya geri çağırma işlevinde bir değer döndürülmemesi; bu ara atlanır.

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();

breakManager.setBreakClipLoadInterceptor(
      (breakClip, breakClipLoadInterceptorContext) => {
  return null;
});