Aller au contenu principal
9 min de lecture

Modèles d'attribution

Chaque visiteur dans Zenovay porte deux instantanés d'attribution : son canal first-touch (comment il vous a découvert) et son canal last-touch (canal de la session de conversion ou de la session la plus récente). Les deux sont stockés indépendamment — le first-touch est verrouillé à la toute première observation et n'est jamais écrasé.

Pourquoi deux instantanés

L'attribution marketing est une question de crédit. Si un visiteur arrive d'abord par recherche Google organique, revient trois semaines plus tard via une annonce LinkedIn payante, puis convertit en visite directe :

  • Last-touch crédite direct. (Sous-estime souvent le marketing.)
  • First-touch crédite organic search. (Surestime souvent le SEO.)
  • Les modèles linéaire / position-based / time-decay répartissent le crédit sur chaque canal du parcours du visiteur — sélectionnables dans l'onglet Revenue (voir ci-dessous).

Zenovay commence simple : first-touch et last-touch sont stockés, et le tableau de bord permet de basculer entre les deux.

Ce que capture le first-touch

À la toute première observation d'un visiteur, Zenovay remplit ces colonnes :

ColonneSignification
first_touch_channelCanal — organic, direct, referral, social, email, paid, ai
first_touch_utm_sourceUTM source, si présent
first_touch_utm_mediumUTM medium
first_touch_utm_campaignUTM campaign
first_touch_utm_contentUTM content
first_touch_utm_termUTM term
first_touch_referrerURL de référent du document
first_touch_landing_pagePremière URL d'arrivée
first_touch_atHorodatage de la première observation

Ces champs ne sont jamais écrasés lors des sessions ultérieures. Les colonnes non préfixées (channel, utm_*, referrer, landing_page) sont mises à jour à chaque session et représentent le last-touch.

Les visiteurs observés avant le 30/04/2026 ont des valeurs first-touch NULL. L'historique n'a pas été rétro-rempli.

Classification des canaux

Les canaux sont classés dans cet ordre de priorité :

  1. Click IDs (gclid, fbclid, ttclid, msclkid) — toujours paid.
  2. utm_mediumcpc/ppc/paid/display/banner/cpmpaid ; emailemail ; socialsocial ; referral/affiliatereferral ; organicorganic.
  3. utm_source comparé à des listes curées.
  4. Hostname du référent — moteurs de recherche → organic ; plateformes sociales → social ; webmail → email ; sinon → referral.
  5. Détection de navigateur in-app (Discord, Facebook, Instagram, …) — social.
  6. Pas de référent + pas d'UTMdirect.

Un visiteur identifié par l'heuristique IA de Zenovay comme un bot est forcé sur ai quel que soit l'UTM.

Trafic email — le correctif référent vide

Les liens dans les emails n'ont généralement pas de header Referer. Sans UTM, ce trafic était auparavant mal classé en direct.

Zenovay capture cela de deux façons :

  1. utm_medium=email → canal email, peu importe le référent.
  2. Pas de référent + utm_source correspondant à un ESP connu (Mailchimp, Klaviyo, HubSpot, ActiveCampaign, Brevo, ConvertKit, MailerLite, Beehiiv, Customer.io, GetResponse, Omnisend, Substack, Drip, Intercom, Postscript, Attentive, Iterable, Braze, Resend, Loops, Marketo, Pardot, etc.) → canal email.

La liste complète des ESP est dans api-zenovay/src/constants/domains.ts (EMAIL_UTM_SOURCES). Pour que vos campagnes email soient bien classées :

<!-- Convention UTM recommandée pour tous les liens d\'email -->
<a href="https://votre-site.com/?utm_source=mailchimp&utm_medium=email&utm_campaign=launch">
  Lire la suite
</a>

utm_medium=email OU un utm_source reconnu suffit — pas besoin des deux.

Lire l'attribution dans le tableau de bord

L'onglet Sources et la fiche détail visiteur permettent désormais de basculer entre first-touch et last-touch directement dans l'UI — plus besoin d'interroger la base.

Onglet Sources

La carte Sources du tableau de bord a un bouton First touch | Last touch dans son en-tête. La sélection persiste dans l'URL (?attribution=first ou ?attribution=last), donc le rechargement et la navigation arrière/avant préservent ton choix. Par défaut : last-touch (comme avant).

La carte a quatre vues de premier niveau :

OngletAttribution par défautCe qui est montré
ChannelSuit la basculeVisiteurs ventilés en 9 buckets : Direct, Organic Search, Organic Social, Referral, Paid Search, Paid Social, Email, Affiliate, Display
ReferrerSuit la basculeTop domaines référents avec favicons ; navigateurs in-app (ChatGPT, Snapchat, etc.) classés via utm_source
UTMsSuit la basculeCinq sous-onglets : Source, Medium, Campaign, Content, Term. Un bucket (none) compte les visiteurs sans cette dimension
KeywordToujours last-touchDepuis ta connexion Google Search Console ; la bascule ne s'applique pas

En basculant sur First touch, les vues Channel / Referrer / UTM passent aux valeurs premier observées du visiteur. Les analytics importés (imports CSV Plausible) sont last-touch uniquement — ces lignes sont ignorées en vue first-touch pour préserver la cohérence du modèle.

Les tableaux de bord publics affichent toujours l'attribution last-touch. Le bouton est réservé à l'owner en V1 ; un défaut côté serveur par partage suivra.

Fiche détail visiteur

En cliquant sur un profil visiteur, la barre latérale affiche un panneau Attribution compact : first-touch (channel + utm_source + landing + date première vue) à gauche, last-touch (channel + utm_source + referrer + landing) à droite. Le panneau se masque pour les visiteurs antérieurs à FND-B (≈2% de l'historique) afin d'éviter une ligne de tirets.

Onglet Revenue

La carte Attribution de l'onglet Revenue propose un sélecteur de cinq modèles — Last-Touch (par défaut), First-Touch, Linear, Position-Based et Time-Decay. Le choix persiste dans l'URL (?model=), donc le rechargement et la navigation arrière/avant conservent le modèle choisi. Par défaut : last-touch.

Les cinq modèles d'attribution

Chaque modèle répond différemment à la question « quel canal reçoit le crédit de cette conversion ? » :

ModèleCe qu'il créditeQuand l'utiliser
Last-Touch100 % au dernier canal avant la conversionVous voulez savoir ce qui conclut les ventes
First-Touch100 % au canal qui a amené le visiteur en premierVous voulez savoir ce qui génère la découverte
LinearRéparti équitablement sur chaque canal du parcoursVous voulez une vue équilibrée et neutre
Position-Based40 % premier, 40 % dernier, 20 % réparti au milieuVous voulez récompenser découverte ET conclusion
Time-DecayPlus de crédit aux canaux proches de la conversionVous avez des cycles de vente plus courts

Time-Decay utilise une demi-vie de 7 jours : une interaction 7 jours avant la conversion reçoit la moitié du poids d'une interaction au moment de la conversion, et la pondération continue de se diviser par deux tous les 7 jours supplémentaires.

Note sur l'historique des données

Si la plupart des conversions d'une période proviennent d'une seule session, les modèles multi-touch (Linear, Position-Based, Time-Decay) ressembleront beaucoup au Last-Touch — il n'y a qu'un seul canal sur lequel répartir le crédit. C'est un comportement attendu, pas un bug, et cela se résout de soi-même à mesure que des parcours multi-sessions s'accumulent.

Comment chaque modèle lit vos données

Les cinq modèles ne puisent pas tous dans la même source :

  • Last-Touch et First-Touch utilisent chacun un seul instantané. Last-Touch crédite le canal enregistré lors de la session de conversion ; First-Touch crédite le canal de la toute première session observée du visiteur. Aucune reconstruction de parcours n'est nécessaire.
  • Linear, Position-Based et Time-Decay reconstruisent l'intégralité du parcours multi-sessions du visiteur, en récupérant chaque visite enregistrée avant la conversion et en répartissant le crédit sur les sessions trouvées.

Une conséquence de cette différence : sur les mêmes données brutes, les modèles peuvent se rejoindre complètement ou diverger sensiblement, selon le nombre de sessions distinctes et de canaux différents qu'un visiteur a traversés avant de convertir. Un visiteur avec un parcours en une seule session donnera la même réponse à tous les modèles. Un visiteur avec cinq sessions sur trois canaux produira des résultats mesurables différents selon chaque modèle.

Pourquoi vos modèles peuvent sembler presque identiques

Lorsque vous basculez entre les modèles d'attribution et que la répartition des canaux change à peine, les données se comportent correctement — ce n'est pas un problème d'affichage.

Si la plupart de vos conversions proviennent de visiteurs n'ayant eu qu'une seule session (ou ayant systématiquement utilisé un seul canal avant de convertir), chaque modèle attribue mathématiquement 100 % du crédit à ce canal. Last-Touch, First-Touch, Linear, Position-Based et Time-Decay parviennent tous au même résultat, car il n'y a rien à distribuer différemment. À mesure que votre audience croît et que davantage de visiteurs touchent plusieurs canaux sur plusieurs sessions avant de convertir, les modèles divergeront et la comparaison deviendra plus instructive.

Quelques points supplémentaires à garder à l'esprit lors de la comparaison des modèles :

  • Le trafic IA est toujours crédité sur le canal dédié ai quel que soit le modèle d'attribution. La détection IA prend le dessus sur le chemin de touches, de sorte que la ligne IA reste constante lorsque vous changez de modèle.
  • Une conversion sans valeur monétaire compte tout de même dans l'attribution des conversions. Les comparaisons pondérées par les revenus nécessitent qu'une valeur monétaire soit attachée à l'objectif — sans elle, ces conversions apparaissent dans les comptages mais ne contribuent pas aux totaux de revenus affichés par chaque modèle.

Dimensions UTM vides

La plupart des visiteurs n'ont pas tous les paramètres UTM. Dans les données Zenovay réelles aujourd'hui, utm_term est ≈100% null et utm_content ≈99,99% null. L'onglet Sources affiche un état vide avec un indice copiable (?utm_term=...) plutôt qu'une barre unique à 100% de (none).

Liens connexes

Cette page vous a-t-elle été utile ?