Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejemplo 3: Metadatos contextuales
Esta sección proporciona JSONata expresiones para patrones comunes cuando se trabaja con GetMetadata respuestas de inferencia elemental. Utilízalas en el Output bloque de tu AWS_SERVICE_REQUEST función.
nota
GetMetadatadevuelve una items matriz en la que cada elemento representa una foto analizada con categorías de IAB taxonomía y evaluaciones de seguridad de la GARM marca. Cuando el intervalo de tiempo de la consulta abarca varias tomas, la respuesta incluye varios elementos. Las expresiones de las siguientes secciones solucionan este problema agrupando todas las tomas.
Para ver el esquema completo de GetMetadata respuestas de Elemental Inference, consulta la referencia de la API de Elemental Inference.
Crea la ventana de tiempo de consulta
Usa la siguiente expresión para el Body campo de tu AWS_SERVICE_REQUEST función:
{%'{"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": {}}}' %}
Esta expresión selecciona la más reciente inference.previousBreakEndPts y una retrospectiva de 30 segundos, garantizando que la ventana de consulta nunca supere los 30 segundos. Si no inference.previousBreakEndPts está disponible (por ejemplo, la primera pausa publicitaria), la expresión utiliza de forma predeterminada la retrospectiva de 30 segundos.
nota
my-contextual-outputSustitúyala por el nombre de la salida de metadatos contextuales de tu feed de Inferencia Elemental.
Extract IAB identificadores de categoría
{%response.statusCode = 200 ? $join($distinct(response.body.items.metadata.contextualMetadata.iabTaxonomy.categories.uniqueId), ',') : ''%}
Resultado: "641,645,324" — ID únicos de la taxonomía de IAB contenido, adecuados para pasarlos como parámetro de consulta (por ejemplo,iab_cats=641,645,324).
Extract IAB rutas de categorías
{%response.statusCode = 200 ? $join($distinct(response.body.items.metadata.contextualMetadata.iabTaxonomy.categories.($join(path, ' > '))), '|') : ''%}
Resultado: "Genres > Animation & Anime|Genres >
Family/Children|Entertainment > Movies" — rutas taxonómicas legibles por humanos.
Extracto marcado GRANJA categories
{%response.statusCode = 200 ? $join($distinct(response.body.items.metadata.contextualMetadata.garm.suitability.categories[flagged = true].category), ',') : ''%}
Resultado"ILLEGAL_DRUGS_TOBACCO_ALCOHOL": categorías para excluirlas de la segmentación de anuncios o para informar a tu servidor de decisiones publicitarias de los problemas relacionados con la seguridad de la marca.
Determina la más alta GARM nivel de riesgo
{%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') : ''%}
Resultado: "MEDIUM" — el nivel de riesgo más desfavorable en todas las vacunas y GARM categorías analizadas. Devuelve una cadena vacía si la solicitud falla o si falta el cuerpo de la respuesta, de modo que los datos faltantes no se notifican como tales. NONE
Compruebe la seguridad de la marca
{%response.statusCode = 200 and $exists(response.body.items) ? $string($not($exists(response.body.items.metadata.contextualMetadata.garm.suitability.categories[flagged = true]))) : ''%}
Resultado: "false" si alguna GARM categoría está marcada, "true" si el contenido es seguro para la marca. Devuelve una cadena vacía si la solicitud falla o si falta el cuerpo de la respuesta.
importante
El $exists(response.body.items) guardia es obligatorio. Una respuesta puede mostrar el código de estado 200 mientras response.body estánull, por ejemplo, cuando el cuerpo supera los 20 000 caracteres o no es un JSON válido. Sin la protección, la expresión se devuelve "true" e indica que el contenido es seguro para la marca, aunque las GARM clasificaciones nunca se hayan recibido.
Señal contextual combinada
{%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)}) : ''%}
Resultado: una cadena JSON que combina todas las señales contextuales en una única carga útil estructurada.
Per-shot detalle
{%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}) : ''%}
Resultado: conjunto de objetos por toma que preservan qué contenido y en qué PTS activó qué clasificaciones. Utilízalo cuando la lógica de toma de decisiones de anuncios necesite granularidad temporal.
Consejos y prácticas recomendadas
Usa los siguientes consejos para crear expresiones de salida para las respuestas de la inferencia elemental.
-
Compruébalo siempre
response.statusCodeantes de procesar el cuerpo. Si la llamada falla,response.bodyesnull. -
$distinct()Utilízalo para deduplicar categorías en varias tomas. -
Elemental Inference muestra varias IAB categorías por toma y un conjunto de categorías de seguridad de GARM marca. Para conocer los límites actuales, consulta la documentación de Elemental Inference.
-
Cuando la ventana de tiempo abarca varias tomas, la respuesta contiene varios elementos de la
itemsmatriz. -
El tamaño máximo de respuesta es de 20 000 caracteres. Si recibe respuestas truncadas, reduzca el intervalo de tiempo.
-
Usa las claves
temp.*de salida cuando te conectes con otras funciones de aSEQUENTIAL_EXECUTORyplayer_params.*cuando pases valores directamente a la URL del servidor de decisiones publicitarias. -
Para ver la lista completa de JSONata funciones y operadores compatibles, consultaJSONata referencia de expresiones para funciones.
Para obtener la guía de configuración completa, incluidos los requisitos previos y las políticas de recursos, consulteIntegración de la inferencia elemental. Para ver la referencia del tipo de función, consulteAWS solicitud de servicio.