: suivez les étapes ci-dessous dans leur intégralité. : votre partenaire doit envoyer les catégories refusées dans le paramètre pmcat à .
En dehors de la gestion par catégories, Eulerian met à disposition une URL d'opt-out général qui rend un utilisateur inactif sur l'ensemble des traitements Eulerian, toutes plateformes confondues.
https://[DOMAINE_COLLECTE]/optout.html?url=[VOTRE_DOMAINE]
pour le site www.eulerian.com :
<https://mj23.eulerian.com/optout.html?url=www.eulerian.com>
Cette URL est généralement exposée dans les pages ou du site, en complément de l'accès à la CMP.
Les catégories déclarées dans Eulerian doivent correspondre aux catégories affichées dans le bandeau de consentement de votre site.
: Gestion du consentement hors TCFv2
Cliquez sur et donnez un nom à chaque catégorie. Répétez l'opération jusqu'à avoir autant de catégories dans Eulerian que dans votre CMP.
: Gestion de vos Consent Managers
Cliquez sur , puis renseignez le nom du cookie intermédiaire que vous allez utiliser (sensible à la casse).
Valeur par défaut recommandée : EA_cookie_intermediaire
: si vous ne souhaitez pas poser de cookie, ajoutez la variable epm-shared dans vos tags Eulerian. Elle prend la valeur 0 (pas de consentement donné) ou 1 (consentement donné).
Pour qu'Eulerian sache quand il est autorisé à collecter de la donnée, vous devez l'associer à l'une des catégories déclarées à l'étape 1.
: Privacy Center
Cliquez sur le bloc , sélectionnez la catégorie correspondante, puis validez avec le code de vérification envoyé par SMS.
: rapprochez-vous de votre CSM pour enregistrer votre numéro de téléphone avant de réaliser cette étape.
Le script de consentement fonctionne en 4 temps :
Au chargement du bandeau CMP, le navigateur récupère les catégories Eulerian.
Quand l'utilisateur accepte ou refuse une catégorie, le choix est répercuté dans l'objet catégories.
Quand l'utilisateur clique sur "Sauvegarder", le script envoie les choix à Eulerian.
Un cookie intermédiaire est posé avec la valeur 1 pour confirmer que le consentement a bien été fourni, et permettre le déclenchement des tags et connecteurs tiers.
La librairie collector Eulerian doit être chargée. Le datalayer doit utiliser la clé onload pour fournir une fonction de callback déclenchée à la réponse du collector.
console.log("EA js is loaded");
Ces fonctions sont disponibles (cf. Étape 2).
Retourne un tableau d'objets contenant toutes les catégories de consentement déclarées dans Eulerian et leurs propriétés.
EA_epmSet(obj_categories)
Sauvegarde les modifications apportées à l'objet catégories . Ne pousse pas encore les données vers Eulerian — utiliser EA_epmEnd() pour cela.
Envoie toutes les catégories avec leur consentement associé à Eulerian, et déclenche les tags tiers si applicable.
Accepte toutes les catégories de consentement en une seule opération.
Refuse toutes les catégories de consentement en une seule opération.
_oEa.cookieset(outCookieKey, val, 1)
Crée un cookie de session avec le nom outCookieKey et la valeur val (0 ou 1). Peut être utilisé comme cookie asservi.
:
EA_epmSetAllowAll() doit générer un appel Eulerian misc avec pmact=clicksave et pm=1EA_epmSetDenyAll() doit générer un appel Eulerian misc avec pmact=denyall et pm=1
Le flux est toujours le même : récupérer → modifier → sauvegarder → envoyer.
La modification d'une catégorie doit toujours agir alloweddenied. Pour passer une catégorie en refus, il faut déclarer denied=true allowed=false en même temps.
var categorie = EA_epmGet();
categorie[1].allowed = false;
categorie[1].denied = true;
: EA_epmEnd() doit déclencher un appel misc contenant :
pm=1pmact=clicksavepmcat=ID1-ID2-... (IDs des catégories refusées, séparés par -) —
"id": "{{cpm_category_id}}",
"hdr": "Nom de la catégorie",
Le cookie intermédiaire sert de garde-fou : il conditionne le déclenchement des tags tiers et des connecteurs S2S. Sa valeur vaut 0 (pas de consentement) ou 1 (consentement donné).
function setSharedCookie(val) {
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
var expires = "expires=" + date.toGMTString();
var outCookieKey = "EA_cookie_intermediaire";
var domaine = "VOTRE-DOMAINE.COM";
document.cookie = outCookieKey + "=" + val + "; domain=" + domaine + "; path=/; " + expires;
Remplacez MON-SOUS-DOMAINE par votre sous-domaine de tracking, MON-DOMAINE par votre domaine, et adaptez les conditions dans send_consent_to_EA selon la logique de votre CMP.
(function(e,a){var i=e.length,y=5381,k='script',s=window,v=document,o=v.createElement(k);
for(;i;){i-=1;y=(y*33)^e.charCodeAt(i)}y='_EA_'+(y>>>=0);
(function(e,a,s,y){s[a]=s[a]||function(){(s[y]=s[y]||[]).push(arguments);s[y].eah=e;};}(e,a,s,y));
i=new Date/1E7|0;o.ea=y;y=i%26;o.async=1;
o.src='//'+e+'/'+String.fromCharCode(97+y,122-y,65+y)+(i%1E3)+'.js?2';
s=v.getElementsByTagName(k)[0];s.parentNode.insertBefore(o,s);
})('MON-SOUS-DOMAINE','EA_push');
EA_push('ondone', function() {
window.categories = EA_epmGet();
function setSharedCookie(val) {
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
var outCookieKey = 'EA_cookie_intermediaire';
var domaine = 'MON-DOMAINE';
document.cookie = outCookieKey + '=' + val + '; domain=' + domaine + '; path=/' + expires;
function endAllDenied() {
EA_push('ondone', function() {
function endAllAllowed() {
EA_push('ondone', function() {
function toAllowed(index) {
categories[index].allowed = true;
categories[index].denied = false;
function toDenied(index) {
categories[index].allowed = false;
categories[index].denied = true;
function send_consent_to_EA() {
Si vous ne pouvez pas intégrer la librairie JS, vous pouvez envoyer le consentement via un appel HTTP direct depuis votre CMP au moment où l'utilisateur valide ses choix.
https://[DOMAINE_TRACKING]/misc/[SITE_EULERIAN]/[CACHEBUSTER]?pm=1&pmact=clicksave&pmcat=[IDS_REFUSES]&url=[URL_ENCODEE]
Domaine de tracking de vos tags Eulerian
Nom du site dans Eulerian
Nombre aléatoire pour forcer le rechargement (ex: 123456789)
IDs des catégories refusées séparés par - (ex: 1-10-19). Vide si tout est accepté.
URL de la page active encodée (ex: https%3A%2F%2Fwww.monsite.com%2F)
Indique une prise en charge du consentement
Action de sauvegarde du consentement
IDs des catégories CMP à désactiver pour cet utilisateur
Pour les apps Android et iOS, le consentement est transmis directement via le paramètre pmcat dans chaque appel, contenant les séparés par -.
analytics → ID 1publicité → ID 10fonctionnel → ID 19
Si l'utilisateur refuse analytics et publicité mais accepte fonctionnel → pmcat=1-10 Si l'utilisateur accepte tout → pmcat=-
EAProperties genericTag = new EAProperties.Builder("NOM_PAGE")
.set("NOM_PARAM_PERSO", "VALEUR_PARAM_PERSO")
.set("pmcat", "CATEGORIES_CMP_REFUSEES")
EAnalytics.getInstance().track(genericTag);
EAProperties genericTag = new EAProperties.Builder("|univers|rubrique|page")
.set("abonnement", "mensuel")
EAnalytics.getInstance().track(genericTag);
let genericTag = EAProperties(path: "NOM_PAGE")
genericTag.setEulerianWithUid(uid: "UID")
genericTag.setEulerianWithValue("VALEUR_PARAM_PERSO", forKey: "NOM_PARAM_PERSO")
genericTag.setEulerianWithValue("CATEGORIES_CMP_REFUSEES", forKey: "pmcat")
EAnalytics.track(genericTag)
let genericTag = EAProperties(path: "|univers|rubrique|page")
genericTag.setEulerianWithUid(uid: "5434742")
genericTag.setEulerianWithValue("mensuel", forKey: "abonnement")
genericTag.setEulerianWithValue("1-2", forKey: "pmcat")
EAnalytics.track(genericTag)
// Sans valeur (placeholder)
//domain.client.tld/collector/-/[RANDOM].html?
uid=REMPLACER_PAR_ID_USER
&urlp=REMPLACER_PAR_NOM_DE_LA_PAGE
&url=http%3A%2F%2Fwww.client.com%2F
&pmcat=CATEGORIES_CMP_REFUSEES
// Avec valeurs réelles (catégories 1 et 2 refusées)
//domain.client.tld/collector/-/544534509876.html?
&urlp=univers%2Frubrique%2Fpage
&url=http%3A%2F%2Fwww.client.com%2F
Cette étape ne concerne que les clients disposant du .
Depuis l'Audience Engine, vous pouvez envoyer des audiences vers vos partenaires de trois façons :
- Téléchargement d'une liste d'identifiants
- Envoi one-shot via un connecteur natif
- Envoi automatisé quotidien via un connecteur natif (requête automatisée)
Dans les trois cas, . Pour cela, ajoutez la règle dans votre requête.
Pour les requêtes automatisées, cette règle doit être intégrée dans la requête sauvegardée qui sera ensuite planifiée.