View a markdown version of this page

Inserimento di annunci lato server (SSAI) - Amazon IVS

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:

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 su FRAGMENTED_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: : stitched-ad-{timestamp}-{duration}

{timestamp}: timestamp Unix dell’inizio dell’annuncio

{duration}: durata dell’annuncio come numero intero in nanosecondi

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: : {duration},{tag}

{duration}: lunghezza del segmento in secondi.

{tag}: identificatore dell’origine. Per i contenuti in diretta, il valore è sempre live. Per i contenuti pubblicitari, si tratta di un UUID fornito da MediaTailor che identifica in modo univoco la transcodifica della risorsa pubblicitaria

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.