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 |
| 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 : | Non | Non | Non | Non | Oui |
content-language (langue du contenu) | <string> | égal, inclus | API ouverte : | 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 : | 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 | Oui | Non | Non | Oui | Oui | |
agent-family | <string> | égal, inclus | Oui | Non | Non | Oui | Oui | |
agent-device | <string> | égal, inclus | Oui |
| Non | Oui | Oui | |
agent-device-family | <string> | égal, inclus | Oui | Non | Non | Oui | Oui | |
agent-os | <string> | égal, inclus | Oui | Non | Non | Oui | Oui | |
agent-platform | <string> | égal, inclus | Oui | Non | Non | Oui | Oui | |
addressable | <string> | dans | Valeurs possibles : | 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 | Oui |
city-geonames-id | <string> | égal, inclus | https://refdata.tritondigital.com/docs#operation/geov2-get-region-children | Oui | Non | Non | Oui | Oui |
dma | <string> | égal, inclus | https://refdata.tritondigital.com/docs#operation/geov2-get-country-regions | Oui |
| 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 | Oui | Oui |
longitude, latitude, rayon | - | Longitude : -180 à 180 Latitude : -90 à 90 Rayon : 1 à 20,000 km Reportez-vous au type spatial pour plus de détails. | Oui |
| 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 | Oui | Oui |
dist | <string> | égal, inclus | La chaîne doit contenir entre 1 et 256 caractères (les valeurs vides sont interdites). | Oui |
| 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 :
| 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.)