← Retour aux Insights

Data views Marketing Cloud : ce qu'elles disent vraiment

Pierre Frin Septembre 2026 7 min de lecture
fenêtre écrite dans la requête : 270 jours données réellement lues : 6 mois rien ici _Open chargée par Apple Mail _Click suivi par un antivirus abonné classé actif Marketing Cloud Engagement · data views système

Une équipe e-commerce prépare une campagne de réactivation. Le brief tient en une ligne : tous les abonnés qui n'ont ni ouvert ni cliqué depuis neuf mois. Un intégrateur écrit la requête sur _Open et _Click avec une fenêtre de 270 jours, la teste sur quelques abonnés connus, et la cible part en validation.

Le marketing attendait cent vingt mille personnes. La requête en renvoie quarante-huit mille. En contrôlant un échantillon, l'équipe trouve des clients inactifs depuis sept mois seulement, et ne retrouve aucun des gros dormants connus pour ne plus rien lire depuis deux ans, tous équipés d'un iPhone.

La requête ne contient pas d'erreur de syntaxe. Elle repose sur trois hypothèses fausses : que les data views remontent à neuf mois, qu'une ouverture prouve une lecture, et qu'un clic prouve un humain.

La profondeur s'arrête à six mois

Les data views système sont la seule source SQL des envois, ouvertures, clics, bounces et désabonnements de Marketing Cloud Engagement. Elles alimentent les exclusions, les scores d'engagement et une bonne partie des tableaux de bord. L'interface ne rappelle jamais leurs limites.

Data viewContenuProfondeur et portée
_SentEmails envoyésSix derniers mois. Les lignes peuvent mettre plusieurs minutes à apparaître.
_Open, _ClickOuvertures et clics, avec l'URL pour les clicsSix mois
_Bounce, _Unsubscribe, _ComplaintBounces, désabonnements liés à un envoi, plaintesSix mois
_JobEnvois : nom et objet de l'email, dates planifiée et effectiveBusiness unit courante
_SubscribersAll Subscribers et statutNiveau entreprise, ENT._Subscribers depuis une business unit enfant
_BusinessUnitUnsubscribesDésabonnements par business unitInterrogeable depuis le compte parent seulement

Portée des data views par business unit

Deux précisions de portée méritent d'être notées. Les data views d'événements ne sont pas disponibles au niveau entreprise : chaque business unit lit ses propres envois, ouvertures et clics. À l'inverse, _BusinessUnitUnsubscribes ne se lit que depuis le compte parent, ce qui oblige à recopier son contenu dans une data extension partagée pour que les business units enfants puissent l'exploiter.

⚠️ Une fenêtre trop large ne provoque aucune erreur. Une condition écrite sur douze mois s'exécute normalement et renvoie six mois de données. L'indicateur « sur douze mois » est faux, et la population « inactive depuis douze mois » contient des gens inactifs depuis six. Bornez la fenêtre à la rétention réelle, ou lisez une table d'historique que vous alimentez vous-même.

Quatre colonnes pour relier un événement à son envoi

Un événement se rattache à un envoi précis par JobID, ListID, BatchID et SubscriberID. C'est la jointure que Salesforce utilise dans son propre exemple de filtrage des clics. La SubscriberKey est présente partout et sert à rejoindre vos data extensions, mais elle ne suffit pas à relier une ouverture à l'envoi qui l'a produite.

La joindre seule produit un produit cartésien silencieux : chaque ouverture de l'abonné se rattache à chacun des envois qu'il a reçus. Avec vingt envois et dix ouvertures sur six mois, un seul abonné pèse deux cents lignes, et le taux d'ouverture par campagne devient illisible.

SELECT
    s.JobID,
    COUNT(*)            AS NbOuvertures
FROM _Sent AS s
INNER JOIN _Open AS o
    ON  o.JobID        = s.JobID
    AND o.ListID       = s.ListID
    AND o.BatchID      = s.BatchID
    AND o.SubscriberID = s.SubscriberID
WHERE o.IsUnique = 1
GROUP BY s.JobID

Compter une ouverture une seule fois

Le filtre sur IsUnique compte une seule fois un abonné qui ouvre cinq fois le même email. Ces data views contiennent chaque occurrence, pas seulement la première : sans ce filtre, ni COUNT(DISTINCT SubscriberKey), un taux d'ouverture peut dépasser 100 %.

EventDate en heure du centre des États-Unis

Dernier point de vigilance sur les dates : les data views stockent leurs horodatages en heure standard du centre des États-Unis, sans changement d'heure, soit UTC moins six heures toute l'année. Un clic horodaté à 3 h dans _Click correspond à 10 h à Paris en hiver et à 11 h en été.

💡 Comparer deux dates du même fuseau ne demande aucune conversion. Tant que vous filtrez EventDate par rapport à une date calculée sur le serveur, tout va bien. La conversion devient obligatoire dès qu'une borne vient du calendrier français, par exemple « hier » ou « depuis minuit ».

Ce qu'une ouverture prouve, et ce qu'elle ne prouve pas

Une ouverture est le chargement d'une image de suivi. Un clic est le passage par une URL de redirection. Aucun des deux ne dit qui a déclenché l'événement, et Salesforce l'écrit sans détour : ses systèmes de suivi n'ont aucun moyen de savoir si une ouverture ou un clic est humaine ou automatique.

Apple Mail Privacy et antivirus

Deux mécanismes faussent les chiffres. Apple Mail Privacy Protection, quand l'utilisateur l'active, charge le contenu distant des messages en arrière-plan, sans que le message soit lu : l'ouverture est enregistrée peu après la réception. Les antivirus et les passerelles de messagerie, très présents chez les clients professionnels, suivent les liens pour les analyser avant la remise : le clic est enregistré sans ouverture, souvent dans la minute qui suit l'envoi.

Salesforce propose, dans un article de sa base de connaissances, d'écarter les clics survenus moins de 100 secondes après l'envoi, en précisant que le seuil est à ajuster. Pour choisir quel signal utiliser, cette grille suffit dans la plupart des cas.

Question métierSignal à utiliserSignal à éviter
Le contenu intéresse-t-il ?Clics filtrés, taux de clic par envoiTaux d'ouverture brut
L'abonné est-il encore actif ?Clics filtrés, achats, visites, sur une fenêtre documentéeOuvertures seules
Peut-on arrêter d'écrire à quelqu'un ?Absence de clic et d'achat, après un nombre minimal d'envois reçusAbsence d'ouverture
Le test A/B sur l'objet est-il gagné ?Clics ou conversionsOuvertures, gonflées de façon inégale selon les messageries
La délivrabilité se dégrade-t-elle ?_Bounce et _ComplaintBaisse des ouvertures

Côté RGPD, choisir « inactif depuis six mois » comme critère de fin de sollicitation est défendable. Appliquer ce critère avec des ouvertures automatiques revient à ne jamais l'appliquer aux utilisateurs d'Apple Mail.

Reconstruire la cible sans se mentir

La reprise se fait en deux requêtes. La première compte les envois reçus sur la fenêtre réellement disponible, parce qu'un abonné qui n'a rien reçu depuis six mois n'est pas inactif : il est hors champ.

SELECT
    s.SubscriberKey,
    COUNT(*)            AS NbEnvois
FROM _Sent AS s
WHERE s.EventDate >= DATEADD(day, -180, GETDATE())
GROUP BY s.SubscriberKey

Écarter les clics trop rapides

La seconde rattache chaque clic à son envoi par les quatre clés et écarte ceux qui suivent l'envoi de trop près.

SELECT
    s.SubscriberKey,
    MAX(c.EventDate)    AS DernierClic
FROM _Sent AS s
INNER JOIN _Click AS c
    ON  c.JobID        = s.JobID
    AND c.ListID       = s.ListID
    AND c.BatchID      = s.BatchID
    AND c.SubscriberID = s.SubscriberID
WHERE s.EventDate >= DATEADD(day, -180, GETDATE())
  AND DATEDIFF(second, s.EventDate, c.EventDate) >= 100
GROUP BY s.SubscriberKey

Le filtre sur _Sent limite le volume lu, et le GROUP BY garantit une seule ligne par clé, condition indispensable pour écrire dans une data extension dont la clé primaire est la SubscriberKey. Un clic humain très rapide sera écarté à tort : c'est le prix du filtre, acceptable pour une cible de réactivation. Mesurez le seuil sur vos propres envois avant de reprendre celui de Salesforce.

La cible finale se lit alors sur ces deux colonnes : au moins six envois reçus, aucun clic filtré. Gardez la dernière ouverture comme information de contexte pour le marketing, jamais comme critère d'exclusion. Rien dans les data views n'expose l'agent utilisateur ou l'origine technique d'une ouverture, donc rien ne permet d'isoler proprement celles qui sont automatiques.

Si vous venez d'Adobe Campaign

_Sent correspond aux logs de diffusion, _Open et _Click aux logs de tracking. La différence tient à la profondeur. Dans Adobe Campaign, le workflow de nettoyage purge ces logs selon des durées réglées à l'installation, que votre équipe peut allonger si la base tient la charge. Dans Marketing Cloud, les six mois ne se négocient pas : au-delà, vous historisez vous-même dans vos propres data extensions.

Autre différence utile au quotidien : les événements ne portent pas de lien direct vers un destinataire en base. Vous récupérez des identifiants, SubscriberID et SubscriberKey, et c'est à vous de les joindre à vos tables. Le premier sert à relier l'événement à son envoi, le second à relier l'événement à votre référentiel. Les confondre est l'erreur la plus fréquente sur les premières requêtes.

Le réflexe à garder

Avant d'écrire une fenêtre dans une requête, vérifiez qu'elle tient dans la rétention. Avant de déclarer quelqu'un inactif, vérifiez qu'il a reçu quelque chose. Et avant de bâtir un score sur les ouvertures, souvenez-vous que chez une partie de vos abonnés, c'est un logiciel qui les produit.

Questions fréquentes

Jusqu'où remontent les data views de Marketing Cloud ?

Les data views d'événements conservent six mois de données : _Sent, _Open, _Click, _Bounce, _Unsubscribe et _Complaint. Une fenêtre plus large ne provoque aucune erreur : une condition écrite sur douze mois s'exécute normalement et renvoie six mois de données. Il faut donc borner la fenêtre à la rétention réelle, ou lire une table d'historique que vous alimentez vous-même.

Quelles colonnes relient une ouverture à l'envoi qui l'a produite ?

Un événement se rattache à un envoi précis par JobID, ListID, BatchID et SubscriberID. La SubscriberKey est présente partout et sert à rejoindre vos data extensions, mais elle ne suffit pas. La joindre seule produit un produit cartésien silencieux : chaque ouverture de l'abonné se rattache à chacun des envois qu'il a reçus.

Pourquoi un taux d'ouverture peut-il dépasser 100 % ?

Parce que ces data views contiennent chaque occurrence, et pas seulement la première. Un abonné qui ouvre cinq fois le même email produit cinq lignes dans _Open. Le filtre IsUnique = 1, ou un COUNT(DISTINCT SubscriberKey), ramène le compte à une seule occurrence par abonné.

Dans quel fuseau horaire les dates des data views sont-elles stockées ?

Les data views stockent leurs horodatages en heure standard du centre des États-Unis, sans changement d'heure, soit UTC moins six heures toute l'année. Un clic horodaté à 3 h dans _Click correspond à 10 h à Paris en hiver et à 11 h en été. Comparer deux dates du même fuseau ne demande aucune conversion ; elle devient obligatoire dès qu'une borne vient du calendrier français.

Peut-on se fier aux ouvertures pour déclarer un abonné inactif ?

Non. Une ouverture est le chargement d'une image de suivi, et les systèmes de suivi n'ont aucun moyen de savoir si elle est humaine ou automatique. Apple Mail Privacy Protection charge le contenu distant en arrière-plan sans que le message soit lu, et rien dans les data views n'expose l'origine technique d'une ouverture. Utilisez les clics filtrés, et gardez la dernière ouverture comme information de contexte, jamais comme critère d'exclusion.

Dans la même série
Pierre Frin
Fondateur Grokium · Consultant CRM · Certifié Adobe Campaign Classic et Salesforce Marketing Cloud Email Specialist

Vos indicateurs d'engagement sont-ils lisibles ?

Je peux auditer vos requêtes sur les data views, vos fenêtres de calcul et vos scores d'inactivité, et vous rendre un diagnostic écrit avec les corrections à appliquer.

Me décrire votre contexte →