View a markdown version of this page

Serverseitige Werbeeinblendung (SSAI) - Amazon IVS

Serverseitige Werbeeinblendung (SSAI)

Mit der serverseitigen Werbeeinblendung (Server-Side Ad Insertion, SSAI) von Amazon IVS können Sie Ihre Streams durch Videowerbung monetarisieren. IVS-SSAI ist in AWS Elemental MediaTailor integriert und bietet Zugriff auf Funktionen wie Ad Decisioning, Zielgruppenansprache und Personalisierung. IVS bietet einen API-Vorgang zum Einfügen von Werbepausen in den Live-Stream, sodass Sie den Creatorn oder Betreibern die Kontrolle darüber geben können, wann Werbung geschaltet wird. IVS fügt Werbung direkt in den Videostream ein. Das sorgt für ein nahtloses Seherlebnis und macht eine komplexe clientseitige Logik überflüssig. Weitere Informationen zu den mit SSAI verbundenen Kosten finden Sie unter IVS-Kosten.

Erste Schritte mit SSAI

Dieses Tutorial hilft Ihnen beim Einstieg in die serverseitige Werbeeinblendung (SSAI) von Amazon IVS. Am Ende dieses Tutorials verfügen Sie über einen IVS-Kanal, der für die serverseitige Werbeeinblendung konfiguriert ist. Außerdem wissen Sie dann, wie Werbepausen in den Live-Stream eingefügt werden. IVS-SSAI ist für die Durchführung von Ad Decisioning in AWS Elemental MediaTailor integriert.

1. Schritt: IVS-Kanal erstellen

Erstellen Sie einen IVS-Kanal. Sie benötigen die Wiedergabe-URL des Kanals, um MediaTailor im nächsten Schritt zu konfigurieren. Speichern Sie nach Erstellung des Kanals die folgenden Werte:

  • Kanal-ARN – Sie benötigen diesen Namen, um den Kanal später zu aktualisieren.

  • Präfix der Wiedergabe-URL – Extrahieren Sie das URL-Präfix aus der Wiedergabe-URL (alles vor /api/). Wenn die Wiedergabe-URL beispielsweise wie folgt lautet:

    • https://c17b3fb37fc9.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.ABcdef12ghIJ.m3u8

    dann lautet das Präfix:

    • https://c17b3fb37fc9.us-west-2.playback.live-video.net/

  • Containerformat – Muss auf „MPEG-Transportstrom (TS)“ eingestellt sein.

2. Schritt: Wiedergabekonfiguration für MediaTailor erstellen

Erstellen Sie eine Wiedergabekonfiguration für AWS Elemental MediaTailor. Diese Konfiguration verbindet den Ad Decision Server mit IVS und ermöglicht die Werbeeinblendung für Ihre Streams.

Die Wiedergabekonfiguration nutzt das Präfix der Wiedergabe-URL, das für alle IVS-Kanäle in Ihrem Konto und Ihrer Region gilt. Das bedeutet, dass Sie eine einzige Wiedergabekonfiguration für MediaTailor bei mehreren IVS-Kanälen verwenden können.

Entsprechende Anweisungen finden Sie unter Erstellen einer Wiedergabekonfiguration für MediaTailor im Benutzerhandbuch von AWS Elemental MediaTailor. Beim Erstellen der Konfiguration sind die folgenden Einstellungen für IVS-SSAI erforderlich:

Einstellung Ort Wert
Ad-Decision-Server-URL Erforderliche Einstellungen URL des Ad Decision Servers
Inhaltsquelle Erforderliche Einstellungen URL-Präfix der IVS-Wiedergabe-URL; z. B. https://c17b3fb37fc9.us-west-2.playback.live-video.net/
Einfügemodus Personalisierungsdetails PLAYER_SELECT
Wichtig

Geben Sie die Inhaltsquelle an. Verwenden Sie dabei nicht die vollständige URL, sondern nur das Präfix der Wiedergabe-URL Ihres Kanals (endet mit live-video.net/). Bei einem falschen Format schlägt die Erstellung einer Werbekonfiguration im nächsten Schritt mit einem Validierungsfehler fehl.

3. Schritt: IVS-Werbekonfiguration erstellen

Eine Werbekonfiguration verknüpft Ihre IVS-Ressourcen mit der Wiedergabekonfiguration für MediaTailor. Sie können eine in einer beliebigen IVS-Heimatregion erstellte Wiedergabekonfiguration für MediaTailor zusammen mit einer Werbekonfiguration in einer beliebigen anderen IVS-Heimatregion verwenden. Zu den IVS-Heimatregionen gehören us-west-2, us-east-1, eu-west-1, eu-central-1, ap-northeast-1, ap-northeast-2 und ap-south-1.

Sie können eine einzelne Werbekonfiguration für mehrere Kanäle verwenden.

So erstellen Sie eine Werbekonfiguration (AWS-CLI):

aws ivs create-ad-configuration --name "my-ad-config" --media-tailor-playback-configurations playbackConfigurationArn="arn:aws:mediatailor:us-west-2:123456789012:playbackConfiguration/my-mediatailor-config"

Speichern Sie den ARN-Wert aus der Antwort. Sie benötigen ihn im nächsten Schritt.

4. Schritt: Kanal mit der Werbekonfiguration aktualisieren

Aktualisieren Sie Ihren IVS-Kanal, um ihn mit der erstellten Werbekonfiguration zu verknüpfen. So aktualisieren Sie den Kanal (AWS-CLI):

aws ivs update-channel --arn "arn:aws:ivs:us-west-2:123456789012:channel/ABcdef12ghIJ" --ad-configuration-arn "arn:aws:ivs:us-west-2:123456789012:ad-configuration/ABcdef12ghIJ"

5. Schritt: Streaming starten

Verwenden Sie den Aufnahme-Endpunkt und den Streamschlüssel aus Ihrem Kanal, um mit dem Streaming zu beginnen.

6. Schritt: Werbepause einfügen

Rufen Sie während des laufenden Streams den Vorgang InsertAdBreak auf, um eine Werbepause einzufügen. Geben Sie die Kanal-ARN und die Dauer (in Sekunden) für die Werbepause an.

So fügen Sie eine Werbepause ein (AWS-CLI):

aws ivs insert-ad-break --channel-arn "arn:aws:ivs:us-west-2:123456789012:channel/ABcdef12ghIJ" --duration-seconds 30

Nach erfolgreicher Rückgabe von InsertAdBreak können Sie ein EventBridge-Ereignis (IVS Ad Break State Change) mit einem Zeitstempel empfangen, der angibt, wann die Werbepause voraussichtlich in die Zuschauer-Wiedergabelisten eingefügt wird. Das ist der Zeitpunkt, zu dem der Broadcaster davon ausgehen kann, dass Werbung die Inhalte ersetzt. Wenn keine Werbung eingeblendet werden kann (beispielsweise wenn der Ad Decision Server keine Werbung zurückgibt oder die Werbung von MediaTailor transkodiert werden muss), wird stattdessen der Quellinhalt angezeigt.

Wichtig

Sie können keine weiteren Werbepausen einfügen, solange eine bestehende Werbepause noch läuft. Bei nachfolgenden Aufrufen von InsertAdBreak wird der Fehler 409 ConflictException zurückgegeben, bis die aktuelle Werbepause abgeschlossen ist.

EventBridge-Integration

Bei SSAI wird das Ereignis IVS Ad Break State Change (mit der Bezeichnung „Ad Break Inserted“) hinzugefügt, das folgende Felder enthält:

Feld Beschreibung
event_name Der Name des ausgestrahlten Ereignisses.
channel_name Der Name des Kanals, der durch die API-Anfrage InsertAdBreak ausgelöst wird.
stream_id Die ID des Live-Streams im Kanal, der durch die API-Anfrage InsertAdBreak ausgelöst wird.
ad_break_id Die mit der Werbepause verknüpfte eindeutige ID, die der Werbepausen-ID in der Antwort auf die ursprüngliche InsertAdBreak-Anfrage entspricht.
duration_seconds Der Wert in Sekunden, der in der InsertAdBreak-Anfrage enthalten war und vom Kunden angegeben wurde.
target_start_time Der geschätzte Zeitstempel für den Live-Stream, zu dem die Werbepause in die Wiedergabeliste eingefügt wird.

7. Schritt: Player-SDK-Ereignisse

Für alle Plattformen gibt das Player-SDK Ereignisse aus, wenn eine Werbepause wiedergegeben wird, und meldet, wann Werbung startet, läuft und endet. Nachfolgend finden Sie eine allgemeine Übersicht über die verfügbaren Ereignisse und die jeweiligen Zeitpunkte:

Ereignis Nutzlast Auslöser
Werbepause gestartet AdBreak Erstes Segment der Werbepause
Werbemittel gestartet AdCreative Erstes Segment des jeweiligen Werbemittels
Aktualisierung der Werbezeit AdTimeUpdate Jede Sekunde während der Wiedergabe einer Werbung
Werbemittel beendet AdCreative Letztes Segment des jeweiligen Werbemittels
Werbepause beendet AdBreak Erstes Inhaltssegment nach der Pause

Die jeweiligen Namen der Ereignisse und Nutzdaten für die einzelnen Plattformen finden Sie in der Dokumentation zum Player-SDK:

Nachfolgend finden Sie ein Beispiel dafür, wie Sie mithilfe von Werbeereignissen im Web-SDK eine einfache UI-Komponente zum Werbe-Countdown während einer Werbepause erstellen:

// State let podLength = 0; let podIndex = 0; let remainingSeconds = 0; // Fired every second during the ad break player.addEventListener(PlayerEventType.AD_TIME_UPDATE, (payload) => { podLength = payload.podLength; podIndex = payload.podIndex; remainingSeconds = Math.round(payload.creativeDuration - payload.creativeElapsed); const text = `Ad ${podIndex} of ${podLength} · ${remainingSeconds}s remaining` // Ad 1 of 2 · 20s remaining console.log('Ad countdown text', text); UpdateAdOverlay(text); }); // Fired when the ad break ends player.addEventListener(PlayerEventType.AD_BREAK_ENDED, (payload) => { hideAdOverlay(); });

Werbemarkierungen in aufgezeichneten Inhalten

Wenn ein Live-Stream mithilfe der automatischen Aufzeichnung in Amazon S3 aufgezeichnet wird, erstellt IVS eine VOD-Wiedergabeliste und schreibt diese in S3. Diese enthält SCTE-35-Werbemarkierungen an den Stellen, an denen während des Live-Streams Werbung ausgelöst wurde. Details dazu finden Sie unter SSAI-Wiedergabeliste – Referenz.

Zuschauererlebenis

Wenn Sie eine Werbepause einfügen, blendet MediaTailor standardmäßig Werbung für alle Zuschauer ein. Wenn Sie für Streams Token zur Wiedergabeautorisierung nutzen, können Sie Zuschauer vom Empfang von Werbung ausschließen, indem Sie dem JWT-Token zur Wiedergabeautorisierung den Claim "aws:ads-opt-out": true hinzufügen.

Beginnen Zuschauer mitten in einer Werbepause mit dem Streaming, rundet IVS die Dauer der Werbepause auf das nächste Viertel auf. Beispiel: Ein Zuschauer, der 35 Sekunden vor Ende einer 60-sekündigen Werbepause hinzukommt, sieht eine 45-sekündige Werbepause.

Wenn Sie die Wiedergabekonfiguration für MediaTailor aktualisieren oder neue Werbung hinzufügen, sehen die Zuschauer bei der ersten Anforderung einer Werbepause möglicherweise keine Werbung, da MediaTailor die Werbung zuerst transkodieren muss. Nach einigen Minuten führen nachfolgende Aufrufe von InsertAdBreak dazu, dass die Zuschauer Werbung sehen. Diese Transcodes werden in den Transcode-Protokollen von MediaTailor aufgezeichnet.

Parameter für die Zuschauerverfolgung

Beim Konfigurieren eines Ad Decisioning Servers (ADS) in der Wiedergabekonfiguration für Elemental MediaTailor können Sie mithilfe von Vorlagen Parameter an den ADS übergeben (siehe MediaTailor – Übergeben von Parametern an den ADS). Bei IVS-SSAI können Sie Parameter für jeden Zuschauer übergeben, und zwar mithilfe des Tokens zur Wiedergabeautorisierung für den jeweiligen Benutzer. Dazu fügen Sie einen Claim mit dem folgenden Format hinzu:

"aws:ads-player-params": { "key1": "value1", "key2": "value2" }

Diese Parameter werden an Elemental MediaTailor übergeben, um als Vorlagenvariablen [player_params.key1] und [player_params.key2] ausgefüllt zu werden. Schlüssel, die Sie in diese Liste einfügen, haben immer die Vorlagenparameter player_params als Namespace.

Die Gesamtgröße der Nutzdaten für alle Schlüssel und Werte zusammen ist auf 1 000 Byte begrenzt.

Berichtsmodus

Wenn ein Zuschauer Werbung sieht, kann der Client oder Server Beacons senden, die den Wiedergabefortschritt der einzelnen Werbemittel anzeigen. Standardmäßig verarbeitet MediaTailor das Beaconing auf der Serverseite. Den Berichtsmodus können Sie steuern, indem Sie dem Token zur Wiedergabeautorisierung den folgenden Claim hinzufügen:

"aws:ads-reporting-mode": "CLIENT" | "SERVER"

Der Standardwert ist SERVER. Bei der Einstellung SERVER sendet MediaTailor Beacons auf der Serverseite. Bei der Einstellung CLIENT ist serverseitiges Beaconing deaktiviert und die Tracking-Daten werden im Feld metadata.trackingData des Ereignisses adBreakStarted des IVS-Player-SDK bereitgestellt. Das IVS-Player-SDK ruft keine Beacon-URLs auf.

Bekannte Probleme

  • IVS-Werbung funktioniert nicht, wenn das containerFormat des IVS-Kanals auf FRAGMENTED_MP4 eingestellt ist. Bei Aufrufen von UpdateChannel und CreateChannel wird ein Validierungsfehler zurückgegeben, wenn das FMP4-Containerformat bei einer Werbekonfiguration verwendet wird.

  • Während der Wiedergabe von Werbung kann der Wechsel zwischen dem Modus mit adaptiver Bitrate und der manuellen Qualitätsauswahl dazu führen, dass der Player einfriert oder Pufferprobleme auftreten.

  • Bei Streams, die länger als 12 Stunden dauern und bei denen es zu Starvation (Puffer-Leerlauf) kommt, kann es zu Abweichungen beim Datum und der Uhrzeit des Programms kommen. Das führt dazu, dass den Zuschauern keine Werbung angezeigt wird. Das Problem lässt sich dadurch umgehen, dass der Broadcaster den Stream neu startet.

SSAI-Wiedergabeliste – Referenz

Live-Varianten-Wiedergabeliste mit SSAI

Wenn Werbung in den Stream eingefügt wird, fügt IVS die unten dokumentierten Tags vor den Werbesegmenten ein.

1. Deklaration der eingefügten Werbung

#EXT-X-DATERANGE:ID="stitched-ad-1765566299-20000000000",CLASS="live-video-net-stitched-ad",START-DATE="2025-12-12T19:04:59.079Z",DURATION=20.000,X-NET-LIVE-VIDEO-AD-AD-BREAK-ID="test"
Attribut Beschreibung
ID

Format: stitched-ad-{timestamp}-{duration}

{timestamp}: Unix-Zeitstempel des Werbestarts

{duration}: Dauer der Werbung als Ganzzahl in Nanosekunden

Typ: Zeichenfolgen-Array

CLASS Immer live-video-net-stitched-ad für SSAI-Werbung.
START-DATE Programmdatum/-uhrzeit des Werbebeginns nach ISO 8601.
DURATION Länge der Werbung in Sekunden.
X-NET-LIVE-VIDEO-AD-AD-BREAK-ID Die Werbepausen-ID, die von IVS bei Aufruf des Vorgangs InsertAdBreak zurückgegeben wird.

2. Änderung der Streamquelle

#EXT-X-DATERANGE:ID="source-1765566299",CLASS="live-video-net-stream-source",START-DATE="2025-12-12T19:04:59.079Z",END-ON-NEXT=YES,X-NET-LIVE-VIDEO-STREAM-SOURCE="0f262e65-a709-4ef1-8741-e82d936c"
Attribut Beschreibung
CLASS Immer live-video-net-stream-source.
START-DATE / END-ON-NEXT Zeitmetadaten für den Quellbereich.
X-NET-LIVE-VIDEO-STREAM-SOURCE Hinweis an den Player, dass sich die Videoquelle ändert. Der Wert ist „live“ für Hauptinhalte oder eine eindeutige ID für Werbeinhalte.

3. Markierung für Diskontinuität

#EXT-X-DISCONTINUITY

Standard-HLS-Tag, das signalisiert, dass sich die Kodierungsparameter zwischen dem Live-Stream und dem Werbeninhalt ändern können.

Werbesegmente

#EXT-X-PROGRAM-DATE-TIME:2025-12-12T19:04:59.079Z #EXTINF:2.000,0f262e65-a709-4ef1-8741-e82d936c https://4ce388b1cf28.j.cloudfront.hls.live-video.net/v1/segment/CvsCse8Qbs5DU_aRmrVLd72_nK9lo9xS1KjD115LsIXcsD27JfLfkSuamLUivqOTrfHUeGf6Zmx_c9rhq0btTOu7E4F1DaU8knNoebLq6FlKp6q8ysaQdEA10gKCNP92oAQ_0DGLInY462O9HUxgtk5KHj23ZjPhVCxIh3DjWqwaevDci1_q7dYL55rgSKd11SfpsGSS9Yup4g5dfzyGhfz6Y2Skaj34JtoVyd8Nxlppc4jDlZl-6j7YM1i2qdUcM3VNWrZrxCisBXgOPtI3vFdeNcNjPzVdOGjMz5cXcQIp8YOCwnkdkomhn_3xxmB1Zngl3QPao6-oPsjH3qVcMOCuKfKZSmRJGFLvkrO1PefV5ya3eUvihXCMvDE-81EmGp5q9ErEgFpz06rMDbYFWb3z9H8X0t8KzvGDOaqKTYHZ0lgEV-fULeDQ76pDy_OVPwhO2vJMxBpfdQ_IeB1QUK2wJmXJ96Mvv0C2dcb0F7zE3lr_iBGemUjwmb7JmBoM3HdJbpV0TGp8C6vhIAEqCXVzLXdlc3QtMjD3DQ.ts?dna=CmanuVzG9F6kGS2X7ThbGZyZPHWgX2TiBlBMYsvGWLcWaLWyntTaWRp5D9qjZsrGKkzdwoLNY4pri6ZgpxnzqLqWvhcP6zoGu8vifP5NxPgiNKMmYdUmQrqTAf7jbauvE3c6B9ebptAaDEkrbrnG1qF8Cv3kbiABKgl1cy13ZXN0LTIw9w0
Attribut Beschreibung
EXT-X-PROGRAM-DATE-TIME Zeitstempel des Segments.
EXTINF

Format: {duration},{tag}

{duration}: Segmentlänge in Sekunden.

{tag}: Kennung der Quelle. Für Live-Inhalte ist dies immer live. Für Werbeinhalte ist dies eine von MediaTailor bereitgestellte UUID, die die Transkodierung des Werbemittels eindeutig identifiziert

Segment-URL Von IVS gehosteter Endpunkt mit verschlüsselten Informationen über das Segment und dessen Speicherort in IVS-Caches.

VOD-Varianten-Wiedergabeliste mit SSAI

Wenn ein Live-Stream aufgezeichnet wird, erstellt IVS eine VOD-Wiedergabeliste und schreibt diese in S3. Diese enthält SCTE-35-Werbemarkierungen an den Stellen, an denen während des Live-Streams Werbung ausgelöst wurde. Um Werbung während der VOD-Wiedergabe einzublenden, stellen Sie diese IVS-Wiedergabeliste über MediaTailor bereit, das für das Einfügen der Werbesegmente in die Wiedergabeliste zuständig ist. MediaTailor ersetzt die ursprünglichen VOD-Segmente während der Werbepause durch Werbesegmente.

1. Markierung für den Start der Werbepause (SCTE35-OUT)

#EXT-X-DATERANGE:ID="12345678",START-DATE="2025-12-06T00:45:45.723Z",PLANNED-DURATION=20.0,SCTE35-OUT=0xFC302000000000000000FFF00F05F8E7AEFC7FFFFE001B7740000000000000340CFD88
Attribut Beschreibung
ID Eindeutige Kennung für die Werbepause. Hiermit werden die Start- und Endmarkierungen korreliert.
START-DATE Programmdatum/-uhrzeit des Beginns der Werbepause nach ISO 8601.
PLANNED-DURATION Erwartete Dauer der Werbepause in Sekunden.
SCTE35-OUT SCTE-35-Markierung, die den Start der Werbepause signalisiert.

2. Werbesegmente (von MediaTailor eingefügt)

#EXTINF:2.0, ../../../../segment/b2857627df9428679e888ee8daa979d0b7559801/gk-test-ivs-vod/bd0c7d90-a47c-4a91-b5ec-7d0f9897049b/0/3
Attribut Beschreibung
EXTINF Dauer des Werbesegments in Sekunden.
Segment URL Relativer Pfad des von MediaTailor gehosteten Werbesegments.

3. Markierung für das Ende der Werbepause (SCTE35-IN)

#EXT-X-DATERANGE:ID="12345678",START-DATE="2025-12-06T00:45:45.723Z",END-DATE="2025-12-06T00:46:07.889Z",DURATION=20.0,SCTE35-IN=0xFC302000000000000000FFF00F05F8E7AEFC7F7FFE001B7740000000000000C23E5851
Attribut Beschreibung
ID Gleiche ID wie für die Startmarkierung. Verknüpft die beiden.
START-DATE Ursprüngliche Startzeit der Werbepause (entspricht der Startmarkierung).
END-DATE Zeitstempel nach ISO 8601 für das Ende der Werbepause.
DURATION Tatsächliche Dauer der Werbepause in Sekunden.
SCTE35-IN SCTE-35-Markierung, die das Ende der Werbepause signalisiert.