Przerwy na reklamy

Omówienie

Pakiet Web Receiver SDK zapewnia natywną obsługę przerw na reklamy i reklam towarzyszących w ramach danego strumienia multimediów. Udostępnia interfejsy API do ustawiania pozycji reklamy, źródła reklam zachowanie przerw na reklamę i powiązanych z nimi przerw na reklamy. W tym przewodniku Break oznacza interwał odtwarzania zawierający co najmniej jedną reklamę lub bumpery oraz Wszystkie reklamy i przerywniki to tzw. BreakClip Przerwy te są powiązane z multimediami, które są ładowane lub odtwarzane.

Typy reklam

Pakiet Web Receiver SDK obsługuje wstawianie reklam po stronie klienta i serwer połączone wstawianie reklam (SSAI). Reklamy połączone przez klienta mogą być ustawiane ręcznie przez lub wyodrębniona z plików szablonów VAST i VMAP. Reklamy połączone z serwerem należy określić ręcznie przed załadowaniem treści jako osadzonych reklam lub dynamicznie podczas odtwarzania treści jako osadzonych rozwiniętych. reklam. Implementacje tych typów reklam znajdziesz poniżej.

ręczne złączenie klienta

Przerwa na reklamę połączona z klientem to typ przerwy na reklamę, który jest zszyty przez klienta i jest określana ręcznie przez aplikację za pomocą Interfejsy API pakietu SDK. Ten typ reklamy nie jest umieszczony w strumieniu treści głównej. BreakClip musi zawierać parametr contentId. czyli URL wskazujący treść reklamy, contentType opisujący format treści reklamy title.

Break musi mieć isEmbedded. oraz expanded ustawiono na domyślną wartość false. position można ustawić przerwę na reklamę przed filmem, w trakcie filmu lub po filmie (więcej informacji znajdziesz w pozycjonowania przerw). Podczas przygotowywania do odtworzenia, pakiet Web Receiver SDK wygeneruje kolejną instancję odtwarzacza, aby ją załadować i odtworzyć treść reklamy. Te przerwy wymagają stitched timeline i muszą być dodane statycznie (więcej informacji znajdziesz w wstawianie reklam). W poniższym przykładzie pokazano, implementacji reklamy ręcznie połączonej z klientem:

// 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

Pakiet SDK Web Receiver SDK obsługuje dodawanie standardu IAB VAST (wyświetlanie reklam wideo) ). Podany szablon XML jest analizowany w celu wygenerowania pliku kolejnego połączonego z klientem klipu oznaczającego przerwę.

Aby utworzyć reklamę VAST, aplikacja odbierająca musi utworzyć tag VastAdsRequest i określ je w polu BreakClip vastAdsRequest usłudze. Obiekt VastAdsRequest musi mieć adsResponse ( reprezentacja ciągu tekstowego szablonu XML) lub adTagUrl (adres URL) w której jest hostowany szablon XML). Jeśli URL jest podany, parametr Pakiet SDK pobierze szablon. Element Break śledzi i zasady dotyczące reklam łączonych z klientami. Można je dodawać razem z innymi ręcznie zszytych przez klienta w tej samej lub w oddzielnych przerwach w przypadku taki sam fragment treści. Poniższy przykład pokazuje podstawową implementację VAST reklama:

// 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.

Po wprowadzeniu pola Break zawierającego VAST BreakClip odbiornik internetowy Pakiet SDK pobierze, a następnie przeanalizuje szablon. Podczas analizy pakiet SDK wygeneruje nowy BreakClip i wypełni go wartościami wyodrębnionymi z szablon taki jak contentId, contentType, title, duration, whenSkippable i clickThroughUrl. Pole id wygenerowanego klipu oznaczającego przerwę to ustawiono na GENERATED:N, gdzie N to liczba całkowita, która zwiększa się o 1 dla każdej nowej Klip przerwy VAST został utworzony 0. Wygenerowana reklama jest następnie dodawana do tablicę BreakClip. Dla każdego parametru id klipu VAST w bieżącym Break a następnie zostaną zastąpione odpowiednimi wartościami id klipu oznaczającego przerwę. Fragmenty tekstu poniżej zilustrujemy zmiany w MEDIA_STATUS związane z reklamami – przed przerwą i po niej.

Informacje o Break i BreakClip przed rozpoczęciem przerwy w reklamach VAST.

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

Informacje Break i BreakClip po wyświetleniu przerwy w reklamach VAST.

"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,

Pakiet Web Receiver SDK obsługuje protokół VMAP (Video Multiple Ad Playlisty) organizacji IAB. standardowy. Gdy podasz VMAP, pakiet SDK odbiornika internetowego przeanalizuje VMAP i wygeneruj client-łączonych Break obiekty dla dowolnych <AdBreak> w odpowiedzi. Wygeneruje również odpowiednie BreakClips z obiekt vastAdsRequest dla każdej pozycji <AdSource> podanej w VMAP. Do włącz obsługę VMAP w celu wstawiania reklam do treści, aplikacja musi utworzyć VastAdsRequest i przypiszesz go do vmapAdsRequest właściwości MediaInformation w LoadRequestData. Takie reklamy muszą być wstawiane statycznie (więcej informacji znajdziesz w wstawianie reklam). Poniżej przedstawiamy krótki opis przez utworzenie żądania VMAP.

// 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;

umieszczone

Umieszczona przerwa na reklamę to typ przerwy na reklamę, który jest połączony po stronie serwera. w strumieniu treści. Czas trwania elementu Break został zmniejszony niż czas trwania treści głównej.

BreakClip musi zawierać parametr duration. treść reklamy, title Break musi mieć isEmbedded. ustaw na true i expanded. ustawiono na false. position można ustawić jako przerwę na reklamę przed filmem lub w trakcie filmu. Przerwy na reklamy po filmie są: obsługiwane z dodatnimi, ścisłymi wartościami position. Więcej informacji na ten temat znajdziesz w pozycjonowania stron. Kiedy reklama jest wyświetlana pakiet SDK Web Receiver kontynuuje odtwarzanie strumienia, gdy segmenty reklam w których są umieszczone. Ten typ reklam nie ma dodatkowego mechanizmu wczytywania. Odpowiednie metadane reklamy są wyświetlane użytkownikowi, gdy suwak odtwarzania znajdzie się w w czasie przerwy. Te przerwy wymagają właściwości embedded timeline i należy je dodać statycznie (więcej informacji znajdziesz w sekcji dotyczącej wstawiania reklam). przykład poniżej pokazuje podstawową implementację reklamy embedded.

// 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.

osadzone rozwinięte

Umieszczona rozszerzona przerwa na reklamę to typ przerwy na reklamę, który jest połączony z serwerem. w ramach strumienia głównej treści. Czas trwania Break jest uwzględniony w czasie trwania treści głównej przy obliczaniu czasu multimediów.

BreakClip musi zawierać parametr duration. treść reklamy, title Break musi mieć isEmbedded. ustaw na true i expanded. ustawiono na true. position można ustawić jako przerwę na reklamę przed filmem lub w trakcie filmu. Przerwy na reklamy po filmie są: z dodatnimi wartościami position. Więcej informacji na ten temat znajdziesz w pozycjonowania stron. Kiedy reklama jest wyświetlana pakiet SDK Web Receiver kontynuuje odtwarzanie strumienia, gdy segmenty reklam w których są umieszczone. Ten typ reklam nie ma dodatkowego mechanizmu wczytywania. Odpowiednie metadane reklamy są wyświetlane użytkownikowi, gdy suwak odtwarzania znajdzie się w w czasie przerwy. Te przerwy wymagają ustawienia embedded timeline i można je dodać statycznie lub dynamicznie (więcej informacji znajdziesz wstawianie reklam). W poniższym przykładzie pokazano, wdrożenie reklamy embedded expanded:

// 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;

Typy osi czasu odtwarzacza

Podczas tworzenia instancji odtwarzacza pakiet SDK odbiornika internetowego wybiera typ osi czasu, umożliwiają odtwarzanie reklam podczas odtwarzania treści. Każda oś czasu umożliwia typy podziałów, które chcesz dodać. Typ osi czasu jest określany przez typy reklam występujących w czasie wczytywania w sekcji MediaInformation. z LoadRequestData Jeśli występują umieszczone przerwy na reklamę, wybrana zostanie oś czasu embedded. Jeśli jeśli występują przerwy na reklamę połączone z klientem, wybrana jest oś czasu stitched. W przypadku braku reklam pakiet SDK domyślnie używa interfejsu embedded osi czasu. Po wybraniu osi czasu nie można jej zmienić dla bieżącej element multimedialny. W tabeli poniżej znajdziesz szczegółowy opis każdego harmonogramu.

Typ osi czasu Opis
umieszczona oś czasu Reprezentacja czasu multimediów, w którym można wyświetlać reklamy które są osadzone w głównej treści, (przerwy na reklamy umieszczone i wbudowane rozwinięte). Jeśli widoczna jest nierozwinięta przerwa na reklamę, czas trwania jest odejmowana od łącznego czasu trwania treści. Gdy natomiast rozwinięta reklama jest że czas oczekiwania jest uznawany za czas jako część głównej treści.
połączona oś czasu Reprezentacja czasu multimediów, w którym można wyświetlać reklamy pochodzące z zewnętrznych plików multimedialnych (ręcznie połączone klienta, VAST i VMAP) przerwy na reklamę). Po dodaniu czas trwania przerwy na reklamę wynosi nie wchodzą w skład czasu trwania głównej treści.

Rysunki 1–3 poniżej przedstawiają treści związane z różnymi typami reklam i ich odpowiednie wartości osi czasu. w treściach jest skonfigurowana przerwa przed filmem; składające się z dwóch klipów oraz przerw w trakcie filmu i po filmie, zawierających pojedynczy klip. Zegar ścienny od momentu rozpoczęcia odtwarzania treści, czas multimediów głównej treści oraz bieżący czas przerwy odtwarzanego klipu z przerwami są wyrównane pod każdą ilustracją.

Oś czasu reklam połączonych przez klienta
Rysunek 1. Oś czasu przedstawiająca niektóre treści i 3 przerwy na reklamy połączone przez klienta


Oś czasu osadzonych reklam połączonych z serwerem
Rysunek 2. Oś czasu przedstawiająca niektóre treści i 3 umieszczone na serwerze przerwy na reklamy połączone z serwerem.


Oś czasu osadzonych reklam rozszerzonych połączonych z serwerem
Rys. 3: Oś czasu przedstawiająca niektóre treści i 3 umieszczone na serwerze reklamy rozwiniętew tekście reklamy.

Przerwanie pozycjonowania

Pakiet Web Receiver SDK pozwala programistom określić, gdzie powinny znaleźć się przerwy na reklamy. umieszczone przez ustawienie position właściwości Break. Ta wartość odpowiada czasowi odtwarzania treści głównej i można go użyć do tworzenia przerw na reklamy pre-roll, mid-roll i post-roll. Są to:

Przerwa na pozycji Opis
reklama przed filmem Przerwa na reklamę wyświetlana przed główną treścią strony. To jest oznaczone przez ustawienie breakPosition na 0
reklama w trakcie filmu Przerwa na reklamę wyświetlana w trakcie treści. Wskazuje to ustawianie w breakPosition czasu, w którym przerwa jest początek jest większy niż początek głównej treści oraz czas zakończenia przerwy jest krótszy niż koniec głównej treści obecnie się znajdujesz.
reklama po filmie Przerwa na reklamę wyświetlana po głównej treści. To jest oznaczone przez ustawienie breakPosition na -1 dla połączone osie czasu. Dla urządzeń umieszczonych oś czasu breakPosition należy ustawić na czas trwania treści głównej odjęty przez czas trwania przerwy. Nieobsługiwane w przypadku treści na żywo.

Macierz interoperacyjności

W tabeli 1 znajdziesz omówienie różnych typów reklam oraz ich zgodności z funkcjami związanymi z reklamami.

Tabela 1. Macierz interoperacyjności reklam
Obsługa funkcji ręczna reklama połączona z klientem VAST VMAP, reklama osadzona umieszczona rozwinięta reklama
zgodne z VAST ręczne złączenie klienta Nie dotyczy osadzone rozwinięte umieszczone
oś czasu zszyte zszyte zszyte umieszczone umieszczone
wstawianie reklam statyczne statyczne statyczne statyczne statyczny, dynamiczny
usunięcie reklamy
reklama przed filmem
reklama w trakcie filmu
reklama po filmie
pominięcie reklamy
przerwanie przewijania, przewijanie
przechwytywanie ładowania przycięcia

Wydarzenia

Gdy wystąpią kluczowe zdarzenia przerwy na reklamę, pakiet SDK Cast będzie wysyłać zdarzenia określonego typu. BreaksEvent Aplikacja odbiornika może je subskrybować za pomocą funkcji PlayerManager addEventListener. API.

Można je wykorzystać do analizy i śledzenia odtwarzania reklam. Gdy VMAP (Playlista wideo z wieloma reklamami) i reklamy VAST (Video Ad Serving Template) są wszystkie standardowe zdarzenia śledzenia podane w odpowiedziach są automatycznie wysyłane przez pakiet SDK.

Typy zdarzeń podano w tabeli 2 wraz ze szczegółowym opisem po zwolnieniu z pracy.

Cykl życia zdarzeń przerwania
Rysunek 4. Cykl życia zdarzeń przerwy na reklamę.
Tabela 2. Zdarzenia przerwy na reklamę i ich opisy.
Przerwa Opis
BREAK_STARTED Uruchamiane, gdy bieżący czas multimediów głównej treści jest równy position nieobejrzanej przerwy.
BREAK_CLIP_LOADING Uruchamiany tylko po rozpoczęciu wczytywania klipu oznaczającego przerwę na połączonej osi czasu.
BREAK_CLIP_STARTED Uruchamiane po rozpoczęciu odtwarzania klipu oznaczającego przerwę.
BREAK_CLIP_ENDED Uruchamiane po zakończeniu klipu oznaczającego przerwę. endedReason jest wypełniane w następujących okolicznościach:
    .
  • Łączony klip z przerwami na osi czasu został w całości odtworzony.
  • Połączony klip z przerwami na osi czasu przechodzi do innego klipu oznaczającego przerwę.
  • Klipy przerwy na reklamę zostaną pominięte.
  • Ostatni klip odtworzony w całości jako reklama po filmie.
  • Wystąpił błąd.
BREAK_ENDED Uruchamiane po zakończeniu ostatniego klipu przerwy na reklamę.

Wstawianie reklam

Pakiet SDK Cast umożliwia aplikacjom wstawianie i usuwanie reklam w różnych momentach sesji przesyłania. Wyróżniamy 2 typy wstawiania reklam: statyczne i dynamiczne. Statyczne wstawianie reklam wymaga, by reklamy były zdefiniowane w sekcji LoadRequestData. przed jego utworzeniem. Dynamiczne wstawianie reklam wykorzystuje BreakManager. addBreak. Interfejs API do wstawiania przerw w już załadowanej treści. Każdy typ wstawiania jest zgodna z określonymi typami reklam. Zgodność jest dostępne w tabeli interoperacyjności.

Statyczne wstawianie reklam

Statyczne wstawianie reklam polega na dodaniu odpowiednich metadanych reklamy przed w tworzeniu odtwarzacza. Te informacje są dostępne w MediaInformation LoadRequestData. Można ją na przykład ustawić w ustawieniach połączonego nadawcy lub może zostać wstawione przez aplikację Web Receiver przechwytywania żądania LOAD. Gdy LoadRequestData wrócą do SDK odbiornika internetowego do przetwarzania, tworzony jest odtwarzacz. Zobacz więcej na: pobieram multimedia. Przykład poniżej pokazuje reklamę ręcznie złączoną z klientem dodaną w żądaniu LOAD lub przechwytywanie.

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;
});

Dynamiczne wstawianie reklam

Dynamiczne wstawianie reklam polega na ustawieniu przerwy na reklamę w trakcie treści odtwarzania. W tym celu należy pozyskać instancję BreakManager i wywołać addBreak. API. Wymagane są co najmniej dwa parametry: osadzone rozwinięte Break i tablica BreakClip Dołączyliśmy opcjonalną właściwość trzecią, która wymusza wysłanie zmian do nadawców połączonych za pomocą transmisji MediaStatus, gdy jest ustawiona na true. Kiedy po dodaniu przerw i klipów przerywanych, odpowiadające im identyfikatory muszą być unikalne. Te reklamy można dodać dopiero po utworzeniu odtwarzacza. Uruchomi się pakiet SDK odbiornika internetowego PLAYER_LOADING po utworzeniu odtwarzacza. Poniżej znajdziesz przykład korzystania z narzędzia modułu obsługi zdarzeń, który reaguje na zmiany w metadanych ID3 strumienia. tworzy obiekty Break i BreakClip, aby wstawić je na osi czasu.

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]);
});

Dynamiczne usuwanie reklam

Aby usunąć przerwy dynamiczne, aplikacja powinna wywołać removeBreakById podczas odtwarzania. Funkcja przyjmuje identyfikator przerwy w ciągu znaków, aby usunięte z osi czasu. Podana wartość breakId musi wskazywać umieszczoną rozwiniętej przerwy na reklamę. Jeśli zostanie wykryty inny typ przerwy na reklamę, pozostanie na osi czasu. Zapoznaj się z poniższym przykładem, w którym usunięto przerwę.

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

breakManager.removeBreakById('break_midroll_embedded_expanded');

Zachowanie przerw

Pakiet SDK określa domyślne zachowanie, gdy odtwarzacz zaczyna odtwarzać treści i zostawia przerwy. i umożliwia jego dalsze dostosowanie za pomocą niektórych interfejsów API cale BreakManager

Domyślne działanie przerwy

Jeśli podczas zwykłego odtwarzania lub przewijania w elemencie Break pojawi się element Break, SDK oceni, czy użytkownik widział już ten film, isWatched. usłudze. Po utworzeniu przerwy domyślna wartość przerwy dla tej właściwości to false. Jeśli właściwość ma true, przerwa nie będzie odtwarzana po wpisaniu i głównym treści będą nadal odtwarzane. Jeśli właściwość to false, przerwa będzie miała postać odtwarzane po uruchomieniu.

W przypadku przeszukiwania wcześniejszych przerw domyślna implementacja pobiera wszystkie te parametry: Break. elementy, których wartość position znajduje się między funkcją przewijania seekFrom. oraz seekTo. . Z tej listy przerw pakiet SDK będzie odtwarzać ścieżkę Break, której position jest najbliższa wartości seekTo, a jego właściwość isWatched jest ustawiona na false. Właściwość isWatched tej przerwy zostanie ustawiona na true, a parametr odtwarzacz rozpocznie odtwarzanie klipów przerw. Po obejrzeniu przerwy odtwarzanie głównej treści zostanie wznowione od pozycji seekTo. Jeśli nie, przerwa, nie zostanie odtworzona przerwa i zostanie wznowiona główna treść odtwarzam w pozycji seekTo.

Podczas odtwarzania w przerwie pakiet SDK będzie przesyłać wszystkie istotne aktualizacje do połączonych aplikacji nadawców w MediaStatus Te aplikacje będą korzystać z transmisji, aby aktualizować interfejs reklam na podstawie breakStatus usłudze. Ta właściwość jest określana tylko podczas odtwarzania przerwy.

Mogą też bezpośrednio wysyłać zapytania dotyczące położenie suwaka odtwarzania względem aktualnego czasu BreakClip wyświetlane po wywołaniu numeru PlayerManager getBreakClipCurrentTimeSec. Podobnie aplikacje mogą wysyłać zapytania o czas trwania bieżącego BreakClip przez połączenia getBreakClipDurationSec

Niestandardowe działanie przerwy

Działanie domyślne przerwanych i przerw na klipy można modyfikować za pomocą setBreakClipLoadInterceptor. oraz setBreakSeekInterceptor. metod wymienionych w BreakManager.

Przerwanie przechwytującego przewijania

Element przechwytujący przerwy i przewijanie umożliwia aplikacji kontrolowanie działania przewijania w czasie przerw na reklamę. Funkcja jest wyzwalana po zażądaniu operacji przewijania. przewijanie do przodu lub do tyłu o jedną lub więcej przerw. Po wywołaniu funkcja BreakSeekData jest przekazywany jako parametr do funkcji wywołania zwrotnego. Obiekt BreakSeekData zawiera tablicę Break. obiekty, których właściwość position jest ustawiona na liczbę z przedziału od bieżącej wartości czas odtwarzania zdefiniowany jako seekFrom. oraz czas przejścia do miejsca docelowego. seekTo

Umożliwia on obiektom Break w odpowiednich przerwach zmodyfikowane. Po zaimplementowaniu ten element przechwytujący przerwę podczas przewijania musi określać, która reklama powoduje zwrócenie opcjonalnie zmodyfikowanego obiektu BreakSeekData. odtwarzacz rozpocznie odtwarzanie wszystkich przerw zawartych w zwracanej wartości. Jeśli wartość null lub żaden element nie jest zwracany z funkcji przechwytywania przerwy i przewijania, przerwa jest przeskoczył mnie na bok.

Poniżej znajdziesz przykład prostej implementacji modułu zastępuje domyślne zachowanie polegające na oglądaniu wszystkich przerw na reklamy przeszukanych wraz z z wyjątkiem wcześniej obejrzanych przerw.

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;
});

Przerwij przechwytujący obciążenie wczytywania klipu

Za pomocą funkcji przechwytującej wczytywania klipu z przerwami można modyfikować obiekt BreakClip przed rozpoczęciem odtwarzania.

Funkcja przechwytująca wczytywanie klipu z przerwami jest wywoływana tylko dla połączone przerwy na osi czasu, i można ustawić za pomocą setBreakClipLoadInterceptor. Przed wprowadzeniem danych Break ten element przechwytujący jest wywoływany raz dla każdej osoby BreakClip zdefiniowane w tej przerwie. Pakiet SDK przekazuje pierwotną wersję BreakClip jako parametr funkcji wywołania zwrotnego. Aplikacja może następnie modyfikować ten element BreakClip i zwróci go, aby pakiet SDK mógł pobrać i wyświetlić przerwę ze zaktualizowaną konfiguracją. Jeśli zostanie zwrócona wartość null lub żadna, przerwa klip jest pomijany.

Poniżej znajdziesz przykład, który zmienia znak contentUrl w klipach przerwy na reklamę – wywołanie funkcji użytkowej getUrlFromClipId, gdzie id funkcji BreakClip jest mapowany na adres URL.

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;
});

Pomijanie reklam

Pakiet Web Receiver SDK udostępnia interfejsy API, które umożliwiają pomijanie przerw na reklamy i poszczególnych przerw na reklamy w trakcie przerwy na reklamę. Pakiet SDK umożliwia też użytkownikom opcjonalnie pomijanie klipów przerywanych według interakcji z aplikacjami wysyłającymi lub inteligentnymi ekranami.

Przerwane klipy użytkownika możliwe do pominięcia

Ustawienie klipów z przerwami jako możliwych do pominięcia umożliwia użytkownikom interakcję z połączonym nadawcą aplikacji i inteligentnych ekranów, aby opcjonalnie pominąć odtwarzam klip z przerwą. Ustawienie wartości whenSkippable na nieujemną liczbę sekund, dla funkcji BreakClip obiekt. Odtwarzacz uzna klip za możliwy do pominięcia, gdy został odtworzony przez taką liczbę sekund. Ustawiam tę wartość na 0 pozwala użytkownikom na natychmiastowe pominięcie klipu.

// 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.

Te informacje można ustawić w pierwotnym żądaniu wczytania nadawcy lub w w aplikacji odbiornika. Pominięty klip oznacza przerwę na reklamę w połączonej osi czasu. przerwie odtwarzanie bieżącego klipu. Odtwarzacz wczyta następne przerywać klip (jeśli jest dostępny) lub wczytać główną zawartość. Jeśli pominiesz ten krok, klip z przerwą umieszczona oś czasu przerwa na reklamę przejdzie do końca klipu z przerwami i od tego momentu będzie dalej odtwarzać strumień.

Automatyczne pomijanie reklam

Reklamy mogą być też pomijane automatycznie bez interakcji ze strony użytkownika.

Aby pominąć całą przerwę od odtwarzania, aplikacja powinna ustawić parametr isWatched. właściwości obiektu Break do true. Możesz to zrobić w dowolnym momencie wczytywania sekwencji lub odtwarzania treści. Właściwość isWatched jest oceniana przez odtwarzacz, w przypadku którego w bieżącym momencie treści głównej występuje osiągnięcie wartości position przerwy. Na w tym punkcie, odtwarzacz określi, czy należy zrobić przerwę. Zapoznaj się z poniższym przykładem, który zawiera zapętlone wszystkie przerwy i modyfikuje podczas wczytywania odtwarzacza.

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;
  });
});

Aby automatycznie pominąć konkretny klip przerwy, komponent Należy użyć mechanizmu przechwytującego wczytanie klipu. Według zwracający null lub nie zwraca wartości w funkcji wywołania zwrotnego, zostanie utworzony klip ta przerwa zostanie pominięta.

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

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