Mise en forme des règles de ciblage dans les API Réservation et Disponibilités

Précédent Suivant

Ce document accompagne la documentation de l’API de réservation Triton Digital (« BAPI »).

Le moteur de diffusion des publicités de Triton Digital effectue la mise en correspondance des critères en utilisant un langage très similaire à celui de Druid. Le critère est exprimé au format JSON et prend en charge plusieurs niveaux d’opérateurs.

L'objet est compatible avec la syntaxe décrite ci-dessous.

ET/OU

Le critère et/ou prend une liste de critères dans un tableau, défini dans la dimension fields . (Au pluriel ; notez le « s » dans le « champs. »)

Example: AND
{
"type":"and"
"fields":[{<criteria>},{<criteria>}]
}
 
Example: OR
{
"type":"or"
"fields":[{<criteria>},{<criteria>}]
}

NE PREND PAS

Le critère not prend en compte un critère défini dans la dimension field. (Singulier ; pas de « s » dans « champ ».)

{
 "type":"not",
 "field":{<criteria>}
}

ÉGAL

Utilise un critère dont les valeurs doivent correspondre. La casse des lettre n'est pas prise en compte lorsque les veleurs correspondent. (« tomates » = « TomaTES ».

La valeur doit être spécifiée sous forme de chaîne, même si elle est numérique.

{
 "type":"equals",
 "dimension":"city-geonames-id",
 "value":"6077243"
}

ESTDÉFINI

Définit un critère selon lequel une dimension donnée doit avoir une valeur. Très probablement utilisé en conjonction avec des critères égaux et liés .

{
 "type":"isDefined",
 "dimension":"age"
}

INCLUS

Utilise un critère où une liste de valeurs peut correspondre. Au moins un des éléments de la liste doit correspondre pour que le critère soit correct. (Au pluriel ; notez le « s » dans « valeurs. »)

Les valeurs doivent être spécifiées sous forme de chaînes, même si les valeurs sont numériques.

{
 "type":"in",
 "dimension":"dma",
 "values":["631", "734", "724"]
}

LIEN

Le Lien représente une plage de nombres. Une borne (« bound ») doit spécifier au moins la limite inférieure (« lower ») ou supérieure (« upper »). Une borne est inclusive.

Une validation de base sera appliquée afin de veiller à ce que :

  • « inférieur » soit inférieur à « supérieur ».

  • « inférieur » et « plus grand » doivent être des nombres entiers positifs.

  • Au moins un des paramètres « inférieur » ou « plus grand » doit être spécifié.

# 18+
{
 "type":"bound",
 "dimension":"age",
 "lower":18
} 

# 40-49
{
 "type":"bound",
 "dimension":"age",
 "lower":40,
 "upper":49
}

SPATIAL

Spatial représente un groupe de propriétés servant à définir une coordonnée. Seule la dimension des coordonnées (« coordinate ») prend actuellement en charge ce type de propriété. Le rayon est exprimé en kilomètres.

{
 "type": "spatial",
 "dimension": "coordinates",
 "bound": {
    "type": "radius",
    "coords": [45.5376917, -73.9279362],
    "radius": 10
 }
}

Note : "coords" = [<latitude>, <longitude>].

Exemple tout-en-un

Ce format permet d’appliquer le ciblage à l’aide de n’importe quelle logique et/ou/non nécessaire.

L'exemple ci-dessous utilise l'ensemble des notions décrites ci-avant :

Cliquez pour agrandir 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"
               }
             ]
           }
         ]
       }
     ]
   }
 ]
}

Dimensions de ciblage

Pour que l’interface utilisateur Tap rende correctement les règles de ciblage, la structure suivante doit être respectée dans l’API de réservation (ne s’applique pas aux disponibilités de l'API) :

{
 "_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}
               }
             ]
           }
         ]
       }
     ]
   }
 ]
}

Le ciblage de contenu

Schéma : https://platformservices.streamtheworld.com/content-targeting/schemes/c.xml

Dimension

Valeur(s) possible(s)

Type(s) pris en charge

Validateur / Remarques

Vague

Qualité des publicités

Exclusivité

Prévisions

Accord (Deal)

station

<id>

égal, inclus

https://tritonsecurity.tritondigital.com/v2/docs#operation/search-stations (requiert un jeton JWT Bearer)

Oui

Oui

Oui

Oui

Oui

episode-id-rss

<string>

égal, inclus

Sans validation

Cette valeur est le résultat de l'ID RSS, haché avec SHA256.

Oui

Non

Non

Non

Oui

publish-date-epoch-days

<nombre>

lien

Validation basique LIEN.

Évalue par rapport à pubDate

Oui

Non

Non

Oui

Oui

publish-date-age-days

<nombre>

lien

Validation basique LIEN.

Évalue par rapport à pubDate

Oui

Non

Non

Oui

Oui

content-tags

<string>

égal, inclus

Sans validation

Toutes les « balises » seront évaluées par rapport à cette dimension. Liste des balises figurant dans le schéma :

La correspondance devrait autoriser les déclarations de type AND (ET).

Oui

Non

Non

Oui

Oui

contextual-tags

<string>

égal, inclus

  • La taille de la liste est > 0 et <= 2000.

  • Les UUIDs fournis doivent exister pour l'éditeur donné.

  • S’applique uniquement à la diffusion de podcasts. Le ciblage contextuel doit être activé dans la configuration de TAP de l’éditeur. Pour plus d’informations : Ciblage contextuel.

  • Pour obtenir une liste des balises existantes, consultez ce point d'accès : https://starship.api.tritondigital.com/api/tags/search

  • Documentation relative au point d'accès.

Oui

Non

Non

Oui

Non

station-genre-shoutcast

<string>

égal, inclus

API ouverte : https://tritonsecurity.tritondigital.com/v2/docs#operation/get-genres (requiert un jeton JWT Bearer)

Oui

Non

Non

Oui

Non

iab-v2-category

<string>

égal, inclus

API ouverte :
https://refdata.tritondigital.com/docs#operation/iab-get-categories(nécessite le jeton JWT Bearer)

Non

Non

Non

Non

Oui

content-language (langue du contenu)

<string>

égal, inclus

API ouverte :
https://yield-op-api.tritondigital.com/doc/openapi#operation/getLanguages(nécessite le jeton JWT Bearer)

Non

Non

Non

Non

Oui

station-market

<string>

égal, inclus

API ouverte : https://tritonsecurity.tritondigital.com/v2/docs#operation/get-markets (requiert un jeton JWT Bearer)

Oui

Oui

Non

Oui

Oui

station-group

<string>

égal, inclus

API ouverte : https://tritonsecurity.tritondigital.com/v2/docs#operation/get-groups (requiert un jeton JWT Bearer)

Oui

Oui

Non

Oui

Oui

position en pause

<string>

égal, inclus

premier, dernier

La valeur « dernier » est uniquement valable pour le mode de diffusion de podcasts.

Oui

Non

Non

Oui

Oui

delivery-method 

<string>

dans

Valeurs possibles :

"streaming", "progressive", "download"

Non

Non

Non

Non

Oui

feed-type

<string>

dans

Valeurs possibles :

"instream", "ondemand", "podcast"

Non

Non

Non

Non

Oui

 poste

<string>

dans

Valeurs possibles :

"preroll", "midroll", "postroll"

Non

Non

Non

Non

Oui

contrat-ditributeur

<string>

égal, inclus

Valeurs possibles :
Identifiants de contrat existants et actifs pour lesquels l’organisation est le distributeur. Le modèle de tarification des vagues ne doit pas être CPS.

Oui

Non

Non

Oui

Non

Ciblage par auditeur

Schéma : https://platformservices.streamtheworld.com/content-targeting/schemes/p.xml

Player/Device

Dimension

Valeur(s) possible(s)

Type(s) pris en charge

Validateur

Vague

Qualité des publicités

Exclusivité

Prévisions

Accord (Deal)

agent

<string>

égal, inclus

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

Oui

Non

Non

Oui

Oui

agent-family

<string>

égal, inclus

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

Oui

Non

Non

Oui

Oui

agent-device

<string>

égal, inclus

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

Oui


Non

Non

Oui

Oui

agent-device-family

<string>

égal, inclus

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

Oui

Non

Non

Oui

Oui

agent-os

<string>

égal, inclus

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

Oui

Non

Non

Oui

Oui

agent-platform

<string>

égal, inclus

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

Oui

Non

Non

Oui

Oui

addressable

<string>

dans

Valeurs possibles :
"True", "False"

Non

Non

Non

Non

Oui

omid-capable

<nombre>

1 = Pris en charge

0 = Non pris en charge

dans

Ne peut pas être utilisé si la delivery_method (méthode de diffusion) de la vague est « Live » (en direct) ou « Podcast ».

Oui

Non

Non

Non

Oui

Démographie

Dimension

Valeur(s) possible(s)

Type(s) pris en charge

Validateur

Vague

Qualité des publicités

Exclusivité

Prévisions

Accord (Deal)

age

0-125

égal, inclus, lien

<code>

Oui

Non

Non

Oui

Oui

sexe

m, f, o

égal, inclus

<code>

Oui

Non

Non

Oui

Oui

Géographie

Dimension

Valeur(s) possible(s)

Type(s) pris en charge

Validateur / Remarques

Vague

Qualité des publicités

Exclusivité

Prévisions

Accord (Deal)

in-market

<booléen>

égal

vrai, faux

Oui

Non

Non

Oui

Oui

ip

<string>

égal, inclus

Une IP IPV4 valide

Oui

Non

Non

Non

Oui

country (pays)

<string>

égal, inclus

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

Oui

Non

Non

Oui

Oui

region-iso

<string>

égal, inclus

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

Oui

Non

Non

Oui
(API prévisionnelle de deuxième génération)

Oui

city-geonames-id

<string>

égal, inclus

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

Oui

Non

Non

Oui
(API prévisionnelle de deuxième génération)

Oui

dma

<string>

égal, inclus

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

Oui


Non

Non

Oui

Oui

all-msa

<string>

égal, inclus

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

Oui

Non

Non

Oui

Oui

subregion-iso

<string>

égal, inclus

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

Oui


Non

Non

Oui
(API prévisionnelle de deuxième génération)

Oui

longitude, latitude, rayon

-

spatial

Longitude : -180 à 180

Latitude : -90 à 90

Rayon : 1 à 20,000 km

Reportez-vous au type spatial pour plus de détails.

Oui


Non

Non

Oui

Oui

postalcode

<string>

égal, inclus

Sans validation.

Oui

Non

Non

Oui

Oui

Autre

Dimension

Valeur(s) possible(s)

Type(s) pris en charge

Validateur

Vague

Qualité des publicités

Exclusivité

Prévisions

Accord (Deal)

dmp-segments

<id>

égal, inclus

L'ID de segment doit représenter un identifiant dans l'un des fournisseurs DMP autorisés pat l'éditeur de l'organisation.

La correspondance devrait autoriser les déclarations de type AND (ET).

Oui

Non

Non

Oui

Oui

ttag

<string>

égal, inclus

Sans validation

La correspondance devrait autoriser les déclarations de type AND (ET).

Oui


Non

Non

Oui

Oui

dist

<string>

égal, inclus

La chaîne doit contenir entre 1 et 256 caractères (les valeurs vides sont interdites).

Oui


Non

Non

Oui

Oui

<custom-parameter>

<string>

égal, inclus

Schéma de ciblage : groupe d'attributs = "custom-parameter"

https://platformservices.streamtheworld.com/content-targeting/schemes/p.xml


Les paramètres personnalisés sont des dimensions arbitraires définies sur demande dans le schéma Ciblage.

Pour cibler ces dimensions, l’attribut "group"="custom-parameter" doit être indiqué à côté de la dimension. Exemple :

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


Pour cibler la dimension « terminalid », la RÈGLE ressemblera à :

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

Oui

Non

Non

Oui pour terminalid

Oui

Ciblage temporel (ou dayparts)

Dimension

Valeur(s) possible(s)

Type(s) pris en charge

Validateur

Vague

Qualité des publicités

Exclusivité

Prévisions

Accord (Deal)

day-of-week

<nombre>

1 = Lundi

égal, inclus, lien

de 1 à 7

Oui

Non

Non

Oui

Non

heure

<nombre>

égal, inclus, lien

de 0 à 23

Oui

Non

Non

Oui

Non

Sécurité de la marque

Dimension

Valeur(s) possible(s)

Validateur

Vague

Qualité des publicités

Exclusivité

Prévisions

Accord (Deal)

bs-adulte

Liée = Valeur 1

Probablement liée = Valeur 2

Probablement non liée = Valeur 3

Non liée = Valeur 4

Validation BOUND de base.

Oui

Non

Non

Oui

Oui

bs-armes

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-crime

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-dealth-injury

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-drogues

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-discours-haineux

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-conflit-militaire

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-obscénité

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-piratage-en-ligne

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-spam-sites-malveillants

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-terrorisme

Validation basique LIEN.

Oui

Non

Non

Oui

Oui

bs-tabac

Validation BOUND de base

Oui

Non

Non

Oui

Oui

Lorsque vous utilisez des valeurs inférieures et supérieures, la bonne pratique consiste à toujours utiliser 4 pour les valeurs supérieures. Par exemple :

 "fields":[
     {
        "dimension":"bs-arms",
        "lower":2,
        "upper":4,
        "type":"bound"
     },

  "fields":[
     {
        "dimension":"bs-drugs",
        "lower":4,
        "upper":4,
        "type":"bound"
     },

Commentaire

Envoyez vos commentaires ou corrections à docs@tritondigital.com. (Il s’agit d’un courriel NO REPLY utilisé uniquement pour les commentaires sur la documentation. Pour obtenir de l’assistance client, cliquez ici.)