Inserimento di annunci lato server (SSAI)
L’inserimento di annunci lato server (SSAI) di Amazon IVS ti consente di monetizzare i tuoi flussi con annunci video. SSAI di IVS si integra con AWS Elemental MediaTailor, consentendoti di accedere a funzionalità come il processo decisionale relativo agli annunci, il targeting del pubblico e la personalizzazione. IVS offre un’operazione API per inserire interruzioni pubblicitarie nel tuo flusso in diretta, consentendoti di fornire ai creatori o agli operatori il controllo sulla pubblicazione degli annunci. IVS inserisce gli annunci direttamente nel flusso video. Ciò offre un’esperienza di visualizzazione senza interruzioni ed evita la complessa logica lato client. Per informazioni sui costi associati a SSAI, consulta Costi di IVS.
Nozioni di base su SSAI
Questo tutorial fornisce le informazioni di base sull’utilizzo dell’inserimento di annunci lato server (SSAI) di Amazon IVS. Alla fine di questo tutorial, avrai un canale IVS configurato per l’inserimento di annunci lato server e saprai come inserire interruzioni pubblicitarie nel tuo flusso in diretta. IVS SSAI si integra con AWS Elemental MediaTailor per gestire le decisioni relative agli annunci.
Passaggio 1: creazione di un canale IVS
Crea un canale IVS. Ti occorre l’URL di riproduzione del canale per configurare MediaTailor nel passaggio successivo. Dopo aver creato il canale, prendi nota dei seguenti valori:
-
ARN del canale: è necessario per aggiornare il canale in un secondo momento.
-
Prefisso URL di riproduzione: estrae il prefisso URL dall’URL di riproduzione (tutto ciò che precede /api/). Ad esempio, se l’URL di riproduzione è:
-
https://c17b3fb37fc9.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.ABcdef12ghIJ.m3u8
il prefisso è:
-
https://c17b3fb37fc9.us-west-2.playback.live-video.net/
-
-
Formato del container: deve essere impostato su flusso di trasporto (TS) MPEG.
Passaggio 2: creazione di una configurazione di riproduzione MediaTailor
Crea una configurazione di riproduzione AWS Elemental MediaTailor. Questa configurazione collega il tuo server di decisione degli annunci a IVS e consente di inerire annunci nei tuoi flussi.
La configurazione di riproduzione utilizza il prefisso dell’URL di riproduzione, comune a tutti i canali IVS dell’account e della Regione. Ciò significa che puoi utilizzare un’unica configurazione di riproduzione MediaTailor con più canali IVS.
Per istruzioni, consulta Creazione di una configurazione di riproduzione MediaTailor nella Guida per l’utente di AWS Elemental MediaTailor. Quando si crea la configurazione, sono necessarie le seguenti impostazioni per IVS SSAI:
| Impostazione | Ubicazione | Valore |
|---|---|---|
| URL del server per le decisioni relative agli annunci | Impostazioni obbligatorie | URL del server per le decisioni relative agli annunci |
| Origine del contenuto | Impostazioni obbligatorie | Prefisso URL dell’URL di riproduzione IVS; ad esempio, https://c17b3fb37fc9.us-west-2.playback.live-video.net |
| Modalità di inserimento | Dettagli di personalizzazione | PLAYER_SELECT |
Importante
Specifica l’origine del contenuto utilizzando solo il prefisso dell’URL di riproduzione del canale (che termina con live-video.net/), non l’URL completo. Se il formato non è corretto, la creazione di una configurazione dell’annuncio nel passaggio successivo non riesce e viene generato un errore di convalida.
Passaggio 3: creazione di una configurazione degli annunci IVS
Una configurazione degli annunci collega le tue risorse IVS alla configurazione di riproduzione MediaTailor. È possibile utilizzare una configurazione di riproduzione MediaTailor creata in qualsiasi Regione principale di IVS con una configurazione degli annunci in qualsiasi altra Regione principale di IVS. Le Regioni principali di IVS includono us-west-2, us-east-1, eu-west-1, eu-central-1, ap-northeast-1, ap-northeast-2 e ap-south-1.
Puoi riutilizzare una singola configurazione degli annunci su più canali.
Per creare una configurazione degli annunci (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"
Prendi nota del valore ARN della risposta. Questo valore servirà nella fase successiva.
Passaggio 4: aggiornamento del canale con la configurazione degli annunci
Aggiorna il tuo canale IVS per associarlo alla configurazione degli annunci che hai creato. Per aggiornare il canale (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"
Passaggio 5: avvio dello streaming
Usa l’endpoint di importazione e la chiave di streaming del tuo canale per avviare lo streaming.
Passaggio 6: inserimento di un’interruzione pubblicitaria
Quando il flusso è in diretta, richiama l’operazione InsertAdBreak per inserire un’interruzione pubblicitaria. Specifica l’ARN del canale e la durata (in secondi) dell’interruzione pubblicitaria.
Per inserire un’interruzione pubblicitaria (AWS CLI):
aws ivs insert-ad-break --channel-arn "arn:aws:ivs:us-west-2:123456789012:channel/ABcdef12ghIJ" --duration-seconds 30
Una volta restituito correttamente InsertAdBreak, puoi ricevere un evento EventBridge (Modifica dello stato di un’interruzione pubblicitaria IVS) che contiene un timestamp che indica l’ora prevista in cui l’interruzione pubblicitaria verrà inserita nelle playlist degli spettatori. Questo è il momento in cui l’emittente può ragionevolmente aspettarsi che gli annunci inizino a sostituire i contenuti. Se non è possibile inserire un annuncio (ad esempio, se il server per le decisioni relative agli annunci non restituisce un annuncio o gli annunci devono essere transcodificati da MediaTailor), viene invece mostrato il contenuto originale.
Importante
Non è possibile inserire interruzioni pubblicitarie aggiuntive mentre un’interruzione pubblicitaria esistente è ancora in corso. Le chiamate successive a InsertAdBreak restituiranno un ConflictException 409 fino al termine dell’interruzione pubblicitaria corrente.
Integrazione di EventBridge
Con SSAI, viene aggiunto un evento Modifica dello stato di un’interruzione pubblicitaria IVS (chiamato Interruzione pubblicitaria inserita) con i seguenti campi:
| Campo | Descrizione |
|---|---|
event_name |
Il nome dell’evento che viene emesso. |
channel_name |
Il nome del canale attivato dalla richiesta API InsertAdBreak. |
stream_id |
L’ID del flusso in diretta sul canale attivato dalla richiesta API InsertAdBreak. |
ad_break_id |
L’ID univoco associato all’interruzione pubblicitaria, che corrisponde all’ID dell’interruzione pubblicitaria nella risposta della richiesta InsertAdBreak iniziale. |
duration_seconds |
Il valore in secondi incluso nella richiesta InsertAdBreak e specificato dal cliente. |
target_start_time |
Il timestamp stimato per il flusso in diretta del momento in cui l’interruzione pubblicitaria viene inserita nella playlist. |
Passaggio 7: eventi dell’SDK del player
Su tutte le piattaforme, l’SDK del player evidenzia gli eventi quando viene riprodotta un’interruzione pubblicitaria, avvisando quando un annuncio inizia, avanza e si interrompe. Di seguito è riportato un riepilogo generale degli eventi disponibili e delle tempistiche:
| Evento | Payload | Trigger |
|---|---|---|
| Interruzione pubblicitaria iniziata | AdBreak | Primo segmento dell’interruzione pubblicitaria |
| Inizio del contenuto creativo pubblicitario | AdCreative | Primo segmento di ciascun contenuto creativo pubblicitario |
| Aggiornamento ora dell’annuncio | AdTimeUpdate | Ogni secondo durante la riproduzione dell’annuncio |
| Termine del contenuto creativo pubblicitario | AdCreative | Ultimo segmento di ciascun contenuto creativo pubblicitario |
| Interruzione pubblicitaria terminata | AdBreak | Primo segmento di contenuto dopo l’interruzione |
Per i nomi specifici degli eventi e dei payload per ciascuna piattaforma, consulta la documentazione dell’SDK del player:
-
Web: consulta l’enumerazione PlayerEventType all’indirizzo https://aws.github.io/amazon-ivs-player-docs/latest/web/
-
Android: consulta la classe Player.Listener all’indirizzo https://aws.github.io/amazon-ivs-player-docs/latest/android/
-
IOS: consulta il protocollo IVSPlayerDelegate all’indirizzo https://aws.github.io/amazon-ivs-player-docs/latest/ios/
Di seguito è riportato un esempio di utilizzo degli eventi pubblicitari nell’SDK web per creare un semplice componente dell’interfaccia utente per il conto alla rovescia degli annunci durante un’interruzione pubblicitaria:
// 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(); });
Contrassegni pubblicitari nei contenuti registrati
Quando un flusso in diretta viene registrato utilizzando la registrazione automatica su Amazon S3, IVS genera e scrive una playlist VOD su S3 che include i contrassegni pubblicitari SCTE-35 nelle posizioni in cui sono stati attivati gli annunci durante il flusso in diretta. Per informazioni dettagliate, vedi Riferimento delle playlist SSAI.
Esperienza degli spettatori
Per impostazione predefinita, MediaTailor compone e consegna gli annunci a tutti gli spettatori quando inserisci un’interruzione pubblicitaria. Se utilizzi token di autorizzazione alla riproduzione per i tuoi flussi, puoi decidere di non distribuire annunci agli spettatori aggiungendo la dichiarazione "aws:ads-opt-out": true al token JWT di autorizzazione alla riproduzione.
Quando gli spettatori iniziano a visualizzare uno streaming durante un’interruzione pubblicitaria, IVS arrotonda la durata dell’interruzione stessa al quartile più vicino. Ad esempio, uno spettatore che inizia a visualizzare quando mancano 35 secondi alla fine di un’interruzione pubblicitaria di 60 secondi subirà un’interruzione pubblicitaria di 45 secondi.
Quando aggiorni la configurazione di riproduzione di MediaTailor o aggiungi nuovi annunci, gli spettatori potrebbero non vedere gli annunci la prima volta che richiedi un’interruzione pubblicitaria perché MediaTailor deve prima transcodificare gli annunci. Dopo alcuni minuti, le chiamate successive a InsertAdBreak faranno sì che gli spettatori vedano gli annunci. I log di transcodifica di MediaTailor registrano queste transcodifiche.
Parametri di tracciamento degli spettatori
Quando configuri un server per le decisioni relative agli annunci (ADS) nella tua configurazione di riproduzione di Elemental MediaTailor, puoi passare i parametri all’ADS utilizzando modelli (consulta Passaggio dei parametri da MediaTailor a ADS). Con IVS SSAI, puoi passare i parametri per ogni spettatore utilizzando il token di autorizzazione alla riproduzione per quell’utente, aggiungendo una dichiarazione con il seguente formato:
"aws:ads-player-params": { "key1": "value1", "key2": "value2" }
Questi parametri vengono passati a Elemental MediaTailor per essere compilati come variabili di modelli [player_params.key1] e [player_params.key2]. Le chiavi inserite in questo elenco hanno sempre il namespace come parametri del modello player_params.
La dimensione totale del payload per tutte le chiavi e i valori combinati è limitata a 1.000 byte.
Modalità di segnalazione
Quando lo spettatore guarda un annuncio, il client o il server può inviare beacon che indicano l’avanzamento della riproduzione per ogni contenuto creativo pubblicitario. Per impostazione predefinita, MediaTailor gestisce il beaconing lato server. Puoi controllare la modalità di segnalazione aggiungendo la seguente dichiarazione al token di autorizzazione alla riproduzione:
"aws:ads-reporting-mode": "CLIENT" | "SERVER"
Il valore predefinito è: SERVER. Se impostato su SERVER, MediaTailor invia beacon sul lato server. Se impostato su CLIENT, il beaconing lato server è disabilitato e i dati di tracciamento vengono forniti nel campo metadata.trackingData dell’evento adBreakStarted dell’SDK di IVS Player. L’SDK di IVS Player non richiama gli URL dei beacon.
Problemi noti
-
Gli annunci IVS non funzionano se il canale IVS
containerFormatè impostato suFRAGMENTED_MP4. Le chiamate a UpdateChannel e CreateChannel restituiranno un errore di convalida se con una configurazione dell’annuncio viene utilizzato il formato del container FMP4. -
Durante la riproduzione degli annunci, il passaggio dalla modalità bitrate adattivo alla selezione manuale della qualità può causare problemi di blocco e buffering nel player.
-
Per i flussi che durano più di 12 ore e che hanno subito un rallentamento, è possibile che la data e l’ora del programma cambino, impedendo così agli spettatori di ricevere annunci pubblicitari. La soluzione alternativa è che l’emittente riavvii il flusso.
Riferimento delle playlist SSAI
Playlist Live Variant con SSAI
Quando un annuncio viene inserito nel flusso, IVS inserisce i tag documentati di seguito prima dei segmenti pubblicitari.
1. Dichiarazione di annuncio unito
#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"
| Attributo | Descrizione |
|---|---|
ID |
Formato: :
Tipo: array di stringhe |
CLASS |
Sempre live-video-net-stitched-ad per gli annunci SSAI. |
START-DATE |
Data/ora del programma ISO 8601 in cui inizia l’interruzione pubblicitaria. |
DURATION |
Durata dell’annuncio in secondi. |
X-NET-LIVE-VIDEO-AD-AD-BREAK-ID |
L’ID dell’interruzione pubblicitaria restituito da IVS al momento della chiamata dell’operazione InsertAdBreak. |
2. Modifica dell’origine del flusso
#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"
| Attributo | Descrizione |
|---|---|
CLASS |
Sempre live-video-net-stream-source. |
START-DATE / END-ON-NEXT |
Metadati temporali per questo intervallo di origine. |
X-NET-LIVE-VIDEO-STREAM-SOURCE |
Indica al lettore che l’origine del video sta cambiando. Il valore è diretta per i contenuti principali o un ID univoco per i contenuti pubblicitari. |
3. Contrassegno di discontinuità
#EXT-X-DISCONTINUITY
Tag HLS standard che segnala che i parametri di codifica possono cambiare tra il flusso in diretta e il contenuto dell’annuncio.
Segmenti pubblicitari
#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
| Attributo | Descrizione |
|---|---|
EXT-X-PROGRAM-DATE-TIME |
Timestamp di questo segmento. |
EXTINF |
Formato: :
|
| URL del segmento | Endpoint ospitato da IVS contenente informazioni crittografate sul segmento e sulla sua posizione nelle cache IVS. |
Playlist VOD Variant con SSAI
Quando viene registrato un flusso in diretta, IVS genera e scrive una playlist VOD su S3 che include i contrassegni pubblicitari SCTE-35 nelle posizioni in cui sono stati attivati gli annunci durante il flusso in diretta. Per pubblicare annunci durante la riproduzione VOD, servi questa playlist IVS tramite MediaTailor, che è responsabile dell’unione dei segmenti degli annunci nella playlist. MediaTailor sostituisce i segmenti VOD originali durante l’interruzione pubblicitaria con i segmenti pubblicitari.
1. Contrassegno di inizio dell’interruzione pubblicitaria (SCTE35-OUT)
#EXT-X-DATERANGE:ID="12345678",START-DATE="2025-12-06T00:45:45.723Z",PLANNED-DURATION=20.0,SCTE35-OUT=0xFC302000000000000000FFF00F05F8E7AEFC7FFFFE001B7740000000000000340CFD88
| Attributo | Descrizione |
|---|---|
ID |
Identificatore univoco di questa interruzione pubblicitaria. Utilizzato per correlare i contrassegni di inizio e fine. |
START-DATE |
Data/ora del programma ISO 8601 in cui inizia l’interruzione pubblicitaria. |
PLANNED-DURATION |
Durata prevista dell’interruzione pubblicitaria in secondi. |
SCTE35-OUT |
Contrassegno SCTE-35 che segnala l’inizio dell’interruzione pubblicitaria. |
2. Segmenti pubblicitari (uniti da MediaTailor)
#EXTINF:2.0, ../../../../segment/b2857627df9428679e888ee8daa979d0b7559801/gk-test-ivs-vod/bd0c7d90-a47c-4a91-b5ec-7d0f9897049b/0/3
| Attributo | Descrizione |
|---|---|
EXTINF |
Durata (in secondi) del segmento pubblicitario. |
Segment URL |
Percorso relativo al segmento pubblicitario ospitato da MediaTailor. |
3. Contrassegno di fine dell’interruzione pubblicitaria (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
| Attributo | Descrizione |
|---|---|
ID |
Stesso ID del contrassegno iniziale. Collega i due. |
START-DATE |
Ora di inizio originale dell’interruzione pubblicitaria (uguale al contrassegno di inizio). |
END-DATE |
Timestamp ISO 8601 relativo al termine dell’interruzione pubblicitaria. |
DURATION |
Durata effettiva dell’interruzione pubblicitaria in secondi. |
SCTE35-IN |
Contrassegno SCTE-35 che segnala la fine dell’interruzione pubblicitaria. |