Modélisation d'attribution avec SQL : au-delà du "dernier clic"
Le groupement de canaux par défaut GA4 vous ment. Comment écrire du SQL brut dans BigQuery pour calculer l'attribution basée sur le temps et la position.
Votre tableau de bord indique : « Revenus des e-mails : 50 000 € ». Votre responsable Facebook indique : « Revenus FB : 80 000 € ». Votre total Shopify est : ”\€100 000”. Les calculs ne correspondent pas. Pourquoi? Double attribution. Facebook et Email réclament tous deux un crédit pour la même vente. La plupart des outils utilisent l’attribution Dernier clic. La dernière touche obtient 100 % de crédit. Cela tue votre marketing Top-of-Funnel (TikTok, influenceurs) car ils génèrent rarement le dernier clic. Ils génèrent le premier clic.
Pourquoi Maison Code en parle
Chez Maison Code Paris, nous agissons comme la conscience architecturale de nos clients. Nous héritons souvent de stacks “modernes” construites sans compréhension fondamentale de l’échelle.
Nous abordons ce sujet car il représente un point de pivot critique dans la maturité de l’ingénierie. Une mise en œuvre correcte différencie un MVP fragile d’une plateforme résiliente de niveau entreprise.
Pourquoi Maison Code discute de l’ingénierie des données
Le marketing n’est plus « l’art et l’artisanat ». C’est de la « science des données ». Si vous dépensez 1 million de dollars par an en publicités sans entrepôt de données, vous volez à l’aveugle. Nous mettons en œuvre des Modèles d’attribution personnalisés. Nous ne faisons pas confiance à la boîte noire de Google. Nous faisons confiance au SQL brut. Nous aidons les directeurs financiers à comprendre où va réellement l’argent.
1. Le pipeline de données brutes
Pour résoudre ce problème, nous avons besoin de données brutes sur le parcours de navigation.
Nous exportons les données GA4 vers BigQuery.
Nous avons une table events avec user_pseudo_id, event_name, timestamp, source, medium, campaign.
L’interface utilisateur GA4 standard regroupe cela. BigQuery nous donne le journal brut.
Nous pouvons maintenant reconstruire le Chemin utilisateur.
2. Les modèles
1. Attribution linéaire (socialiste)
Chaque point de contact reçoit le même crédit.
Chemin utilisateur : TikTok -> Google Ads -> E-mail -> Acheter (100 €).
- TikTok : 33,33 € * Google : 33,33 €
- Courriel : 33,33 €
-- BigQuery SQL pour l'attribution linéaire
AVEC chemins COMME (
SÉLECTIONNER
identifiant_utilisateur,
ID_transaction,
ARRAY_AGG (horodatage source ORDER BY) comme points de contact,
ANY_VALUE(revenue) comme total_revenue
DE `analytics.events`
GROUPER PAR 1,2
)
SÉLECTIONNER
source,
SUM(total_revenue / ARRAY_LENGTH(touchpoints)) en tant qu'attribué_revenue
FROM chemins, UNNEST (points de contact) comme source
GROUPER PAR 1
2. Décroissance du temps (réaliste)
Les touches plus proches de la conversion valent plus.
Nous appliquons une formule de demi-vie (par exemple 7 jours).
Chemin d’accès utilisateur : TikTok (il y a 10 jours) -> Email (Aujourd'hui) -> Acheter.
Le courrier électronique obtient 80 %. TikTok obtient 20 %.
Ceci respecte le pouvoir « Closing » du canal.
3. Basé sur la position (en forme de U)
The First Touch (Discovery) et Last Touch (Closer) sont les héros. Le milieu est le « Mainteneur ». *Premier : 40 %
- Dernier : 40%
- Milieu : 20 % (Partagé). C’est la norme pour les équipes de croissance. Il récompense le « Chasseur » (TikTok) et le « Closer » (Email).
3. Le problème de la fenêtre (lookback)
Jusqu’où regardez-vous en arrière ?
- Facebook par défaut : clic sur 7 jours, vue sur 1 jour.
- Cycle d’achat de luxe : 45 jours.
Si vous vendez des meubles coûteux, un délai de 7 jours est inutile.
Avec SQL, nous pouvons définir
LOOKBACK_WINDOWsur 90 jours. Nous pouvons analyser le « temps de conversion ». Nous constatons que les publicités TikTok mettent 20 jours à mûrir, tandis que Google Ads se convertit en 2 heures.
4. Résolution d’identité (multi-appareils)
La partie la plus difficile.
L’utilisateur clique sur l’annonce sur iPhone (mobile).
L’utilisateur achète sur un ordinateur portable (ordinateur de bureau).
GA4 voit 2 utilisateurs.
Nous utilisons l’assemblage User-ID.
Lorsqu’ils se connectent ou cliquent sur un lien e-mail (avec le hachage user_id), nous mappons device_id_A et device_id_B à master_user_X.
Cela unifie le chemin.
Sans cela, vous surcomptez les utilisateurs et sous-estimez l’impact mobile.
5. Le Privacy Sandbox (La mort des cookies)
Safari (ITP) supprime les cookies après 7 jours. Chrome abandonne les cookies tiers. Le suivi côté client est en train de mourir. Server-Side Tracking (CAPI) est la réponse. Nous envoyons les événements du serveur (Shopify/Node.js) directement à Facebook/Google. Nous contournons le navigateur. Cela améliore la précision des données de 20 %. Il est robuste contre les bloqueurs de publicités.
5. L’Apocalypse des cookies (détaillé)
Les cookies sont en train de mourir. ITP (Intelligent Tracking Prevention) sur Safari limite la durée de vie des cookies à 7 jours (ou 24 heures). Firefox les bloque par défaut. Chrome les supprime progressivement. Cela signifie que les « utilisateurs connus » ressemblent à des « nouveaux utilisateurs ». Vos mesures « Acquisition de nouveaux utilisateurs » sont gonflées. Votre « Rétention » est dégonflée. Le correctif :
- Cookies propriétaires : Définissez les cookies
HttpOnlyde votre propre domaine (api.maisoncode.paris). ITP les traite mieux. - Identifiants persistants : demandez aux utilisateurs de se connecter plus tôt. Utilisez l’e-mail comme identifiant, pas comme cookie.
6. Salles blanches de données (Snowflake / Ads Data Hub)
Dans un monde axé sur la confidentialité, vous ne pouvez pas partager de données utilisateur avec Google. Entrez dans les salles blanches de données. Vous téléchargez vos données (e-mails hachés) dans un environnement sécurisé neutre (Snowflake). Google télécharge leurs données (e-mails hachés qui ont vu des publicités). La salle blanche les fait correspondre et vous donne des résultats globaux. “500 personnes qui ont vu la publicité ont acheté le produit.” Vous ne voyez jamais qui ils sont. Google ne voit jamais votre CRM. C’est l’avenir de la mesure des annonces.
7. Tests d’incrémentalité (annonces fantômes)
Les modèles d’attribution sont théoriques. L’incrémentalité est scientifique. La question : “Auraient-ils acheté de toute façon ?” Le test :
- Groupe A : voit l’annonce.
- Groupe B (Contrôle) : voit une “annonce fantôme” (ou un message d’intérêt public générique) ou rien.
Comparez les taux de conversion.
Ascenseur = (Taux de conversion A - Taux de conversion B). Si Lift est égal à 0, vos annonces sont inutiles, même si GA4 indique qu’elles ont généré 1 million de dollars. Arrêtez de payer pour des conversions que vous auriez obtenues gratuitement.
8. Le modèle de chaîne de Markov (algorithmique)
Linéaire et en forme de U sont des heuristiques (règles que nous avons établies). Les chaînes de Markov sont probabilistes. L’algorithme analyse 10 000 chemins. Il calcule « l’effet de suppression ». “Si nous supprimons TikTok du mix, combien de conversions perdons-nous ?” Il s’agit de la valeur « Vrai » du canal. Cela nécessite Python/R, mais c’est la référence.
9. L’analyse de la fenêtre de conversion
SQL nous permet de répondre à des questions auxquelles GA4 ne peut pas répondre. “Un utilisateur qui visite 5 fois achète-t-il plus qu’un utilisateur qui visite 2 fois ?” (Étonnamment, souvent non. Ils peuvent être des robots ou indécis). “Quel est le délai moyen entre le premier clic et l’achat ?” Si c’est 3 minutes, votre référencement fonctionne. Si c’est 30 jours, votre Email Nurture fonctionne. Nous segmentons cela par catégorie de produits. Les “chaussettes” achètent vite. Les “canapés” achètent lentement.
10. Conversions hors ligne (intégration POS)
Si vous possédez des magasins physiques, vos publicités en ligne génèrent des ventes hors ligne. Si vous ne suivez pas cela, vous sous-investissez dans la publicité. Flux de travail :
- Capturez « customer_email » ou « loyalty_id » au point de vente (POS).
- Téléchargez cette liste sur Facebook/Google (API d’événements hors ligne).
- La plateforme publicitaire correspond à l’utilisateur.
- “Acquis via Instagram -> Acheté en boutique à Paris”. Cela boucle la boucle. Cela double souvent le ROAS rapporté de vos campagnes.
11. Le piège du ROAS (Revenu vs Profit)
Les responsables marketing optimisent le ROAS (Revenus / Dépenses publicitaires). Mais les revenus ne sont pas les bénéfices. Si vous vendez un produit à faible marge avec un ROAS élevé, vous perdez de l’argent. Nous calculons le POAS (Profit on Ad Spend). « POAS = (Revenus – COGS – Expédition – Taxes) / Dépenses publicitaires ». Nous extrayons les données de marge de Shopify vers BigQuery. Nous disons à Ad Manager : “Tuez la campagne avec un ROAS de 4,0 car elle a un POAS de 0,8”. “Faites évoluer la campagne avec un ROAS de 2,0 car elle a un POAS de 1,5.” Optimisez pour le compte bancaire, pas pour la vanité.
12. L’avenir : la modélisation du mix média (MMM)
Alors que le tracking disparaît, nous retournons aux années 1960. Économétrie. Nous corrélons les « pics de dépenses publicitaires » avec les « pics de revenus ». “Chaque fois que nous dépensons 10 000 € à la télévision, la recherche organique augmente de 5 %.” Nous utilisons des bibliothèques open source comme Meta Robyn (R) ou Google LightweightMMM (Python) pour exécuter des modèles de régression bayésienne. Ce modèle ne se soucie pas des cookies. Il se soucie de la corrélation. Il s’agit de la source ultime de vérité dans un monde axé sur la confidentialité.
13. Conclusion
L’attribution n’est pas la vérité. C’est une négociation. Il n’existe pas de modèle « correct ». Mais le « dernier clic » est définitivement le « mauvais » modèle de croissance. En passant à SQL, vous possédez la logique. Vous pouvez voir la valeur de vos campagnes de notoriété de marque. Arrêtez de deviner. Commencez à interroger.
Vous brûlez de l’argent avec les publicités ?
Nous auditons vos modèles d’attribution pour trouver le véritable ROAS à l’aide de BigQuery et dbt.