Les variables TMPL permettent d' dans les tags implémentés au sein du TMS Eulerian. Elles s'utilisent directement dans le code de vos tags personnalisés (JavaScript, Image, Iframe, S2S) pour transmettre à vos partenaires des données collectées en temps réel : référence produit, montant, identifiant utilisateur, URL courante, etc.
Il existe deux types de balises TMPL.
— retournent une valeur :
— utilisées pour les boucles et les conditions :
<TMPL_IF $var> ... </TMPL_IF>
Les deux types suivent les règles de syntaxe XML standard :
- Le chevron fermant d'une balise auto-fermante est précédé d'un
/ : <balise /> - Pour les balises ouvrantes/fermantes, le
/ est placé après le chevron ouvrant de la balise fermante : <balise>...</balise> - Des attributs peuvent être ajoutés à l'intérieur d'une balise :
<balise attribut="valeur">...</balise>
<!-- Balise auto-fermante avec attribut -->
<TMPL_VAR prdref ESCDQUOTE />
<!-- Structure de contrôle avec expression régulière -->
<TMPL_IF cgip.codepromo REGEX('^(PM-)')> ... </TMPL_IF>
Selon le contexte dans lequel une balise retourne du contenu, certains caractères peuvent générer des erreurs de syntaxe. Trois attributs d'échappement sont disponibles sur les balises TMPL_VAR.
— sans échappement, l'apostrophe dans manteau d'hiver provoque une erreur JavaScript :
var product_type = 'manteau d'hiver';
var product_type = '<TMPL_VAR cgip.product_type ESCSQUOTE />'
var product_type = "<TMPL_VAR cgip.product_type ESCDQUOTE />"
https://t.partenaire.com?type=<TMPL_VAR cgip.product_type ESCHTTP />
Retourne la valeur de n'importe quel paramètre passé dans le marqueur collector. xxx doit reprendre la clé du paramètre (et non dans le code source). S'applique à tous les paramètres Eulerian, y compris ceux listés ci-dessous.
Référence unique de la conversion. Correspond au paramètre ref pour un tag de confirmation (devis/commande), et à actionref pour un suivi de conversion historisé.
Montant total de la conversion. Correspond au paramètre amount d'un tag de confirmation de devis ou de commande.
Montant total de la conversion (vente ou devis).
Type de conversion. Correspond au paramètre type d'un tag de confirmation.
Moyen de paiement. Correspond au paramètre payment d'un tag de vente.
URL complète de la page courante avec les paramètres CGI
http://www.site.com/page?param1=val
Chemin (path) original de la page, sans traitement ni règle de renommage
Nom de la page après traitement et règles de renommage si paramétrées
Ces balises retournent les données du passé dans le tag. Pour récupérer tous les produits, utilisez la boucle prdloop (voir doc Boucles produits).
Référence du premier produit (prdref)
<TMPL_LOOP prdloop><TMPL_VAR prdref /></TMPL_LOOP>
Nom du premier produit (prdname)
<TMPL_LOOP prdloop><TMPL_VAR prdname ESCDQUOTE /></TMPL_LOOP>
Montant du premier produit (prdamount)
<TMPL_LOOP prdloop><TMPL_VAR prdamount /></TMPL_LOOP>
<TMPL_VAR prdamountexvat />
Montant du premier produit (prdamount)
<TMPL_LOOP prdloop><TMPL_VAR prdamountexvat /></TMPL_LOOP>
Quantité du premier produit (prdqty)
<TMPL_LOOP prdloop><TMPL_VAR prdqty /></TMPL_LOOP>
Valeur de la catégorie produit xxx transmise via prdparam-xxx. Ex : <TMPL_VAR prds_pv.marque ESCDQUOTE />
<TMPL_LOOP prdloop><TMPL_VAR prd_pv.xxx /></TMPL_LOOP> (noter prd_pv sans le s dans la boucle)
Nombre de produits . Ex : 3×A + 2×B → 2
Nombre de produits . Ex : 3×A + 2×B → 5
Email de l'utilisateur. Peut être stocké en session et restitué même si l'utilisateur n'est pas connecté.
ID interne Eulerian du visiteur courant. Basé sur le tracking first-party et le fingerprint Eulerian.
ID de session Eulerian, unique par visite et par visiteur.
ID CRM du visiteur courant. Correspond à la valeur du paramètre uid passé au tag.
ID CRM du visiteur courant par Eulerian.
Nombre total de visites de l'utilisateur depuis le début de la collecte.
ID partenaire récupéré via le paramètre &eparam=ID_PARTENAIRE dans un lien de tracking Eulerian. ⚠ — non adapté à un usage multi-partenaires. Préférer mtuid.
ID partenaire récupéré via les URLs de tracking ou le cookie matching (Eulerian Real Time Data). Contrairement à eparam, les bases sont indépendantes par partenaire et les valeurs ne s'écrasent pas.
Équivalent de mtuid pour les . Renvoie le dernier ID partenaire collecté.
Identique à dcuid mais renvoie l'ID partenaire du (et non le dernier collecté).
Nombre aléatoire généré au chargement de la page. La valeur est d'une même page. Pour un nombre unique par tag, utiliser mtrand.
Valeur aléatoire de la balise.
Combinaison code pays + code région
Système d'exploitation de l'utilisateur
Langue du navigateur en majuscules
Fournisseur d'accès Internet
Adresse IPv4 de l'utilisateur
Adresse IPv6 de l'utilisateur
Do Not Track activé dans le navigateur
Smartphone, Desktop, Tablet
<TMPL_VAR iduserparam.NOM_PARAMETRE />
Valeur d'un paramètre utilisateur first-party
iduserparam.birthdate, iduserparam.gender, iduserparam.optin
<TMPL_VAR np_NOM_PARAMETRE />
Valeur d'un paramètre partenaire dans un tag partenaire
<TMPL_VAR profilesession />
ID du profil utilisateur sur la session courante
<TMPL_VAR profileglobal />
ID du profil utilisateur global (toutes sessions)
<TMPL_VAR profilesessiontxt />
Libellé du profil utilisateur sur la session courante
<TMPL_VAR profileglobaltxt />
Libellé du profil utilisateur global
Le module Activation (tags natifs/personnalisés et appels S2S) permet d'envoyer les données ad-centric via les macros suivantes. Ces clés sont utilisables :
- dans les pour les connecteurs temps-réel vers de la BI
- dans l' pour extraire les informations d'attribution marketing
<TMPL_VAR channelpubtxt />
<TMPL_VAR channelopetxt />
<TMPL_VAR channelsengtxt />
<TMPL_VAR channelsengkwtxt />
<TMPL_VAR channelrfdomtxt />
Domaine référant ad-centric
<TMPL_VAR channelrfdomuritxt />
<TMPL_VAR channelloctxt />
<TMPL_VAR channelcreatxt />
<TMPL_VAR channelsikey />
<TMPL_VAR channelsival />
<TMPL_VAR channelslcamptxt />
<TMPL_VAR channelsladgrouptxt />
<TMPL_VAR channelclickid />
Click ID de la touche marketing courante (150 caractères max)
La syntaxe view.X.clé permet de récupérer les données d'une vue d'attribution spécifique, où X est l'index de la vue (0 = dernier levier).
<TMPL_VAR view.0.media />
Shortname du média pour la vue d'attribution au dernier levier
ID du support pour la vue d'attribution n°3
D'autres clés peuvent être requêtées pour chacune des vues. Contactez votre équipe Eulerian pour la liste complète.
Par défaut, <TMPL_VAR prdref /> retourne uniquement la référence du passé dans le marqueur collector. Pour récupérer l'ensemble des produits d'une commande ou d'un panier, il faut utiliser la boucle prdloop.
<TMPL_LOOP prdloop><TMPL_IF idx>SÉPARATEUR</TMPL_IF><TMPL_VAR prdref /></TMPL_LOOP>
<TMPL_IF idx> : la condition idx est vraie pour tous les produits . Elle permet d'insérer un séparateur entre chaque produit sans en ajouter un avant le premier.
Sans idx, on obtiendrait ;BV6543;VR7844;VR3321 — le ; initial serait en trop et pourrait générer une erreur JavaScript.
La balise <TMPL_VAR prd_pv.xxx /> fonctionne selon le même principe pour les (correspondant aux paramètres prdparam-xxx dans le marqueur collector).
<TMPL_IF idx> doit toujours être positionné le contenu à transmettre.
<TMPL_LOOP prdloop><TMPL_IF idx>,</TMPL_IF><TMPL_VAR prdref /></TMPL_LOOP>
— les produits sont séparés par |, les champs par , :
<TMPL_LOOP prdloop><TMPL_IF idx>|</TMPL_IF><TMPL_VAR prdref />,<TMPL_VAR prdamount />,<TMPL_VAR prdqty /></TMPL_LOOP>
A5435,10.00,1|B7553,15.00,2|C9873,12.00,3
'prdparam-categorie', 'pantalon',
'prdparam-categorie', 'chemise',
'prdparam-categorie', 'veste',
— utilisation de prd_pv.xxx pour les catégories :
<TMPL_LOOP prdloop><TMPL_IF idx>|</TMPL_IF><TMPL_VAR prdref />:<TMPL_VAR prd_pv.categorie />:<TMPL_VAR prd_pv.taille /></TMPL_LOOP>
A5435:pantalon:43|B7553:chemise:40|C9873:veste:43
Cette macro calcule le total de la commande en multipliant chaque montant par sa quantité.
'prdamount', '10', 'prdqty', '3',
'prdamount', '25', 'prdqty', '1',
'prdamount', '15', 'prdqty', '2'
— TMPL_UNLESS avec REGEX('^1#x27;) évite d'afficher 1 * quand la quantité est égale à 1 : <TMPL_LOOP prdloop> +(<TMPL_UNLESS prdqty REGEX('^1#x27;)><TMPL_VAR prdqty /> * </TMPL_UNLESS><TMPL_VAR prdamount />)</TMPL_LOOP>
Si vous récupérez la valeur nouveau_client dans le paramètre personnalisé type_client et que votre partenaire attend la valeur NC :
<TMPL_IF cgip.type_client REGEX("nouveau_client")>NC</TMPL_IF>
Cette technique évite de créer deux tags distincts pour gérer dynamiquement la valeur transmise au partenaire.
Ces boucles permettent de récupérer des et/ou des au déclenchement d'un tag.
Toutes les boucles suivent la même structure de base, avec <TMPL_IF idx> pour gérer le séparateur :
<TMPL_LOOP NOM_BOUCLE><TMPL_IF idx>,</TMPL_IF>"<TMPL_VAR key />":"<TMPL_VAR val />"</TMPL_LOOP>
Insère le séparateur avant chaque élément sauf le premier
ID ou nom du paramètre user-centric (ou de l'audience)
Valeur du paramètre user-centric (ou du segment)
<TMPL_LOOP iduserparamloop><TMPL_IF idx>,</TMPL_IF>"<TMPL_VAR key />":"<TMPL_VAR val />"</TMPL_LOOP>
Retourne les IDs et valeurs des paramètres user-centric collectés en first-party.
"5":"10","AGE":"25-30ans"
<TMPL_LOOP partneruserparamloop><TMPL_IF idx>,</TMPL_IF>"<TMPL_VAR key />":"<TMPL_VAR val />"</TMPL_LOOP>
Retourne les IDs et valeurs des paramètres user-centric issus d'un (second ou third party).
"2":"15","CODE_POSTAL":"75001"
<TMPL_LOOP clusternameloop><TMPL_IF idx>,</TMPL_IF>"<TMPL_VAR key />":"<TMPL_VAR val />"</TMPL_LOOP>
Retourne les noms des audiences et les noms des segments inclus dans ces audiences.
Pour requêter les audiences d'un site spécifique dans une Master DMP, la syntaxe de la boucle intègre l'.
<TMPL_LOOP id+site(4)_clusternameloop><TMPL_IF idx>,</TMPL_IF>"<TMPL_VAR key />":"<TMPL_VAR val />"</TMPL_LOOP>
pour un site avec id=23 et nom=my-website :
<TMPL_LOOP 23my-w_clusternameloop><TMPL_IF idx>,</TMPL_IF>"<TMPL_VAR key />":"<TMPL_VAR val />"</TMPL_LOOP>
Retourne les noms des audiences et les noms des segments inclus dans ces audiences, limités au site ciblé.
<TMPL_VAR isengineparam.KEY />
Retourne la valeur du paramètre de recherche correspondant à la KEY spécifiée.
— avec les données suivantes dans le marqueur collector :
'isearchkey', 'destinations',
La macro <TMPL_VAR isengineparam.destinations /> retourne :
Pour échapper un (plutôt qu'une seule variable), utilisez <TMPL_MOD> avec l'option souhaitée.
<TMPL_MOD ESCHTTP>http://sub.domain.tld/page?param1=1¶m2=2</TMPL_MOD>
900150983cd24fb0d6963f7d28e17f72
23097d223405d8228642a477bda255b3...
23097D223405D8228642A477BDA255B3...
Iwl9IjQF2CKGQqR3vaJVsyqtvOS9oLP342ydpw==
ba7816bf8f01cfea414140de5dae2223...
BA7816BF8F01CFEA414140DE5DAE2223...
ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=
cb00753f45a35e8bb5a03d699ac65007...
CB00753F45A35E8BB5A03D699AC65007...
ywB1P0WjXou1oD1pmsZQBycsMqsO3tFjGotgWkP/W+...
ddaf35a193617abacc417349ae204131...
DDAF35A193617ABACC417349AE204131...
3a81oZNherrMQXNJriBBMRLm+k6JqX6iCp7u5ktV05o...
PFRNUExfTU9EIEJBU0U2ND5CQVNFNjQ8L1RNUExfTU9EPg==
http%3a//sub.domain.tld/...
<!-- Hasher l'email en SHA-512 minuscules -->
<TMPL_MOD SHA512LX><TMPL_VAR email /></TMPL_MOD>
<!-- Encoder un bloc d'URL -->
<TMPL_MOD ESCHTTP>https://www.monsite.com/page?param=valeur</TMPL_MOD>
TMPL_IF affiche son contenu uniquement si la condition est vraie. TMPL_ELSE prend le relais si elle est fausse.
TMPL_UNLESS est l'inverse de TMPL_IF — son contenu s'affiche si la condition est . Les deux sont interchangeables avec IF/ELSE :
<TMPL_UNLESS orderestimate>
La page courante contient un tag de confirmation de
La page courante contient un tag de confirmation de
La page courante est un tag de
La page courante contient un tag de
La page courante contient un ou plusieurs paramètres prdref
La page courante correspond à la du site (déclarée à la création du site)
Teste la présence du paramètre natif ou personnalisé XXXXX passé dans le marqueur collector
Cette structure est la plus fréquente dans les templates natifs Eulerian. Elle permet de déclencher le bon type de tag sur chaque page sans qu'un même appel soit dupliqué.
<TMPL_UNLESS orderestimate>
TMPL_UNLESS scartTMPL_UNLESS orderestimate Une page panier avec des produits valide toujours <TMPL_IF prdref>. Sans exclusion explicite, le tag produit se déclencherait aussi sur la page panier. Ces conditions évitent les doubles appels.
cgip.prdr1 Chaque prdref passé dans le marqueur est automatiquement réindexé à partir de 0 (prdr0, prdr1, prdr2…). Tester la présence de prdr1 permet de vérifier qu'il y a au moins 2 produits — caractéristique d'une page catégorie.
Ces attributs s'ajoutent directement dans les balises TMPL pour modifier leur contenu à la volée.
S'utilise dans TMPL_IF ou TMPL_UNLESS pour tester la valeur d'une variable avec une expression régulière.
<TMPL_IF cgip.profile REGEX("newcustomer")> var _pt_newcus = 1; </TMPL_IF>
<TMPL_UNLESS cgip.profile REGEX("newcustomer")> var _pt_newcus = 0; </TMPL_UNLESS>
Cette technique évite de créer deux tags distincts — la valeur de _pt_newcus est gérée dynamiquement dans un seul template.
REGEX("ARG1") — ARG1 est l'expression régulière à tester.
S'utilise dans TMPL_VAR pour capturer et reformater dynamiquement la valeur d'une variable. Les groupes de capture sont entourés de parenthèses et réutilisés via $1, $2, etc.
<!-- Référence produit : SX12345F453 -->
<TMPL_VAR prdref SREGEX("SX(.*)","$1") />
<!-- Résultat : 12345F453 -->
<TMPL_VAR prdref SREGEX("SX(.*?)F(.*)","$1$2") />
<!-- Résultat : 12345453 -->
<TMPL_VAR prdref SREGEX("SX(.*)","VR$1") />
<!-- Résultat : VR12345F453 -->
<!-- Montant : 23.50 — conversion du point en virgule -->
<TMPL_VAR prdamount SREGEX("(.*)\.(.*)","$1,$2") />
<!-- Résultat : 23,50 -->
Il est possible d'enchaîner plusieurs SREGEX dans une même balise pour transformer la valeur en plusieurs étapes.
SREGEX("ARG1","ARG2") — ARG1 est l'expression régulière, ARG2 le format de sortie.
Convertit un timestamp en format de date lisible.
<TMPL_VAR epoch STRFTIME('%Y-%m-%d %H:%M:%S', 'Europe/Paris') />
STRFTIME("ARG1","ARG2") — ARG1 est le format POSIX souhaité, ARG2 le fuseau horaire.
Effectue une opération mathématique sur la valeur d'une variable numérique. PRECISION permet d'arrondir le résultat.
<!-- Appliquer une réduction de 20% et arrondir à 2 décimales -->
<TMPL_VAR prdamount MATH("*","0.80") PRECISION("2") /> €
<!-- Résultat : 16,00 € -->
MATH("ARG1","ARG2") — ARG1 est l'opérateur (*, /, +, -), ARG2 la valeur à appliquer.
S'utilisent dans TMPL_IF pour comparer une valeur numérique.
Strictement inférieur à n
<TMPL_IF vtest LT(10)> Inf 10 </TMPL_IF>
<TMPL_IF vtest LE(10)> Inf/EQ 10 </TMPL_IF>
<TMPL_IF vtest GE(10)> Sup/EQ 10 </TMPL_IF>
Strictement supérieur à n
<TMPL_IF vtest GT(10)> Sup 10 </TMPL_IF>
Encode la valeur d'une variable en base64.
<TMPL_VAR prdref BASE64 />
<!-- Référence : ref-123456789 → Résultat : cmVmLTEyMzQ1Njc4OQ== -->
Permet de récupérer les Context Flags associés à la page courante.
: activer l'option "Context-Flag: authorize values in templates (TMPL_LOOP cflag)" dans les options du site.
<!-- vos variables ici -->
Catégorie du Context Flag
Timestamp de dernière modification
1 si le flag est actif sur la page courante, 0 sinon
Permet d'activer ou désactiver certains comportements de formatage du template.
<TMPL_FLAG $flag /> <!-- Activer -->
<TMPL_FLAG !$flag /> <!-- Désactiver -->
Supprime les retours chariot dans la sortie
Supprime les lignes vides dans la sortie
Ces flags s'ajoutent . Utile notamment pour les connecteurs S2S qui attendent un payload structuré avec des sauts de ligne.
<TMPL_FLAG !DELCARRIAGERET />
https://my-custom-endpoint.com/segments/eulerian?HDR_CUSTOM_X-API-KEY=some_api_key&POST_CTYPE=csv&POST_DATA=
id_visiteur;valeur;segment;expiration
<TMPL_VAR dcuid ESCHTTP />;EA_value_7;EA_test_segment_7;