Ü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">
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.
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">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">
|
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;
});