View a markdown version of this page

Funzioni: ganci per il ciclo di vita - AWS Elemental MediaTailor

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzioni: ganci per il ciclo di vita

Un hook del ciclo di vita definisce quando esegue la funzione durante la riproduzione. MediaTailor Questa pagina è un riferimento completo per i campi di input, i namespace di output e le regole che regolano il flusso di dati in ogni hook.

Panoramica di

MediaTailor supporta quattro hook relativi al ciclo di vita:

  • PRE_SESSION_INITIALIZATIONsi attiva una volta quando uno spettatore inizia una nuova sessione. Usalo per operazioni di configurazione una tantum, ad esempio per recuperare segmenti di pubblico. A questo punto, non si è verificata alcuna interruzione pubblicitaria, quindi il contesto delle interruzioni pubblicitarie non è disponibile.

  • PRE_ADS_REQUESTviene attivato prima di ogni richiesta dell'ad decision server (ADS), una volta per interruzione dell'annuncio nello stream. Utilizzalo per personalizzare la richiesta ADS con dati di targeting, modificare l'URL ADS o aggiungere intestazioni.

  • POST_ADS_RESPONSEsi attiva dopo la MediaTailor ricezione e l'analisi della risposta ADS, inclusa la risoluzione dei reindirizzamenti wrapper Video Ad Serving Template (VAST). Utilizzalo per filtrare, riordinare, modificare o integrare gli annunci restituiti da ADS, prima di selezionare gli annunci da inserire. MediaTailor

  • PRE_MANIFEST_INSERTIONviene attivato al termine della personalizzazione dell'interruzione dell'annuncio, dopo la selezione degli annunci, i controlli di transcodifica e la politica di compilazione, immediatamente prima di inserire gli annunci nel manifesto MediaTailor . Utilizzalo per ispezionare o modificare il set di annunci finale, incluso l'inserimento di annunci aggiuntivi nelle interruzioni pubblicitarie non compilate.

Gli hook si differenziano per tempistica e portata. PRE_SESSION_INITIALIZATIONviene eseguito una volta e imposta i dati che persistono per l'intera sessione. PRE_ADS_REQUESTed POST_ADS_RESPONSE esegui ogni interazione ADS. PRE_ADS_REQUESTmodella la richiesta in uscita e POST_ADS_RESPONSE agisce sulla risposta analizzata prima della selezione dell'annuncio. PRE_MANIFEST_INSERTIONviene eseguito dopo il completamento della selezione e visualizza il set di annunci finale per tutte le nuove interruzioni pubblicitarie personalizzate in un'unica chiamata.

Importante

Gli hook PRE_ADS_REQUESTPOST_ADS_RESPONSE, e PRE_MANIFEST_INSERTION gli hook condividono un budget di esecuzione combinato di 2.000 ms per una singola richiesta. Questo budget si aggiunge al timeout di 2.000 ms di ciascun hook. Il timeout effettivo di un hook è il minore tra il suo timeout e il budget rimanente. Il tempo impiegato da un hook precedente riduce il tempo disponibile per gli hook successivi nella stessa richiesta. Se il budget rimanente è esaurito prima dell'inizio di un hook, MediaTailor salta quell'hook e continua a elaborare la richiesta senza di esso. PRE_SESSION_INITIALIZATIONviene eseguito durante l'inizializzazione della sessione e non fa parte del budget combinato. Per ulteriori informazioni, consulta Limits.

Nota

In questa documentazione, un'interruzione pubblicitaria viene anche definita un vantaggio. I nomi dei campi di immissione (ad esempio avail.availId eavails.avails) e le CloudWatch metriche utilizzano il avail modulo.

Riferimento al campo di immissione

La tabella seguente elenca i campi di input disponibili per ogni hook del ciclo di vita. Nella colonna Campo, la parent[].child notazione indica un campo di ogni elemento dell'array. parent

Nota

Gli PRE_MANIFEST_INSERTION hook POST_ADS_RESPONSE and espongono i campi di sessione in CamelCase (ad esempio,session.clientIp), mentre i primi due hook utilizzano snake_case (ad esempio,). session.client_ip I parametri del giocatore sono disponibili tramite il player_params namespace nei primi due hook e come oggetto negli altri due. session.playerParams

Campo Tipo PRE_SESSION_INITIALIZATION PRE_ADS_REQUEST POST_ADS_RESPONSE PRE_MANIFEST_INSERZIONE
session.idLong✓✓✓✓
session.uuidStringa✓✓✓✓
session.client_ipStringa✓✓✗✗
session.clientIpStringa✗✗✓✓
session.user_agentStringa✓✓✗✗
session.userAgentStringa✗✗✓✓
session.referer*Stringa✓✓✗✗
session.avail_duration_secsLong✗✓✗✗
session.avail_duration_msLong✗✓✗✗
session.streamingProtocolStringa✗✗✓✓
session.playerParamsOggetto✗✗✓✓
player_params.*Stringa✓✓✗✗
event.idStringa✓✓✓✓
event.hookStringa✓✓✓✓
event.timestampStringa✓✓✓✓
avail.indexInt✗✓✗✗
avail.randomLong✗✓✗✗
avail.source_content_time_epoch_msLong✗✓✗✗
avail.availId†Stringa✗✗✓✗
avail.durationSeconds†Numero✗✗✓✗
avail.startTime†Stringa✗✗✓✗
scte.event_idInt✗✓✗✗
scte.avail_numInt✗✓✗✗
scte.segmentation_event_idInt✗✓✗✗
scte.segmentation_type_idInt✗✓✗✗
scte.segmentation_upidStringa✗✓✗✗
scte.segmentation_upid.assetIdStringa✗✓✗✗
scte.segmentation_upid.cueData.keyStringa✗✓✗✗
scte.segmentation_upid.cueData.valueStringa✗✓✗✗
scte.unique_program_idInt✗✓✗✗
scte.archive_allowed_flagBooleano✗✓✗✗
scte.delivery_not_restricted_flagBooleano✗✓✗✗
scte.device_restrictionsInt✗✓✗✗
scte.no_regional_blackout_flagBooleano✗✓✗✗
scte.segment_numInt✗✓✗✗
scte.segments_expectedInt✗✓✗✗
scte.sub_segment_numInt✗✓✗✗
scte.sub_segments_expectedInt✗✓✗✗
scte.avails_expectedLong✗✓✗✗
asset.*Stringa✗✓✗✗
inference.enrichedBooleano✗✓✗✗
inference.feedIdStringa✗✓✗✗
inference.dataEndpointStringa✗✓✗✗
inference.ptsLong✗✓✗✗
inference.timescaleLong✗✓✗✗
inference.regionStringa✗✓✗✗
inference.previousBreakEndPtsLong✗✓✗✗
inference.parseErrorBooleano✗✓✗✗
adsRequest.urlStringa✗✓✓✗
adsRequest.methodStringa✗✓✓✗
adsRequest.headers.<key>Stringa✗✓✓✗
adsRequest.bodyStringa✗✓✗✗
adsResponse.responseTypeStringa✗✗✓✗
adsResponse.adsArray✗✗✓✗
adsResponse.ads[].adId‡Stringa✗✗✓✗
adsResponse.ads[].durationSecondsNumero✗✗✓✗
adsResponse.ads[].adSystemStringa✗✗✓✗
adsResponse.ads[].adTitleStringa✗✗✓✗
adsResponse.ads[].creativeIdStringa✗✗✓✗
adsResponse.ads[].sequenceInt✗✗✓✗
adsResponse.ads[].mediaFilesArray✗✗✓✗
adsResponse.ads[].mediaFiles[].urlStringa✗✗✓✗
adsResponse.ads[].mediaFiles[].mimeTypeStringa✗✗✓✗
adsResponse.ads[].mediaFiles[].widthInt✗✗✓✗
adsResponse.ads[].mediaFiles[].heightInt✗✗✓✗
adsResponse.ads[].mediaFiles[].bitrateInt✗✗✓✗
adsResponse.ads[].trackingEvents.<eventType>Array di stringhe✗✗✓✗
avails.availsArray✗✗✗✓
avails.avails[].availIdStringa✗✗✗✓
avails.avails[].durationSecondsNumero✗✗✗✓
avails.avails[].startTimeNumero✗✗✗✓
avails.avails[].mediaProtocolStringa (|) HLS DASH✗✗✗✓
avails.avails[].streamingModeStringa (LIVE|VOD)✗✗✗✓
avails.avails[].fillDurationSecondsNumero✗✗✗✓
avails.avails[].fillRateNumero (0—1)✗✗✗✓
avails.avails[].mutableBooleano✗✗✗✓
avails.avails[].adsArray✗✗✗✓
avails.avails[].ads[].adId§Stringa✗✗✗✓
avails.avails[].ads[].vastAdIdStringa✗✗✗✓
avails.avails[].ads[].creativeIdStringa✗✗✗✓
avails.avails[].ads[].insertionUuidStringa✗✗✗✓
avails.avails[].ads[].sequenceInAvailInt✗✗✗✓
avails.avails[].ads[].durationSecondsNumero✗✗✗✓
avails.avails[].ads[].adSystemStringa✗✗✗✓
avails.avails[].ads[].adTitleStringa✗✗✗✓
avails.avails[].ads[].mediaUrlStringa✗✗✗✓
avails.avails[].ads[].trackingEvents.<eventType>Array di stringhe✗✗✗✓
avails.avails[].ads[].mediaFilesArray✗✗✗✓
avails.avails[].skippedAdsArray✗✗✗✓
avails.avails[].skippedAds[].adIdStringa✗✗✗✓
avails.avails[].skippedAds[].vastAdIdStringa✗✗✗✓
avails.avails[].skippedAds[].durationSecondsNumero✗✗✗✓
avails.avails[].skippedAds[].creativeUrlStringa✗✗✗✓
avails.avails[].skippedAds[].reasonStringa✗✗✗✓

* session.referer è presente solo quando un'intestazione Referer è inclusa nella richiesta di inizializzazione della sessione. Usalo $exists(session.referer) per controllare prima di accedere.

† Il avail namespace è presente solo quando la risposta ADS si applica a una singola interruzione pubblicitaria. Non è presente per le risposte multi-break (VMAP) o per le risposte precaricate. $exists(avail)Da utilizzare per verificare prima di accedere.

‡ AtPOST_ADS_RESPONSE, adId è l'idattributo dell'<Ad>elemento VAST.

§ AtPRE_MANIFEST_INSERTION, adId è un identificatore di posizionamento interno. È stabile per un annuncio all'interno del relativo annuncio, ma non è l'ID dell'annuncio VAST e non è comparabile tra le interruzioni pubblicitarie o tra gli hook. Per i controlli di identità che comprendono interruzioni pubblicitarie o hook, utilizza vastAdId (l'idattributo dell'<Ad>elemento VAST) o. creativeId

Sugli stream DASH VOD, adTitle e adSystem sono a questo punto. null Usa vastAdId o creativeId nei predicati lì.