Werbeunterbrechungen

Übersicht

Das Web Receiver SDK bietet native Unterstützung für Werbeunterbrechungen und Companion-Anzeigen. in einem Media-Stream. Es stellt APIs zur Verfügung, um die Anzeigenposition, die Anzeigenquelle und das Verhalten von Werbeunterbrechungen und die zugehörigen Clips. In diesem Leitfaden wird ein Break bezieht sich auf ein Wiedergabeintervall mit einer oder mehreren Anzeigen oder Bumpern und wird jede Anzeige oder Bumper-Anzeige BreakClip Diese Unterbrechungen sind mit dem Medium verknüpft, das gerade geladen oder abgespielt wird.

Anzeigentypen

Das Web Receiver SDK unterstützt die clientseitige Anzeigenbereitstellung (CSAI) und Server STitched Ad Insert (SSAI) verwendet. Vom Kunden erstellte Anzeigen können manuell über den oder aus VAST- und VMAP-Vorlagendateien extrahiert wurden. Server-Stitching-Anzeigen sollten vor dem Laden des Inhalts manuell als eingebettete Anzeigen oder dynamisch während der Wiedergabe des Contents als eingebettete erweiterte Anzeigen. Im Folgenden werden Implementierungen für die einzelnen Anzeigentypen im Detail beschrieben.

manuell per Client-Stitching

Werbeunterbrechung, die vom Kunden manuell eingefügt wurde, ist eine Art von Werbeunterbrechung, die zusammengefügt wird. zusammen durch den Client und wird manuell von der Anwendung mithilfe der Methode SDK-APIs Dieser Anzeigentyp ist nicht in den Stream des Hauptcontents eingebettet. Die BreakClip muss die contentId also eine URL, die auf den Anzeigeninhalt, den contentType in der das Format des Anzeigeninhalts beschrieben wird. title

Break muss isEmbedded und expanded auf den Standardwert false gesetzt. Die position eine Werbeunterbrechung mit Pre-Roll, Mid-Roll oder Post-Roll. Abschnitt zur Positionierung der Werbeunterbrechung). Bei der Vorbereitung der für die Wiedergabe eine Anzeige schalten, generiert das Web Receiver SDK eine weitere Player-Instanz, und den Anzeigeninhalt wiedergeben. Diese Pausen erfordern eine stitched timeline und statisch hinzugefügt (weitere Informationen in der Anzeigenbereitstellung). Das folgende Beispiel zeigt eine einfache Implementierung einer manuell vom Kunden per Stitching erstellten Anzeige:

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

Das Web Receiver SDK unterstützt das Hinzufügen des IAB-Standards VAST (Video Ad Serving) (Vorlage)-Anzeigen. Wenn angegeben, wird die XML-Vorlage geparst, um ein nachfolgenden client-stitched-Unterbrechungsclip beim Start der Unterbrechung.

Damit eine VAST-Anzeige erstellt werden kann, muss die Empfänger-App eine VastAdsRequest und in der BreakClip angeben vastAdsRequest Property. Das VastAdsRequest-Objekt muss entweder die adsResponse (a Stringdarstellung der XML-Vorlage selbst) oder adTagUrl (die URL) bei denen die XML-Vorlage gehostet wird. Wenn die URL angegeben ist, Das SDK übernimmt das Abrufen der Vorlage. Die kapselnde Break folgt für mit Kunden-Stitching erstellte Anzeigen. Diese Anzeigen können zusammen mit vom Kunden manuell kombinierte Anzeigen in derselben oder in separaten Pausen mit dem gleichen Inhalt. Im Beispiel unten sehen Sie eine einfache Implementierung Anzeige:

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

Wenn ein Break eingegeben wird, das einen VAST BreakClip enthält, wird der Web Receiver Das SDK ruft die Vorlage optional ab und parst sie. Beim Parsen zeigt das SDK generiert eine neue BreakClip und füllt sie mit den extrahierten Werten aus wie contentId, contentType, title, duration, whenSkippable und clickThroughUrl. Die id für den generierten Pausenclip ist auf GENERATED:N festgelegt, wobei N eine Ganzzahl ist, die für jeden neuen Wert um 1 VAST-Pausenclip wurde ab 0 erstellt. Die generierte Anzeige wird dann Das Array BreakClip. Jeder VAST-Break-Clip mit dem Wert id im aktuellen Break ist wird dann durch den entsprechenden generierten Pausenclip id ersetzt. Die Snippets unten die Änderungen im MEDIA_STATUS die sich auf Anzeigen beziehen, bevor und nachdem eine solche Pause eintritt.

Informationen zu Break und BreakClip, bevor Sie eine Werbeunterbrechung für VAST-Anzeigen eingeben.

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

Informationen zu Break und BreakClip nach einer Unterbrechung bei VAST-Anzeigen.

"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

Das Web Receiver SDK unterstützt das IAB VMAP (Video Multiple Ad Playlists). Standard. Wenn ein VMAP bereitgestellt wird, parst das Web Receiver SDK das VMAP. Antwort und durch Client zusammengefügte Break-Objekte für <AdBreak> generieren Einträge in der Antwort. Außerdem wird die entsprechende BreakClips mit Ein vastAdsRequest-Objekt für jeden im VMAP angegebenen <AdSource>-Eintrag. Bis VMAP für das Einfügen von Anzeigen in Ihren Content aktivieren, muss die Anwendung ein VastAdsRequest -Objekt und weisen Sie es dem vmapAdsRequest der Eigenschaft des MediaInformation in der LoadRequestData Diese Anzeigen müssen statisch eingefügt werden (weitere Informationen in den Anzeigenbereitstellung). Im Folgenden finden Sie einen Auszug, der die VMAP-Anfrage erstellt werden.

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

eingebettet

Eine eingebettete Werbeunterbrechung ist eine Art von Werbeunterbrechung, die auf der Serverseite eingefügt wird. in den Stream des Hauptcontents ein. Die Dauer von Break wird subtrahiert. bei der Berechnung der Medienzeit von der Dauer des Hauptinhalts.

BreakClip muss die duration des Anzeigeninhalts und die title Break muss isEmbedded festgelegt auf true und expanded auf false festgelegt. Die position kann als Pre-Roll oder Mid-Roll festgelegt werden. Post-Roll-Werbeunterbrechungen mit positiven, exakten position-Werten unterstützt. Weitere Informationen hierzu finden Sie in der break positioning auf. Wann die Anzeigenauslieferung ausgelöst wird, wiedergegeben wird, setzt das Web Receiver SDK die Wiedergabe des Streams fort, während die Anzeigensegmente die darin eingebettet sind. Für diesen Anzeigentyp gibt es keinen zusätzlichen Lademechanismus. Die relevanten Anzeigenmetadaten werden dem Nutzer angezeigt, sobald sich der Abspielkopf innerhalb der Unterbrechungszeitraum. Für diese Pausen ist eine embedded timeline erforderlich und sie müssen hinzugefügt werden statisch (weitere Informationen finden Sie im Abschnitt Anzeigenbereitstellung). Die Im Beispiel unten sehen Sie eine grundlegende Implementierung einer embedded-Anzeige.

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

eingebettetes maximiertes

Die eingebettete maximierte Werbeunterbrechung ist eine Art von Werbeunterbrechung, die auf dem Server per Stitching eingerichtet wird. in den Stream des Hauptcontents. Die Dauer von Break ist eingeschlossen in der Dauer des Hauptinhalts berücksichtigt, wenn die Medienzeit berechnet wird.

BreakClip muss die duration des Anzeigeninhalts und die title Break muss isEmbedded festgelegt auf true und expanded auf true festgelegt. Die position kann als Pre-Roll oder Mid-Roll festgelegt werden. Post-Roll-Werbeunterbrechungen mit positiven position-Werten unterstützt. Weitere Informationen hierzu finden Sie in der break positioning auf. Wann die Anzeigenauslieferung ausgelöst wird, wiedergegeben wird, setzt das Web Receiver SDK die Wiedergabe des Streams fort, während die Anzeigensegmente die darin eingebettet sind. Für diesen Anzeigentyp gibt es keinen zusätzlichen Lademechanismus. Die relevanten Anzeigenmetadaten werden dem Nutzer angezeigt, sobald sich der Abspielkopf innerhalb der Unterbrechungszeitraum. Diese Pausen erfordern eine embedded timeline und können hinzugefügt werden statisch oder dynamisch (mehr dazu im Anzeigenbereitstellung). Das folgende Beispiel zeigt eine einfache Implementierung einer embedded expanded-Anzeige:

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

Zeitachsentypen für Player

Beim Erstellen einer Player-Instanz wählt das Web Receiver SDK einen Zeitachsentyp aus, unterstützen das Abspielen von Anzeigen während der Wiedergabe von Inhalten. Jede Zeitachse ermöglicht bestimmte Anzeigen die hinzuzufügenden Unterbrechungsarten. Der Zeitachsentyp wird durch die Anzeigentypen, die während der Ladezeit in der MediaInformation der LoadRequestData Wenn eingebettete Werbeunterbrechungen vorhanden sind, wird die Zeitachse embedded ausgewählt. Wenn Vom Kunden eingefügte Werbeunterbrechungen sind vorhanden, die Zeitachse „stitched“ ist ausgewählt. Falls keine Anzeigen vorhanden sind, verwendet das SDK standardmäßig die embedded Zeitleiste. Sobald die Zeitachse ausgewählt ist, kann sie für die aktuelle Zeitachse nicht mehr geändert werden. Medienelement. Die folgende Tabelle enthält eine detaillierte Beschreibung jeder Zeitachse.

Zeitachsentyp Beschreibung
eingebettete Zeitachse Darstellung der Medienzeit, die Anzeigen unterstützt die in den Hauptinhalt eingebettet sind, (eingebettete und eingebettete maximierte Werbeunterbrechungen). Ist eine nicht maximierte Werbeunterbrechung vorhanden, wird die Dauer von der Gesamtdauer der Inhalte. Wenn hingegen eine maximierte Anzeige vorhanden ist, wird ihre Zeit als Teil des Hauptinhalts.
zusammengefügte Zeitachse Darstellung der Medienzeit, die Anzeigen unterstützt die aus externen Mediendateien stammen (manuell mit Clientstitching, VAST und VMAP Werbeunterbrechungen). Beim Hinzufügen beträgt die Dauer der Werbeunterbrechung nicht auf die Dauer des Hauptinhalts zurückzuführen.

In den Abbildungen 1 bis 3 unten sind einige Inhalte mit unterschiedlichen Anzeigentypen und deren die entsprechenden Zeitachsenwerte. Der Inhalt ist mit einer Pre-Roll-Pause konfiguriert. mit zwei Pausenclips sowie Mid-Roll- und Post-Roll-Pausen mit einem einen einzelnen Pausenclip. Die Zeit bis zum Beginn der Wiedergabe des Inhalts die Medienzeit des Hauptinhalts und die aktuelle Uhrzeit der Pause zwischen den einzelnen Abbildungen ausgerichtet sind.

<ph type="x-smartling-placeholder">
</ph> Zeitachse der vom Kunden geschalteten Anzeigen <ph type="x-smartling-placeholder">
</ph> Abbildung 1: Zeitachse mit einigen Inhalten und den drei vom Kunden eingefügten Werbeunterbrechungen.


<ph type="x-smartling-placeholder">
</ph> Zeitachse von eingebetteten Anzeigen mit Server-Stitching <ph type="x-smartling-placeholder">
</ph> Abbildung 2: Zeitachse mit einigen Inhalten und den drei vom Server per Stitching eingebetteten Werbeunterbrechungen.


<ph type="x-smartling-placeholder">
</ph> Zeitachse für per Server verknüpfte eingebettete erweiterte Anzeigen <ph type="x-smartling-placeholder">
</ph> Abbildung 3: Zeitachse mit einigen Inhalten und den drei vom Server per Stitching eingebetteten, maximierten Werbeunterbrechungen.

Positionierung der Werbeunterbrechung

Mit dem Web Receiver SDK können Entwickler angeben, wo Werbeunterbrechungen platziert werden sollen indem Sie das Attribut position von Break. Dieser Wert entspricht der Medienzeit des Hauptinhalts und kann verwendet werden, um Werbeunterbrechungen für pre-roll, mid-roll und post-roll zu erstellen. Diese sind wie folgt definiert:

Unterbrechungsposition Beschreibung
Pre-Roll Eine Werbeunterbrechung, die vor dem Hauptcontent abgespielt wird Dies ist Dies wird angegeben, indem breakPosition auf 0 gesetzt wird.
Mid-Roll Eine Werbeunterbrechung, die mitten im Content abgespielt wird Dies wird durch breakPosition auf einen Zeitpunkt einstellen, zu dem die Werbeunterbrechung Start ist größer als der Anfang des Hauptinhalts und das Ende der Pause kürzer als das Ende des Hauptinhalts ist .
Post-Roll Eine Werbeunterbrechung, die nach dem Hauptcontent abgespielt wird Dies ist Dies wird angegeben, indem breakPosition auf -1 für zusammengefügten Zeitachsen. Für eingebettete Zeitachsen: breakPosition sollte auf die Dauer des Hauptinhalts subtrahiert werden um wie lange die Pause dauert. Bei Live-Inhalten nicht unterstützt.

Interoperabilitätsmatrix

In Tabelle 1 finden Sie einen Überblick über die Anzeigentypen und Kompatibilität mit anzeigenbezogenen Funktionen.

<ph type="x-smartling-placeholder">
</ph> Tabelle 1: Interoperabilitätsmatrix für Anzeigen
Funktionsunterstützung manuell vom Kunden per Stitching-Anzeige VAST VMAP eingebettete Anzeige eingebettete maximierte Anzeige
kompatibel mit VAST manuell per Client-Stitching eingebettetes maximiertes eingebettet
Zeitleiste zusammengenäht zusammengenäht zusammengenäht eingebettet eingebettet
Anzeigenbereitstellung statisch statisch statisch statisch statisch, dynamisch
Anzeigenentfernung
Pre-Roll-Anzeige
Mid-Roll-Anzeige
Post-Roll
Anzeigenüberspringung
Break-Scenc-Interceptor
Break-Clip Lade-Interceptor

Ereignisse

Bei Schlüsselunterbrechungen löst das Cast SDK Ereignisse des Typs BreaksEvent Eine Empfänger-App kann sie über die PlayerManager abonnieren addEventListener der API erstellen.

Diese Ereignisse können für Analysen und für das Tracking der Anzeigenwiedergabe verwendet werden. Wenn VMAP (Video Multiple Ad Playlist) und VAST-Anzeigen (Video Ad Serving Template) werden alle standardmäßigen Tracking-Ereignisse in den Antworten automatisch die vom SDK ausgelöst werden.

Eine Liste der Ereignistypen finden Sie in Tabelle 2. wenn sie gefeuert werden.

<ph type="x-smartling-placeholder">
</ph> Lebenszyklus von Unterbrechungen
Abbildung 4: Lebenszyklus von Pausenereignissen
<ph type="x-smartling-placeholder">
</ph> Tabelle 2: Unterbrechungsereignisse und ihre Beschreibungen
Unterbrechungsereignis Beschreibung
BREAK_STARTED Wird ausgelöst, wenn die aktuelle Medienzeit des Hauptinhalts mit der position einer nicht angesehenen Pause
BREAK_CLIP_LOADING Wird nur ausgelöst, wenn der Ladevorgang eines Pausenclips auf der zusammengeführten Zeitachse beginnt.
BREAK_CLIP_STARTED Wird ausgelöst, wenn die Wiedergabe eines Clips beginnt
BREAK_CLIP_ENDED Wird ausgelöst, wenn ein Break-Clip endet Die <ph type="x-smartling-placeholder"></ph> endedReason wird unter folgenden Umständen eingefügt: <ph type="x-smartling-placeholder">
    </ph>
  • Ein zusammengefügter Zeitachsen-Unterbrechungsclip vollständig abgespielt.
  • Ein zusammengefügter Zeitachsen-Pausenclip geht zu einem anderen Pausenclip über.
  • Jeder Pausenclip wird übersprungen.
  • Der letzte Clip wurde vollständig in einer eingebetteten Werbeunterbrechung nach der Post-Roll-Anzeige abgespielt.
  • Ein Fehler ist aufgetreten.
BREAK_ENDED Wird ausgelöst, wenn der letzte Clip in einer Pause endet

Anzeigen einfügen

Mit dem Cast SDK können Apps Anzeigen zu unterschiedlichen Zeitpunkten einfügen und entfernen. der Besetzung. Es gibt zwei Arten der Anzeigenbereitstellung: statisch und dynamisch. Für die statische Anzeigenbereitstellung müssen die Anzeigen in den LoadRequestData vor der Erstellung des Spielers. Bei der dynamischen Anzeigenbereitstellung werden folgende Elemente genutzt: BreakManager addBreak API zum Einfügen von Pausen im bereits geladenen Inhalt Jede Art von Einfügung ist mit bestimmten Anzeigentypen kompatibel. Kompatibilität finden Sie in der Interoperabilitätsmatrix.

Statische Anzeigenbereitstellung

Bei der statischen Anzeigenbereitstellung werden die relevanten Anzeigenmetadaten vor dem bis hin zur Spielererstellung. Diese Informationen werden in den MediaInformation der LoadRequestData. Diese kann beispielsweise im Feld oder sie kann von der Web Receiver-Anwendung eingefügt werden, indem die LOAD-Anfrage abfängt. Sobald LoadRequestData an den Web Receiver SDK verarbeitet wird, wird der Player erstellt. Mehr auf Medien werden geladen. Das Beispiel Unten sehen Sie, wie eine manuell vom Kunden eingefügte Anzeige in der LOAD-Anfrage hinzugefügt wird. abfangen.

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

Dynamische Anzeigenbereitstellung

Bei der dynamischen Anzeigenbereitstellung wird während des Contents eine Werbeunterbrechung eingerichtet. Wiedergabe starten. Dazu wird eine Instanz von BreakManager abgerufen und die addBreak der API erstellen. Dafür sind mindestens zwei Parameter erforderlich, ein eingebettet maximiert Break und ein Array von BreakClip Eine optionale dritte Eigenschaft ist enthalten, um das Senden der Änderungen an Verbundene Absender über einen MediaStatus-Broadcast, wenn „true“ festgelegt ist. Wann? Pausen- und Pausenclips hinzufügen, müssen die entsprechenden IDs eindeutig sein. Diese Anzeigen kann erst hinzugefügt werden, nachdem der Player erstellt wurde. Das Web Receiver SDK wird ausgelöst die PLAYER_LOADING -Ereignis, sobald der Player erstellt wurde. Im folgenden Beispiel wird die Verwendung in einen Event-Handler, der auf Änderungen der ID3-Metadaten eines Streams reagiert und erstellt Break- und BreakClip-Objekte, um sie in die Zeitachse einzufügen.

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

Dynamische Anzeigenentfernung

Zum Entfernen dynamischer Pausen sollte die Anwendung Folgendes aufrufen: removeBreakById während der Wiedergabe. Die Funktion übernimmt einen String-Identifikator der Pause, aus der Zeitachse entfernt. Die angegebene breakId muss auf eine eingebettete Werbeunterbrechung maximiert. Wird eine andere Art von Werbeunterbrechung erkannt, bleiben auf der Zeitachse erhalten. Im Beispiel unten wird eine Unterbrechung entfernt.

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

breakManager.removeBreakById('break_midroll_embedded_expanded');

Verhalten von Werbeunterbrechungen

Das SDK definiert ein Standardverhalten für den Fall, dass der Player eine Pause ein- und verlässt und bietet die Möglichkeit, es mithilfe einiger der bereitgestellten APIs weiter anzupassen. in BreakManager

Standardverhalten für Unterbrechungen

Wenn durch die normale Wiedergabe oder durch eine Suche über ein Break ein Break eingegeben wird, prüft das SDK, ob der Nutzer es bereits gesehen hat, indem es die isWatched Property. Wenn eine Werbeunterbrechung erstellt wird, lautet der Standardwert für diese Eigenschaft false. Wenn die Eigenschaft true ist, wird die Pause nicht abgespielt, wenn sie in den Haupt- wird die Wiedergabe des Videos fortgesetzt. Wenn das Attribut false ist, wird die Unterbrechung abgespielt werden.

Beim Suchen vergangener Pausen erhält die Standardimplementierung alle Break Elemente, deren position zwischen den seekFrom und seekTo Werte. Aus dieser Liste von Unterbrechungen spielt das SDK den Break ab, dessen position dem Wert seekTo am nächsten liegt und dessen Eigenschaft isWatched auf false Das Attribut isWatched dieser Werbeunterbrechung wird dann auf true gesetzt und der beginnt die Wiedergabe seiner Pausen-Clips. Nach der Pause wird die Wiedergabe ab der Position seekTo fortgesetzt. Falls keine solche Pause vorhanden, wird keine Pause abgespielt und der Hauptinhalt wird fortgesetzt. wird an der seekTo-Position wiedergegeben.

Während der Pause überträgt das SDK alle relevanten Updates an die Absenderanwendungen in der MediaStatus Diese Apps verwenden die Broadcasts, um ihre UI für Anzeigen zu aktualisieren, indem sie Folgendes lesen: die breakStatus Property. Diese Eigenschaft wird nur während der Wiedergabe einer Pause definiert.

Empfängeranwendungen können auch direkt Informationen abfragen, die zum Position des Abspielkopfs in Bezug auf die aktuelle Zeit von BreakClip angezeigt durch Aufrufen von PlayerManager getBreakClipCurrentTimeSec Analog können Anwendungen die Dauer der aktuellen BreakClip abfragen, indem sie Anrufen getBreakClipDurationSec

Benutzerdefiniertes Verhalten für eine Unterbrechung

Standardverhalten für Pausen und Pausenclips können mithilfe der setBreakClipLoadInterceptor und setBreakSeekInterceptor bereitgestellten Methoden in BreakManager.

Break-Finder

Mit dem Break-Finder-Abfangfunktion kann die App das Verhalten der Suche steuern. über Werbeunterbrechungen. Die Funktion wird ausgelöst, wenn ein Suchvorgang angefordert wird der über eine oder mehrere Pausen vor- oder zurückspult. Bei einem Aufruf BreakSeekData wird als Parameter an die Callback-Funktion übergeben. BreakSeekData-Objekt enthält ein Array von Break Objekte, deren position-Eigenschaft auf eine Zahl zwischen der aktuellen Abspielkopfzeit definiert als seekFrom und die Zielzeit der Suche seekTo

Dieser Interceptor ermöglicht, dass die Break-Objekte in den entsprechenden Pausen geändert. Bei der Implementierung muss der Abfangfunktion für die Werbeunterbrechung angeben, welche Anzeige unterbricht die Wiedergabe, da ein optional geändertes BreakSeekData-Objekt zurückgegeben wird. Die beginnt der Player mit der Wiedergabe aller Pausen, die im Rückgabewert enthalten sind. Wenn ein Wert null oder nichts vom Break-Interceptor zurückgegeben wird, ist die Pause übersprungen.

Im Beispiel unten sehen Sie eine einfache Implementierung des Abfangfunktions, überschreibt das Standardverhalten, um alle Werbeunterbrechungen zu beobachten, die mit dem bereits angesehene Pausen.

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

Cliplade-Interceptor unterbrechen

Mit dem Abfangende beim Laden von Clips kann ein BreakClip-Objekt geändert werden bevor die Wiedergabe beginnt.

Der Interceptor für das Laden von Clips wird nur für zusammengefügte Zeitachsenunterbrechungen und kann mit setBreakClipLoadInterceptor Vor der Eingabe eines Break wird dieser Interceptor einmal für jede Person aufgerufen BreakClip in dieser Pause definiert. Das SDK übergibt die ursprüngliche BreakClip -Objekt als Parameter der Callback-Funktion angeben. Die Anwendung kann dann dieses BreakClip und geben es zurück, damit das SDK die Unterbrechung abrufen und anzeigen kann. mit der aktualisierten Konfiguration. Wenn null oder nichts zurückgegeben wird, wird die Pause wird der Clip übersprungen.

Unten siehst du ein Beispiel, bei dem der contentUrl der Pausenclips mit Eine Dienstprogrammfunktion ruft getUrlFromClipId auf, wobei die id der BreakClip einer URL zugeordnet ist.

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

Überspringen von Anzeigen

Das Web Receiver SDK bietet APIs zum Überspringen von Werbeunterbrechungen und einzelnen Pausenclips. in einer Werbeunterbrechung. Das SDK ermöglicht Nutzern auch, Pausenclips zu überspringen, die mit den Absenderanwendungen oder Smart Display-Geräten interagieren.

Vom Nutzer überspringbare Pausenclips

Wenn du Clips für Pausen als überspringbar einstellst, können Nutzer mit verbundenen Absendern interagieren und Smart Displays können Sie optional den Rest eines Der Pausenclip wird gerade abgespielt. Festlegen der whenSkippable auf eine nicht negative Anzahl von Sekunden setzen, wird diese Funktion für die BreakClip-Objekt. Der Pausenclip wird im Player als überspringbar betrachtet, sobald wurde der entsprechende Break-Clip für die entsprechende Anzahl von Sekunden abgespielt. Diesen Wert auf 0 festlegen können Nutzende den Pausenclip sofort überspringen.

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

Diese Informationen können in der ursprünglichen Ladeanfrage des Absenders oder in der Empfänger-App. Beim Überspringen ein Pausenclip in einer zusammengeführten Zeitachse einer Werbeunterbrechung stoppt die Wiedergabe des aktuellen Pausenclips. Der Player lädt entweder das nächste Falls vorhanden, wird der Clip unterbrochen oder der Hauptinhalt wird geladen. Beim Überspringen wird ein wird in der Werbeunterbrechung in der eingebetteten Zeitachse bis zum Ende des Clips gesucht und um die Wiedergabe des Streams fortzusetzen.

Anzeigen programmatisch überspringen

Anzeigen können auch ohne Nutzerinteraktion automatisch übersprungen werden.

Um eine ganze Pause der Wiedergabe zu überspringen, sollte in einer App der Parameter isWatched einer Break in true fest. Dies ist während des Ladevorgangs jederzeit möglich. oder die Wiedergabe von Inhalten. Die Eigenschaft isWatched wird vom Player, wenn der position-Wert einer Pause in der aktuellen Zeit des Hauptinhalts erfüllt ist. Bei bestimmt der Spieler, ob eine Pause eintreten soll. Im Beispiel unten sehen Sie, wie durch alle Unterbrechungen eine Schleife durchlaufen wird und die wenn der Player geladen wird.

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

Wenn du einen bestimmten Werbeclip programmatisch überspringen möchtest, Das Abfangen des Clips beim Laden von Unterbrechungen sollte verwendet werden. Von die null zurückgibt oder bei der Callback-Funktion keinen Wert zurückgibt, wird der Clip in wird diese Pause übersprungen.

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

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