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à.
Esempio 3: metadati contestuali
Questa sezione fornisce JSONata espressioni per modelli comuni quando si lavora con le risposte di inferenza GetMetadata elementale. Usali nel Output blocco della tua AWS_SERVICE_REQUEST funzione.
Nota
GetMetadatarestituisce un items array in cui ogni articolo rappresenta un'immagine analizzata con categorie di IAB tassonomia e valutazioni della sicurezza GARM del marchio. Quando la finestra temporale della richiesta si estende su più sequenze, la risposta include più elementi. Le espressioni nelle sezioni seguenti gestiscono questo problema aggregando tutti gli scatti.
Per lo schema completo di GetMetadata risposta di Elemental Inference, consulta il riferimento all'API Elemental Inference.
Crea la finestra temporale della query
Usa la seguente espressione per il Body campo della tua AWS_SERVICE_REQUEST funzione:
{%'{"outputName": "my-contextual-output", "timeSpecification": {"ptsBased": {"startPts": ' & $string(($exists(inference.previousBreakEndPts) and inference.previousBreakEndPts > inference.pts - 30 * inference.timescale ? inference.previousBreakEndPts : inference.pts - 30 * inference.timescale)) & ', "endPts": ' & $string(inference.pts + 1) & ', "timescale": ' & $string(inference.timescale) & '}}, "parameters": {"contextualMetadata": {}}}' %}
Questa espressione seleziona la più recente di inference.previousBreakEndPts e un lookback di 30 secondi, assicurando che la finestra di interrogazione non superi mai i 30 secondi. Se non inference.previousBreakEndPts è disponibile (ad esempio, la prima interruzione dell'annuncio), per impostazione predefinita l'espressione è il lookback di 30 secondi.
Nota
my-contextual-outputSostituiscila con il nome dell'output contestuale dei metadati del feed Elemental Inference.
Estrai IAB ID di categoria
{%response.statusCode = 200 ? $join($distinct(response.body.items.metadata.contextualMetadata.iabTaxonomy.categories.uniqueId), ',') : ''%}
Risultato: "641,645,324" — ID univoci della tassonomia dei IAB contenuti, adatti per essere passati come parametro di interrogazione (ad esempio,iab_cats=641,645,324).
Estratto IAB percorsi di categoria
{%response.statusCode = 200 ? $join($distinct(response.body.items.metadata.contextualMetadata.iabTaxonomy.categories.($join(path, ' > '))), '|') : ''%}
Risultato: "Genres > Animation & Anime|Genres >
Family/Children|Entertainment > Movies" — percorsi tassonomici leggibili dall'uomo.
Estratto contrassegnato FATTORIA categorie
{%response.statusCode = 200 ? $join($distinct(response.body.items.metadata.contextualMetadata.garm.suitability.categories[flagged = true].category), ',') : ''%}
Risultato: "ILLEGAL_DRUGS_TOBACCO_ALCOHOL" — categorie da escludere dal targeting degli annunci o per segnalare problemi di sicurezza del marchio al server di decisione pubblicitaria.
Determina il massimo FARE MALE livello di rischio
{%response.statusCode = 200 and $exists(response.body.items) ? ($names := ['NONE','LOW','MEDIUM','HIGH']; $flagged := response.body.items.metadata.contextualMetadata.garm.suitability.categories[flagged = true].risk; $scores := $map($flagged, function($r){ $r = 'HIGH' ? 3 : $r = 'MEDIUM' ? 2 : $r = 'LOW' ? 1 : 0 }); $count($scores) > 0 ? $names[$max($scores)] : 'NONE') : ''%}
Risultato: "MEDIUM" — il livello di rischio peggiore per tutte le foto e le categorie analizzate. GARM Restituisce una stringa vuota se la richiesta fallisce o manca il corpo della risposta, in modo che i dati mancanti non vengano segnalati come. NONE
Verifica la sicurezza del marchio
{%response.statusCode = 200 and $exists(response.body.items) ? $string($not($exists(response.body.items.metadata.contextualMetadata.garm.suitability.categories[flagged = true]))) : ''%}
Risultato: "false" se una GARM categoria è contrassegnata, "true" se il contenuto è sicuro per il marchio. Restituisce una stringa vuota se la richiesta fallisce o manca il corpo della risposta.
Importante
La $exists(response.body.items) guardia è obbligatoria. Una risposta può restituire il codice di stato 200 mentre response.body ènull, ad esempio, quando il corpo supera i 20.000 caratteri o non è un JSON valido. Senza la protezione, l'espressione restituisce "true" e riporta il contenuto come sicuro per il marchio anche se le classificazioni non sono mai state ricevuteGARM.
Segnale contestuale combinato
{%response.statusCode = 200 ? $string({'categories': $distinct(response.body.items.metadata.contextualMetadata.iabTaxonomy.categories.($join(path, ' > '))), 'category_ids': $distinct(response.body.items.metadata.contextualMetadata.iabTaxonomy.categories.uniqueId), 'garm_flagged': $distinct(response.body.items.metadata.contextualMetadata.garm.suitability.categories[flagged = true].category)}) : ''%}
Risultato: una stringa JSON che combina tutti i segnali contestuali in un unico payload strutturato.
Per-shot dettaglio
{%response.statusCode = 200 ? $string(response.body.items.{'pts': pts, 'categories': metadata.contextualMetadata.iabTaxonomy.categories.($join(path, ' > ')), 'garm_flagged': metadata.contextualMetadata.garm.suitability.categories[flagged = true].category}) : ''%}
Risultato: una serie di oggetti per scatto che preservano il contenuto in base al quale PTS ha attivato le classificazioni. Da utilizzare quando la logica decisionale degli annunci richiede una granularità temporale.
Suggerimenti e best practice
Utilizza i seguenti suggerimenti per creare espressioni di output per le risposte di Elemental Inference.
-
Controllate sempre
response.statusCodeprima di processare il corpo. Se la chiamata fallisce,response.bodyènull. -
$distinct()Da utilizzare per deduplicare le categorie in più scatti. -
Elemental Inference restituisce più IAB categorie per scatto e una serie di categorie relative alla sicurezza del GARM marchio. Per i limiti attuali, consulta la documentazione di Elemental Inference.
-
Quando la finestra temporale si estende su più scatti, la risposta contiene più elementi nell'array.
items -
La dimensione massima della risposta è di 20.000 caratteri. Se ricevi risposte troncate, riduci la finestra temporale.
-
Utilizza le chiavi
temp.*di output quando esegui il concatenamento con altre funzioni in aSEQUENTIAL_EXECUTOReplayer_params.*quando passi i valori direttamente all'URL del server di decisione dell'annuncio. -
Per l'elenco completo delle JSONata funzioni e degli operatori supportati, consultaJSonata riferimento all'espressione per le funzioni.
Per la guida completa alla configurazione, compresi i prerequisiti e le politiche relative alle risorse, vedereIntegrazione con Elemental Inference. Per il riferimento al tipo di funzione, vedereAWS richiesta di servizio.