Este documento complementa la documentación de la API de reservas digitales de Triton ("BAPI").
El motor de distribución de anuncios de Triton Digital hace coincidir criterios utilizando un lenguaje muy similar al del druida. Los criterios se expresan en formato JSON y admiten múltiples niveles de operadores.
El objeto es compatible con la sintaxis descrita a continuación.
El criterio Y/O
El criterio y/o toma una lista de criterios en una matriz, definida en la dimensión campos . (Plural; nótese la "s" en el "campos.")
Example: AND
{
"type":"and"
"fields":[{<criteria>},{<criteria>}]
}
Example: OR
{
"type":"or"
"fields":[{<criteria>},{<criteria>}]
}
El criterio NO
El criterio not toma un criterio definido en la dimensión de campo. (Singular; sin "s" en "campo").
{
"type":"not",
"field":{<criteria>}
}
IGUAL
Define un criterio en el que los valores deben coincidir. Se ignoran mayúsculas y minúsculas cuando coinciden los valores. ("tomate" = "TomaTE").
Value debe especificarse como String, incluso si el valor es numérico.
{
"type":"equals",
"dimension":"city-geonames-id",
"value":"6077243"
}
ESTÁDEFINIDO
Define un criterio en el que una dimensión determinada debe tener un valor. Lo más probable es que se utilice junto con criterios iguales y vinculados .
{
"type":"isDefined",
"dimension":"age"
}
EN
Define criterios en los que puede coincidir una lista de valores. Debe coincidir, al menos, un elemento de la lista para que los criterios sean verdaderos. (Plural; nótese la "s" en "valors.")
Los valores deben especificarse como Strings, incluso si los valores son numéricos.
{
"type":"in",
"dimension":"dma",
"values":["631", "734", "724"]
}
LÍMITE
Los límites representan rangos de números. Un límite debe especificar al menos el límite inferior o superior. Un límite es inclusivo.
Se aplicará una validación básica con el fin de garantizar:
"inferior" debe ser inferior al "superior".
"inferior" y "superior" deben ser enteros positivos.
Como mínimo, debe especificarse el "inferior" o "superior".
# 18+
{
"type":"bound",
"dimension":"age",
"lower":18
}
# 40-49
{
"type":"bound",
"dimension":"age",
"lower":40,
"upper":49
}
ESPACIAL
Espacial representa un grupo de propiedades para describir una coordenada. Actualmente, solo la dimensión de coordenadas admite este tipo. El radio se expresa en kilómetros.
{
"type": "spatial",
"dimension": "coordinates",
"bound": {
"type": "radius",
"coords": [45.5376917, -73.9279362],
"radius": 10
}
}
Nota: "coords" = [<latitud>, <longitud>]
Ejemplo "todo en uno"
Este formato permite aplicar la focalización utilizando cualquier lógica y/o no que sea necesaria.
A continuación, se presenta un ejemplo que usa todas las nociones descritas anteriormente:
Haga clic para desplegar an example that uses all notions described above:
{
"type": "or",
"fields": [
{
"type": "and",
"fields": [
{
"type": "and",
"fields": [
{
"type": "or",
"fields": [
{
"type": "equals",
"dimension": "agent-device",
"value": "android-generic"
}
]
}
]
},
{
"type": "and",
"fields": [
{
"type": "or",
"fields": [
{
"type": "equals",
"dimension": "country",
"value": "US"
}
]
}
]
},
{
"type": "and",
"fields": [
{
"type": "or",
"fields": [
{
"type": "bound",
"dimension": "age",
"lower": 18
}
]
}
]
}
]
},
{
"type": "and",
"fields": [
{
"type": "and",
"fields": [
{
"type": "or",
"fields": [
{
"type": "equals",
"dimension": "dmp-segments",
"value": "71"
}
]
}
]
}
]
}
]
}
Dimensiones de dirección
Para que la interfaz de usuario de Tap procese correctamente las reglas de direccionamiento, se debe respetar la siguiente estructura en la API de reservas (no aplicable a la API de Avails):
{
"_comment": "Ruleset Level: Multiple Rulesets can be created, each evaluated as OR",
"type": "or",
"fields": [
{
"_comment": "Within a Ruleset, each rule is evaluated as AND. Same dimension can be repeated but usually different dimensions are used at this level",
"type": "and",
"fields": [
{
"_comment": "Within a Rule, each value set to EXCLUDE is evaluated as AND."
"type": "and",
"fields": [
{
"_comment": "Within a Rule, each INCLUDE value is evaluated as OR. At this level we should always have the same logical dimension",
"type": "or",
"fields": [
{"type": "equals", "dimension": "postalcode", "value": "90210"},
{"type": "spatial", "dimension": "coordinates", "latitude": 40.5478735, "longitude": -74.3378837, "radius": 2}
}
]
}
]
}
]
}
]
}
Direccionamiento de contenido
Esquema: https://platformservices.streamtheworld.com/content-targeting/schemes/c.xml
Dimensión. | PosibleValor(es) | Tipo(s) compatible(s) | Validador / Notas | Vuelo | Calidad de anuncios | Exclusividad | Predicción (Forecasting) | Deal |
---|---|---|---|---|---|---|---|---|
estación | <id> | equivale, en | https://tritonsecurity.tritondigital.com/v2/docs#operation/search-stations (requiere token JWT Bearer) | Sí | Sí | Sí | Sí | Sí |
episode-id-rss | <cadena> | equivale, en | Sin validación Este valor es el resultado del ID RSS, cifrado con hash SHA256. | Sí | No | No | No | Sí |
publish-date-epoch-days | <número> | límite | Validación de LÍMITE básica. Se evalúa según pubDate | Sí | No | No | Sí | Sí |
publish-date-age-days | <número> | límite | Validación de LÍMITE básica. Se evalúa según pubDate | Sí | No | No | Sí | Sí |
content-tags | <cadena> | equivale, en | Sin validación Todas las "etiquetas" se evaluarán según esta dimensión. Lista de etiquetas encontradas en el esquema:
La coincidencia debe permitir instrucciones AND. | Sí | No | No | Sí | Sí |
etiquetas contextuales | <cadena> | equivale, en |
| Sí | No | No | Sí | No |
station-genre-shoutcast | <cadena> | equivale, en | API abierta: https://tritonsecurity.tritondigital.com/v2/docs#operation/get-genres (requiere token JWT Bearer) | Sí | No | No | Sí | No |
iab-v2-category | <cadena> | equivale, en | API abierta: | No | No | No | No | Sí |
parámetro de consulta content-language | <cadena> | equivale, en | API abierta: | No | No | No | No | Sí |
station-market | <cadena> | equivale, en | API abierta: https://tritonsecurity.tritondigital.com/v2/docs#operation/get-markets (requiere token JWT Bearer) | Sí | Sí | No | Sí | Sí |
station-group | <cadena> | equivale, en | API abierta: https://tritonsecurity.tritondigital.com/v2/docs#operation/get-groups (requiere token JWT Bearer) | Sí | Sí | No | Sí | Sí |
position-in-break | <cadena> | equivale, en | primero, último El valor "último" solo es válido para el método de distribución de podcast. | Sí | No | No | Sí | Sí |
delivery-method | <cadena> | en | Valores posibles: "streaming", "progresivo", "descargar" | No | No | No | No | Sí |
feed-type | <cadena> | en | Valores posibles: "Instream", "OnDemand", "Podcast" | No | No | No | No | Sí |
puesto | <cadena> | en | Valores posibles: "preroll", "midroll", "postroll" | No | No | No | No | Sí |
contrato de revendedor | <cadena> | equivale, en | Valores posibles: | Sí | No | No | Sí | No |
Direccionamiento de oyentes
Esquema: https://platformservices.streamtheworld.com/content-targeting/schemes/p.xml
Reproductor/dispositivo
Dimensión. | Posible(s) valor(es) | Tipo(s) compatible(s) | Validador | Vuelo | Calidad de anuncios | Exclusividad | Predicción (Forecasting) | Deal |
---|---|---|---|---|---|---|---|---|
agent | <cadena> | equivale, en | Sí | No | No | Sí | Sí | |
agent-family | <cadena> | equivale, en | Sí | No | No | Sí | Sí | |
agent-device | <cadena> | equivale, en | Sí |
| No | Sí | Sí | |
agent-device-family | <cadena> | equivale, en | Sí | No | No | Sí | Sí | |
agent-os | <cadena> | equivale, en | Sí | No | No | Sí | Sí | |
agent-platform | <cadena> | equivale, en | Sí | No | No | Sí | Sí | |
direccionables | <cadena> | en | Valores posibles: | No | No | No | No | Sí |
Compatible con OMID | <número> 1 = Compatible 0 = No compatible | en | No se puede utilizar si el delivery_method de vuelo es "En vivo" o "Podcast". | Sí | No | No | No | Sí |
Demografía
Dimensión. | Posible(s) valor(es) | Tipo(s) compatible(s) | Validador | Vuelo | Calidad de anuncios | Exclusividad | Predicción (Forecasting) | Deal |
---|---|---|---|---|---|---|---|---|
edad | 0-125 | equivale, en, límite | <código> | Sí | No | No | Sí | Sí |
género | m, f, o | equivale, en | <código> | Sí | No | No | Sí | Sí |
Geografía
Dimensión. | Posible(s) valor(es) | Tipo(s) compatible(s) | Validador / Notas | Vuelo | Calidad de anuncios | Exclusividad | Predicción (Forecasting) | Deal |
---|---|---|---|---|---|---|---|---|
in-market | <booleano> | equivale | verdadero, falso | Sí | No | No | Sí | Sí |
ip | <cadena> | equivale, en | Una IP IPV4 válida | Sí | No | No | No | Sí |
país | <cadena> | equivale, en | https://refdata.tritondigital.com/docs#operation/geov2-get-countries | Sí | No | No | Sí | Sí |
region-iso | <cadena> | equivale, en | https://refdata.tritondigital.com/docs#operation/geov2-get-country-regions | Sí | No | No | Sí | Sí |
city-geonames-id | <cadena> | equivale, en | https://refdata.tritondigital.com/docs#operation/geov2-get-region-children | Sí | No | No | Sí | Sí |
dma | <cadena> | equivale, en | https://refdata.tritondigital.com/docs#operation/geov2-get-country-regions | Sí |
| No | Sí | Sí |
all-msa | <cadena> | equivale, en | https://refdata.tritondigital.com/docs#operation/geov2-get-country-regions | Sí | No | No | Sí | Sí |
subregion-iso | <cadena> | equivale, en | https://refdata.tritondigital.com/docs#operation/geov2-get-region-children | Sí |
| No | Sí | Sí |
longitud, latitud, radio | - | Longitud: -180 a 180 Latitud: -90 a 90 radio: 1 a 20,000 KM Consulte el tipo espacial para obtener detalles. | Sí |
| No | Sí | Sí | |
postalcode | <cadena> | equivale, en | Sin validación. | Sí | No | No | Sí | Sí |
Otro
Dimensión. | Posible(s) valor(es) | Tipo(s) compatible(s) | Validador | Vuelo | Calidad de anuncios | Exclusividad | Predicción (Forecasting) | Deal |
---|---|---|---|---|---|---|---|---|
dmp-segments | <id> | equivale, en | El ID de segmento debe ser un ID encontrado en uno de los proveedores de DMP habilitados para el Publisher de la organización. La coincidencia debe permitir instrucciones AND. | Sí | No | No | Sí | Sí |
ttag | <cadena> | equivale, en | Sin validación La coincidencia debe permitir instrucciones AND. | Sí |
| No | Sí | Sí |
dist | <cadena> | equivale, en | La cadena debe tener entre 1 y 256 caracteres (no se aceptan valores vacíos). | Sí |
| No | Sí | Sí |
<parámetro personalizado> | <cadena> | equivale, en | Esquema de direccionamiento: Grupo de atributos = "custom-parameter" https://platformservices.streamtheworld.com/content-targeting/schemes/p.xml Los parámetros personalizados son dimensiones arbitrarias definidas en el esquema de direccionamiento si se solicitan. Para dirigir estas dimensiones, el atributo "group"="custom-parameter" debe proporcionarse junto con la dimensión. P. ej.:
| Sí | No | No | Sí para terminalid | Sí |
Direccionamiento por tiempo (es decir, horarios)
Dimensión. | Posible(s) valor(es) | Tipo(s) compatible(s) | Validador | Vuelo | Calidad de anuncios | Exclusividad | Predicción (Forecasting) | Deal |
---|---|---|---|---|---|---|---|---|
day-of-week | <número> 1 = Lunes | equivale, en, límite | de 1 a 7 | Sí | No | No | Sí | No |
hora | <número> | equivale, en, límite | de 0 a 23 | Sí | No | No | Sí | No |
Brand Safety
Dimensión. | Posible(s) valor(es) | Validador | Vuelo | Calidad de anuncios | Exclusividad | Predicción (Forecasting) | Deal |
---|---|---|---|---|---|---|---|
bs-adult | Relacionado = valor 1 Probablemente relacionado = valor 2 Probablemente no relacionado = valor 3 No relacionado = valor 4 | Validación básica de BOUND . | Sí | No | No | Sí | Sí |
bs-arms | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-crime | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-dealth-injury | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-drugs | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-hate-speech | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-military-conflict | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-obscenity | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-online-piracy | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-spam-hurtful-sites | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-terrorism | Validación de LÍMITE básica. | Sí | No | No | Sí | Sí | |
bs-tobacco | Validación básica de BOUND | Sí | No | No | Sí | Sí |
Cuando se utilizan valores inferiores y superiores , la mejor práctica es utilizar siempre 4 para los valores superiores. Por ejemplo:
"fields":[
{
"dimension":"bs-arms",
"lower":2,
"upper":4,
"type":"bound"
},
"fields":[
{
"dimension":"bs-drugs",
"lower":4,
"upper":4,
"type":"bound"
},
Comentarios
Envíe cualquier comentario o corrección a docs@tritondigital.com. (Esta es una dirección de correo electrónico SIN RESPUESTA que se usa solo para comentarios sobre documentación. Para obtener asistencia al cliente, vaya aquí).