Attribution marketing dans le warehouse : guide 2026

L’attribution côté plateforme ne suffit plus. L’App Tracking Transparency d’iOS affiche un taux d’opt-in de 35 %. Google Consent Mode v2 exige quatre paramètres de consentement distincts pour les utilisateurs européens. Et Google a discrètement abandonné ses API Privacy Sandbox fin 2025 après des années de délais. Les outils sur lesquels les marketeurs s’appuyaient pour l’attribution sont de plus en plus peu fiables, voire tout simplement indisponibles.

La réponse des équipes data ? Construire l’attribution là où elles contrôlent les données : leur warehouse.

Pourquoi l’attribution des plateformes ne fonctionne plus

L’attribution marketing répond à une question en apparence simple : quels points de contact méritent du crédit pour une conversion ? Quand un client vous découvre via la recherche organique, clique sur une publicité LinkedIn, lit trois articles de blog, reçoit un email, puis convertit via le paid search — qui obtient le crédit ?

Des plateformes comme Google Analytics et Meta Ads Manager fournissent des rapports d’attribution, mais elles souffrent de limitations fondamentales.

Le biais des walled gardens. Chaque plateforme sur-attribue naturellement sa propre contribution. Les rapports de conversion de Meta ne voient pas les points de contact Google. Google ne voit pas Meta. Aucune des deux ne voit votre séquence d’emails de nurturing. Chaque plateforme revendique des conversions que les autres revendiquent aussi.

L’angle mort cross-device. Sans identity resolution correcte, GA4 voit un utilisateur sur mobile, laptop et tablette comme trois personnes distinctes. Le parcours client se fragmente en sessions déconnectées.

La boîte noire méthodologique. L’attribution Data-Driven de Google ne donne aucune visibilité sur la façon dont le crédit est attribué. Vous obtenez un chiffre sans comprendre comment il a été calculé ni comment l’améliorer.

La dégradation du signal. Entre les bloqueurs de publicité, l’ATT iOS et les exigences de consentement, 40 à 60 % des interactions mobiles ne sont plus trackées. Vos données d’attribution ont des trous que vous ne voyez pas.

Ce que l’attribution en warehouse vous apporte

Déplacer l’attribution dans votre warehouse résout directement ces problèmes.

La propriété des données. Vos données de touchpoints vivent dans une infrastructure que vous contrôlez. Vous ne dépendez plus des politiques de rétention ou des limites d’export des plateformes.

La visibilité cross-platform. Quand les événements GA4, les données des plateformes publicitaires et les conversions CRM cohabitent dans BigQuery, vous pouvez les joindre. Le client qui a cliqué sur une publicité Facebook, visité votre site trois fois et converti après un appel commercial devient un parcours cohérent.

Une logique personnalisable. Votre entreprise n’est pas identique à toutes les autres. Une entreprise B2B avec des cycles de vente de 90 jours a besoin d’une attribution différente d’un site e-commerce avec des achats le jour même. Dans votre warehouse, c’est vous qui définissez les règles.

Un socle conforme à la vie privée. Les données first-party que vous collectez directement (avec consentement) restent exploitables même à mesure que le tracking tiers s’érode. Construire sur ce socle pérennise votre mesure.

Une transparence totale. Chaque calcul est du SQL visible. Quand un stakeholder demande pourquoi un canal a reçu 23 % du crédit, vous pouvez lui montrer la logique exacte.

Les fondations data nécessaires

L’attribution nécessite trois catégories de données dans votre warehouse.

Les données d’interaction site. L’export BigQuery de GA4 fournit des données au niveau événement dans les tables events_YYYYMMDD. Les champs clés incluent user_pseudo_id (identifiant device), user_id optionnel (authentifié), et les informations de source de trafic dans collected_traffic_source ou le plus récent champ session_traffic_source_last_click.

Un avertissement : un bug connu dans GA4 fait que les paramètres gclid attribuent parfois le paid search comme organique. Vérifiez la présence du gclid dans vos paramètres d’URL et envisagez de réécrire le source/medium quand vous le détectez.

Les données des plateformes publicitaires. Vous aurez besoin des données de campagne et de coût des plateformes où vous investissez.

PlateformeSupport natif BigQueryOptions ETL
Google AdsOui (Data Transfer Service)dlt, Fivetran, Airbyte
Meta AdsOui (Data Transfer Service)dlt, Fivetran, Airbyte
LinkedIn AdsNondlt, Fivetran, Airbyte
TikTok AdsNondlt, Fivetran, Airbyte

Les stratégies de jointure utilisent généralement les click IDs (gclid, fbclid, ttclid) pour un matching précis ou les paramètres UTM pour des jointures au niveau session. Standardisez votre taxonomie UTM sur toutes vos campagnes : forcez les minuscules, incluez les click IDs des plateformes et documentez vos conventions de nommage.

Les données de conversion. Elles peuvent provenir de votre plateforme e-commerce, de votre CRM ou de votre base applicative. Il faut pouvoir relier les conversions aux touchpoints marketing qui les ont précédées.

Construire une table de touchpoints

Vos modèles d’attribution opéreront sur une table de touchpoints avec cette structure :

ChampObjectifExemple
user_idIdentifiant utilisateuruser_pseudo_id, customer_id
session_idIdentifiant de sessionga_session_id
timestampHorodatage du touchpointevent_timestamp
channelClassification marketing”paid_search”, “email”
campaignIdentifiant de campagneValeur UTM campaign
conversion_idLien vers la conversionorder_id
revenueValeur de la conversion149.99

Identity resolution

Relier les sessions de navigation anonymes aux clients connus est essentiel pour une attribution précise.

Le matching déterministe utilise des identifiants exacts comme l’email ou le user_id. Quand quelqu’un se connecte, vous pouvez associer son identité authentifiée à ses sessions anonymes précédentes via user_pseudo_id. La précision dépasse 95 %, mais cela nécessite une authentification utilisateur.

Le matching probabiliste utilise des signaux statistiques comme l’adresse IP et les caractéristiques du device. La précision varie de 60 à 85 %, et les réglementations sur la vie privée restreignent de plus en plus cette approche.

Pour la plupart des équipes, le matching déterministe avec des données first-party est la voie à suivre. Capturez le user_id à la connexion, associez-le aux sessions précédentes, et construisez votre graphe d’identité de manière incrémentale à mesure que les utilisateurs interagissent.

Fenêtres de lookback

Jusqu’où faut-il remonter pour identifier les touchpoints ayant contribué à une conversion ? Les benchmarks sectoriels varient :

SecteurFenêtre recommandée
E-commerce (achat impulsif)7-14 jours
E-commerce (achat réfléchi)30-45 jours
B2B mid-market90-180 jours
B2B enterprise180+ jours

Modèles d’attribution heuristiques en SQL

Les modèles heuristiques appliquent des règles prédéfinies pour distribuer le crédit de conversion. Ils sont simples à implémenter et à comprendre, ce qui en fait de bons points de départ avant d’ajouter de la complexité.

Attribution first-touch

Le first-touch attribue 100 % du crédit au premier point de contact. Il répond à la question : quels canaux font découvrir notre marque aux clients ?

WITH touchpoints_numbered AS (
SELECT
user_id,
conversion_id,
channel,
revenue,
timestamp,
ROW_NUMBER() OVER (
PARTITION BY user_id, conversion_id
ORDER BY timestamp ASC
) AS touch_position
FROM touchpoints
WHERE timestamp >= TIMESTAMP_SUB(conversion_timestamp, INTERVAL 30 DAY)
)
SELECT
user_id,
conversion_id,
channel,
revenue AS attributed_revenue
FROM touchpoints_numbered
WHERE touch_position = 1

Idéal pour les campagnes de notoriété et l’optimisation du haut de funnel. La limite évidente : il ignore complètement ce qui a déclenché la conversion.

Attribution last-touch

Le last-touch attribue 100 % du crédit au dernier point de contact avant la conversion. Il répond à la question : quels canaux concluent la vente ?

Le SQL est identique au first-touch, mais avec ORDER BY timestamp DESC.

Bien qu’il soit le modèle par défaut de nombreuses plateformes, seuls 14 % des marketeurs considèrent l’attribution last-click comme efficace. Il ignore la découverte et le nurturing qui ont rendu la conversion possible.

Attribution linéaire

L’attribution linéaire distribue le crédit de manière égale entre tous les touchpoints. Cinq touchpoints reçoivent chacun 20 %.

WITH touchpoints_counted AS (
SELECT
user_id,
conversion_id,
channel,
revenue,
COUNT(*) OVER (PARTITION BY user_id, conversion_id) AS total_touches
FROM touchpoints
)
SELECT
user_id,
conversion_id,
channel,
revenue / total_touches AS attributed_revenue
FROM touchpoints_counted

Le linéaire offre une vue équilibrée quand tous les touchpoints contribuent réellement. Sa limite : il peut sur-créditer des interactions à faible impact dans les parcours longs.

Attribution position-based (U-shaped)

Le position-based pondère davantage le premier et le dernier touchpoint, généralement 40 % chacun, les 20 % restants étant distribués entre les touchpoints intermédiaires.

WITH touchpoints_positioned AS (
SELECT
user_id,
conversion_id,
channel,
revenue,
ROW_NUMBER() OVER (
PARTITION BY user_id, conversion_id ORDER BY timestamp ASC
) AS position,
COUNT(*) OVER (PARTITION BY user_id, conversion_id) AS total_touches
FROM touchpoints
)
SELECT
user_id,
conversion_id,
channel,
CASE
WHEN total_touches = 1 THEN 1.0
WHEN total_touches = 2 THEN 0.5
WHEN position = 1 THEN 0.4
WHEN position = total_touches THEN 0.4
ELSE 0.2 / (total_touches - 2)
END * revenue AS attributed_revenue
FROM touchpoints_positioned

Ce modèle valorise à la fois la découverte (premier contact) et la conversion (dernier contact) tout en créditant le nurturing intermédiaire.

Attribution time-decay

Le time-decay attribue plus de crédit aux touchpoints proches de la conversion, selon une décroissance exponentielle :

Weight = 2^(-days_before_conversion / half_life)

Avec une demi-vie de 7 jours (valeur par défaut de Google Analytics), un touchpoint 7 jours avant la conversion reçoit 50 % du poids, 14 jours 25 %, et ainsi de suite.

WITH decay_weights AS (
SELECT
user_id,
conversion_id,
channel,
revenue,
conversion_timestamp,
timestamp,
POW(0.5, TIMESTAMP_DIFF(conversion_timestamp, timestamp, MINUTE) / (7.0 * 24 * 60)) AS raw_weight
FROM touchpoints
),
normalized AS (
SELECT
*,
SUM(raw_weight) OVER (PARTITION BY user_id, conversion_id) AS total_weight
FROM decay_weights
)
SELECT
user_id,
conversion_id,
channel,
(raw_weight / total_weight) * revenue AS attributed_revenue
FROM normalized

Ajustez la demi-vie en fonction de votre cycle de vente : 3-7 jours pour le e-commerce impulsif, 14-30 jours pour le B2B mid-market, 30-45 jours pour l’enterprise.

Attribution data-driven : chaînes de Markov et valeurs de Shapley

Les modèles heuristiques appliquent les mêmes règles quel que soit le comportement réel des clients. Les modèles data-driven apprennent de vos données quels canaux génèrent réellement des conversions.

Attribution par chaînes de Markov

Une chaîne de Markov modélise les parcours clients comme une séquence d’états (canaux) où la probabilité de passer à l’état suivant dépend de l’état actuel.

Le crédit est attribué via l’effet de retrait (removal effect). On retire un canal entièrement du graphe, puis on mesure de combien la probabilité de conversion chute. Si retirer Facebook de tous les parcours fait passer la probabilité de conversion totale de 50 % à 11 %, l’effet de retrait de Facebook est de 78 %.

Comme les effets de retrait ne totalisent pas 100 %, ils sont normalisés :

Share(Canal) = Effet de retrait(Canal) / Somme(Tous les effets de retrait)
Attribution(Canal) = Share(Canal) × Total des conversions

Les modèles de Markov d’ordre 1 ne considèrent que l’état actuel. Les modèles d’ordre supérieur (2e, 3e ordre) prennent en compte les états précédents, capturant des patterns comme « les utilisateurs qui voient Facebook puis Google convertissent mieux que ceux qui ne voient que Google ». Ils nécessitent exponentiellement plus de données.

Le SQL pour calculer les probabilités de transition est assez direct ; le calcul de l’effet de retrait passe généralement par Python avec des librairies comme ChannelAttribution.

Attribution par valeurs de Shapley

Issues de la théorie des jeux coopératifs, les valeurs de Shapley attribuent le crédit en fonction de la contribution marginale de chaque canal dans toutes les combinaisons possibles de canaux.

La formule évalue chaque coalition possible de canaux et mesure combien l’ajout d’un canal spécifique améliore le résultat. Elle satisfait des propriétés mathématiques intéressantes : les contributeurs égaux reçoivent un crédit égal, les canaux sans valeur ne reçoivent rien, et les crédits totalisent le montant global.

Le calcul croît de manière exponentielle : 10 canaux nécessitent l’évaluation de 1 024 coalitions, et 20 canaux plus d’un million. Des méthodes d’approximation comme l’échantillonnage Monte Carlo rendent ce calcul réalisable.

L’attribution Data-Driven de Google

Le DDA de Google combine des modèles de probabilité de conversion avec une distribution de crédit basée sur Shapley. Il prend en compte jusqu’à 50 touchpoints par conversion avec un lookback de 90 jours.

Le piège : le DDA nécessite plus de 400 conversions par type sur 30 jours et environ 10 000 parcours avec 2+ interactions. Si vous n’atteignez pas ces seuils, GA4 bascule silencieusement en last-click sans vous prévenir.

Construire dans votre warehouse, c’est la transparence. Vous savez exactement quel modèle tourne et pourquoi les canaux reçoivent le crédit qu’ils reçoivent.

Outils et patterns d’implémentation

Packages dbt pour l’attribution

Plusieurs packages dbt open-source fournissent des modèles d’attribution prêts pour la production :

  • snowplow/dbt-snowplow-attribution : Compatible Snowflake, BigQuery, Databricks et Redshift. Inclut first-touch, last-touch, linéaire, position-based et time-decay avec calcul du ROAS.
  • snowplow/dbt-snowplow-fractribution : Attribution data-driven avec chaînes de Markov et valeurs de Shapley.
  • TasmanAnalytics/tasman-dbt-mta : Moteur d’attribution multi-touch et multi-cycle configurable pour Snowflake et BigQuery.
  • rittmananalytics/ra_attribution : Intégration multi-sources (Snowplow, Segment, RudderStack) avec données de dépenses publicitaires.

Librairies Python

Pour les modèles data-driven qui nécessitent des opérations matricielles :

  • ChannelAttribution (R et Python) : Chaînes de Markov d’ordre k avec backend C++ pour le passage à l’échelle
  • marketing-attribution-models (DP6) : Markov, Shapley et tous les modèles heuristiques avec pondérations personnalisables

Structure de couches dbt recommandée

models/
├── base/
│ └── base__ga4__events.sql # Nettoyage des événements bruts
├── intermediate/
│ ├── int__sessions_stitched.sql # Sessionisation
│ ├── int__touchpoints_classified.sql # Touchpoints marketing
│ └── int__conversion_paths_sequenced.sql # Parcours utilisateur
├── marts/attribution/
│ ├── mrt__attribution__first_touch.sql
│ ├── mrt__attribution__last_touch.sql
│ ├── mrt__attribution__linear.sql
│ ├── mrt__attribution__position_based.sql
│ ├── mrt__attribution__time_decay.sql
│ └── mrt__attribution__comparison.sql

Utilisez des modèles incrémentaux avec des fenêtres de lookback appropriées pour les données en retard. Vérifiez que les crédits d’attribution totalisent bien 100 % par conversion.

Récupérer les signaux perdus

Les implémentations de tracking server-side récupèrent les conversions perdues à cause des restrictions navigateur. GTM server-side, Meta Conversions API et Google Enhanced Conversions peuvent récupérer 30 à 40 % des conversions qui disparaîtraient autrement.

Ces données alimentent votre warehouse, améliorant la complétude de votre table de touchpoints.

Rendre l’attribution actionnable

L’approche triangulée

Les stratégies de mesure les plus robustes ne reposent pas sur une seule méthodologie. Elles combinent trois approches :

L’attribution multi-touch (MTA) pour l’optimisation digitale au quotidien. Données au niveau utilisateur, analyse granulaire des touchpoints, ajustements en temps réel.

Le media mix modeling (MMM) pour l’allocation budgétaire stratégique trimestrielle. Données agrégées, respectueuses de la vie privée, qui incluent les canaux offline comme la TV et l’affichage.

Les tests d’incrémentalité pour prouver l’impact causal. Des tests holdout où une partie de l’audience ne voit pas les publicités, des splits géographiques, ou des outils plateforme comme Meta Conversion Lift.

Utilisez les résultats d’incrémentalité pour calibrer vos modèles d’attribution. Si votre modèle dit que Facebook génère 30 % des conversions mais que votre test holdout montre seulement 15 % de lift incrémental, ajustez en conséquence.

Utiliser la divergence entre modèles comme signal

Exécutez plusieurs modèles d’attribution en parallèle. Quand first-touch, last-touch, position-based et time-decay s’accordent tous pour dire que la recherche organique génère 25 % de la valeur, vous avez un niveau de confiance élevé. Quand les résultats varient de 10 % à 40 %, l’incertitude est forte — et les stakeholders doivent le savoir.

Présentez les résultats sous forme de fourchettes plutôt qu’avec une fausse précision : « Le canal X génère entre 50 000 et 80 000 € selon le modèle d’attribution. »

Signaux d’alerte d’une attribution défaillante

Surveillez ces signaux indiquant que votre attribution ne fonctionne pas :

  • Le revenu attribué diverge significativement du revenu réel
  • Augmenter le budget sur un canal à « fort ROAS » ne se traduit pas en croissance du profit
  • Plus de 60 % des deals ne peuvent être rattachés à aucune activité marketing

Par où commencer

Adaptez votre approche à votre échelle actuelle :

StadeApproche recommandée
Début / PMEModèles heuristiques (linéaire, time-decay) en SQL
Croissance (500+ conversions mensuelles)Chaîne de Markov (ordre 1-2)
Scale (1 000+ conversions)Valeurs de Shapley, calibration par incrémentalité
Enterprise (écosystème Google)Google DDA + validation custom en warehouse
Enterprise (contrôle total)Markov/Shapley custom, mesure triangulée

Commencez par les modèles heuristiques. Ils sont transparents, faciles à expliquer aux stakeholders, et souvent suffisants pour les premières optimisations. Ajoutez les approches data-driven quand vous avez le volume de données pour les alimenter et les questions qui les justifient.

Aucun modèle ne fournit une précision absolue, et ce n’est pas grave. Les parcours clients sont complexes, et les canaux interagissent de manière difficile à mesurer proprement. Une attribution transparente, défendable et suffisamment bonne pour améliorer les décisions bat un chiffre en boîte noire à tous les coups.

Construisez dans votre warehouse, exécutez plusieurs modèles, validez par l’expérimentation et présentez les résultats avec l’incertitude qui convient.