Formato de las reglas de direccionamiento en las API de reserva y disponibilidad

Anterior Siguiente

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)

episode-id-rss

<cadena>

equivale, en

Sin validación

Este valor es el resultado del ID RSS, cifrado con hash SHA256.

No

No

No

publish-date-epoch-days

<número>

límite

Validación de LÍMITE básica.

Se evalúa según pubDate

No

No

publish-date-age-days

<número>

límite

Validación de LÍMITE básica.

Se evalúa según pubDate

No

No

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.

No

No

etiquetas contextuales

<cadena>

equivale, en

  • El tamaño de la lista es > 0 y <= 2000.

  • Es necesario que existan UUID siempre que existan para el editor en cuestión.

  • Solo se aplica a la distribución de podcasts. El direccionamiento contextual debe estar habilitado en la configuración de TAP del publisher. Más información: Direccionamiento contextual.

  • Para obtener una lista de etiquetas existentes, llame a este extremo: https://starship.api.tritondigital.com/api/tags/search

  • Documentación de endpoints.


No

No


No

station-genre-shoutcast

<cadena>

equivale, en

API abierta: https://tritonsecurity.tritondigital.com/v2/docs#operation/get-genres (requiere token JWT Bearer)

No

No

No

iab-v2-category

<cadena>

equivale, en

API abierta:
https://refdata.tritondigital.com/docs#operation/iab-get-categories(requiere token JWT Bearer)

No

No

No

No

parámetro de consulta content-language

<cadena>

equivale, en

API abierta:
https://yield-op-api.tritondigital.com/doc/openapi#operation/getLanguages(requiere token JWT Bearer)

No

No

No

No

station-market

<cadena>

equivale, en

API abierta: https://tritonsecurity.tritondigital.com/v2/docs#operation/get-markets (requiere token JWT Bearer)

No

station-group

<cadena>

equivale, en

API abierta: https://tritonsecurity.tritondigital.com/v2/docs#operation/get-groups (requiere token JWT Bearer)

No

position-in-break

<cadena>

equivale, en

primero, último

El valor "último" solo es válido para el método de distribución de podcast.

No

No

delivery-method

<cadena>

en

Valores posibles:

"streaming", "progresivo", "descargar"

No

No

No

No

feed-type

<cadena>

en

Valores posibles:

"Instream", "OnDemand", "Podcast"

No

No

No

No

puesto

<cadena>

en

Valores posibles:

"preroll", "midroll", "postroll"

No

No

No

No

contrato de revendedor

<cadena>

equivale, en

Valores posibles:
ID de contrato activos existentes para los cuales la organización es el revendedor. El modelo de precios de vuelo no debe ser CPS.


No

No


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

https://refdata.tritondigital.com/device/agents

No

No

agent-family

<cadena>

equivale, en

https://refdata.tritondigital.com/device/agent_families

No

No

agent-device

<cadena>

equivale, en

https://refdata.tritondigital.com/device/devices


No

No

agent-device-family

<cadena>

equivale, en

https://refdata.tritondigital.com/device/device_families

No

No

agent-os

<cadena>

equivale, en

https://refdata.tritondigital.com/device/os

No

No

agent-platform

<cadena>

equivale, en

https://refdata.tritondigital.com/device/platforms

No

No

direccionables

<cadena>

en

Valores posibles:
"Verdadero", "Falso"

No

No

No

No

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".

No

No

No

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>

No

No

género

m, f, o

equivale, en

<código>

No

No

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

No

No

ip

<cadena>

equivale, en

Una IP IPV4 válida

No

No

No

país

<cadena>

equivale, en

https://refdata.tritondigital.com/docs#operation/geov2-get-countries

No

No

region-iso

<cadena>

equivale, en

https://refdata.tritondigital.com/docs#operation/geov2-get-country-regions

No

No


(API de pronóstico de segunda generación)

city-geonames-id

<cadena>

equivale, en

https://refdata.tritondigital.com/docs#operation/geov2-get-region-children
https://refdata.tritondigital.com/docs#operation/geov2-get-subregion-cities

No

No


(API de pronóstico de segunda generación)

dma

<cadena>

equivale, en

https://refdata.tritondigital.com/docs#operation/geov2-get-country-regions


No

No

all-msa

<cadena>

equivale, en

https://refdata.tritondigital.com/docs#operation/geov2-get-country-regions

No

No

subregion-iso

<cadena>

equivale, en

https://refdata.tritondigital.com/docs#operation/geov2-get-region-children


No

No


(API de pronóstico de segunda generación)

longitud, latitud, radio

-

espacial

Longitud: -180 a 180

Latitud: -90 a 90

radio: 1 a 20,000 KM

Consulte el tipo espacial para obtener detalles.


No

No

postalcode

<cadena>

equivale, en

Sin validación.

No

No

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.

No

No

ttag

<cadena>

equivale, en

Sin validación

La coincidencia debe permitir instrucciones AND.


No

No

dist

<cadena>

equivale, en

La cadena debe tener entre 1 y 256 caracteres (no se aceptan valores vacíos).


No

No

<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.:

<attr-group name="custom-parameter"><attr name="terminalid" label="Terminal ID" type="int" minValue="1" maxValue="1000000"/></attr-group>


Para dirigir la dimensión "terminalid", la REGLA se verá de la siguiente manera:

{ "type": "equals", "dimension": "terminalid", "value": "1234", "group": "custom-parameter"}

No

No

Sí para terminalid

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

No

No

No

hora

<número>

equivale, en, límite

de 0 a 23

No

No

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 .

No

No

bs-arms

Validación de LÍMITE básica.

No

No

bs-crime

Validación de LÍMITE básica.

No

No

bs-dealth-injury

Validación de LÍMITE básica.

No

No

bs-drugs

Validación de LÍMITE básica.

No

No

bs-hate-speech

Validación de LÍMITE básica.

No

No

bs-military-conflict

Validación de LÍMITE básica.

No

No

bs-obscenity

Validación de LÍMITE básica.

No

No

bs-online-piracy

Validación de LÍMITE básica.

No

No

bs-spam-hurtful-sites

Validación de LÍMITE básica.

No

No

bs-terrorism

Validación de LÍMITE básica.

No

No

bs-tobacco

Validación básica de BOUND

No

No

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í).