Le but de ce guide est de te donner l’architecture complète, utilisée par les meilleurs SaaS (Notion, Stripe, Figma, Monday, HubSpot), décomposée étape par étape.
le marketing (acquisition, attribution),
le produit (activation, feature usage),
le business (paiements, renouvellements, MRR, churn),
la rétention (DAU/WAU/MAU),
le support & le succès client (onboarding calls, tickets),
la performance mobile + web,
le multi-device,
les interactions offline,
les automatisations backend.
Bref : un SaaS vit partout, tout le temps.
Et sans une architecture tracking solide, tu obtiens :
❌ KPIs contradictoires
❌ attribution éclatée
❌ fondues web/app non connectées
❌ churn non expliqué
❌ LTV sous-estimée
❌ mauvaise compréhension de l’activation
❌ décisions business basées sur des données imprécises
Le but de ce guide est de te donner l’architecture complète, utilisée par les meilleurs SaaS (Notion, Stripe, Figma, Monday, HubSpot), décomposée étape par étape, pour :
obtenir une Customer 360 complète,
analyser l’activation, la rétention, l’expansion, le churn,
améliorer drastiquement ton produit,
optimiser ton marketing,
piloter ton MRR avec précision,
unifier web + mobile + backend + CRM + offline.
Prépare-toi : on construit une archi solide, moderne, durable.
Avant d’assembler, il faut comprendre les briques.
Collecte :
pages vues,
events produit,
funnels,
interactions UI.
Limites :
cookies faibles (ITP Safari, Firefox)
adblockers
données peu fiables comparées au backend
Usage recommandé : comportement utilisateur + événements non critiques.
Collecte :
écran, feature usage, app_open
notifications push
signup/login mobile
achats in-app
deferred deep links
Forces :
très fiable
très peu bloqué
User-ID stable
Usage : rétention, activation mobile, usage produit.
C’est la brique la plus importante d’un SaaS.
Elle collecte :
création de comptes, workspaces, organisations
abonnements Stripe / Chargebee
upgrades / downgrades
churn
trial start / trial end
quotas dépassés
imports / exports
automatisations internes
API calls
Le backend représente la vérité business.
Dans un SaaS, le parcours client inclut souvent :
un appel de qualification,
une demo,
un onboarding call,
des tickets support,
des interactions manuelles (upgrade manuelle, churn administratif).
Ne pas les tracker = perdre 40% du funnel réel.
La brique la plus critique pour les entreprises matures.
Le warehouse permet :
fusion web/mobile/backend
modélisation Customer 360
cohorte d’activation, de rétention, de LTV
attribution marketing complète
analyses produit avancées
détection prédictive (churn, expansion)
C’est le point de vérité ultime.
Un tracking ne se construit pas en listant des événements au hasard.
Il se construit en répondant à 3 questions :
Quels canaux génèrent de vrais utilisateurs activés ?
Quelle source amène des clients payants (pas seulement des signups) ?
Quel canal génère la meilleure LTV ?
Combien coûte un utilisateur activé ?
Un SaaS n’a pas 1 activation → il en a 3 :
activation technique (signup → onboarding complet),
activation produit (“Aha moment”),
activation revenue (le moment où l’utilisateur paye).
Ton tracking doit révéler :
→ quelles actions mènent à l’activation
→ quelles actions prédisent le churn
→ quelles améliorations réduisent l’activation time
Quelles fonctionnalités prédisent la rétention à 7/30/90 jours ?
Quel usage produit prédit l’upsell ?
Quelles actions précèdent un downgrade ou churn ?
Le tracking doit mesurer tout ce qui influence la valeur client.
Voici la base d’un vrai plan de tracking SaaS moderne.
Format obligatoire :
👉 verbe + objet
En anglais (standard universel, LLM-friendly).
Exemples :
account_created
workspace_created
project_created
feature_used
payment_failed
subscription_upgraded
À éviter :
❌ ProjectCreation
❌ utilisateurCree
❌ create_project_event_v2
Les LLM ne les comprennent pas bien.
Les PMs non plus.
Chaque événement doit contenir :
Propriété | Rôle |
|---|---|
| identifiant unique du CRM |
| multi-tenant |
| web/mobile/desktop |
| free/pro/enterprise |
| billing exact |
| source marketing |
| boolean |
| utilisé pour analyser l'usage |
Toujours en snake_case.
signup_started
signup_completed
onboarding_step_completed
onboarding_completed
feature_used
project_created
file_uploaded
integration_connected
team_invited
role_updated
workspace_joined
subscription_started
payment_succeeded
payment_failed
subscription_cancelled
subscription_renewed
demo_booked
onboarding_call
ticket_resolved
manual_upgrade
{
"event": "project_created",
"user_id": "u_4910",
"workspace_id": "w_220",
"properties": {
"device": "web",
"source": "google_ads",
"plan_type": "pro",
"feature_name": "projects",
"project_type": "design"
},
"timestamp": "2025-02-10T15:21:35Z"
}
✔️ fiable
✔️ stable
❌ moins flexible pour les équipes marketing
✔️ flexible
✔️ rapide à déployer
❌ moins fiable (adblockers)
SDK → events critiques
GTM → marketing / opportunistes
Le user_id doit venir du backend (après login/signup).
window.user_id = "{{USER_ID_FROM_BACKEND}}";
analytics.identify(window.user_id);
En GTM :
dataLayer.push({
user_id: window.user_id
});
signup_started
signup_completed
login
onboarding_step_completed
feature_used
checkout_started
checkout_completed
Ces événements alimentent activation + conversion.
Exemple avec Segment :
analytics.identify(userId);
analytics.track("feature_used", { feature_name: "projects" });
Le même événement = même nom :
Web | Mobile |
|---|---|
|
|
|
|
Aucune exception.
app_open
screen_view
feature_used
subscription_started
push_optin
push_clicked
Pour relier un parcours web → app :
web click
→ install app
→ ouverture app
→ onboarding
→ conversion
Outils :
Branch
AppsFlyer
Adjust
Le backend est la vérité business.
Parce que seul le backend connaît :
les paiements réels
les upgrades
les downgrades
les renouvellements
les cancellations
les quotas utilisés
les invitations d’équipe
les données sensibles / sécurisées
Aucun SDK web/app ne peut garantir ces informations.
subscription_started
subscription_renewed
payment_succeeded
payment_failed
subscription_cancelled
subscription_downgraded
workspace_created
integration_connected
project_created (si création via API)
quota_limit_reached
api_key_generated
await fetch("https://api.segment.io/v1/track", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Basic " + Buffer.from(SEGMENT_KEY + ":").toString("base64")
},
body: JSON.stringify({
userId: user.id,
event: "subscription_renewed",
properties: {
amount: 49,
plan_type: "pro",
period: "monthly"
}
})
});
3 règles :
event_id unique par événement
backend > web/app (source autoritaire)
horodatage serveur obligatoire
Un utilisateur peut :
parler à un commercial
faire une démo
recevoir un onboarding call
demander un upgrade manuel
faire un churn administratif
ouvrir des tickets support
Si tu n’intègres pas ces données : tu perds 40% de la réalité.
Méthodes :
HubSpot API → BigQuery
Salesforce Streaming API
Intercom export
Zendesk export
Airbyte / Fivetran
Zapier / Make → webhook BigQuery
Événement | Signification |
|---|---|
| RDV avec un commercial |
| Démo réalisée |
| Appel onboarding |
| Ticket support résolu |
| Upgrade manuel |
| Churn initié via support |
Ton warehouse doit centraliser toutes les sources.
fusion web + app + backend + CRM + offline
jointures cohérentes
attribution fiable
cohorte d’activation
rétention D1 / D7 / D30
LTV cohorte
modèles de churn
apprentissage automatique
export audiences marketing
C’est la VRAIE source de vérité.
raw_ga4_events
raw_app_events
raw_backend_events
raw_crm_events
raw_offline_events
users
workspaces
subscriptions
billing
product_events
crm_events
offline_events
customer360
Colonnes recommandées :
user_id
workspace_id
first_seen
activation_date
feature_usage_score
billing_status
MRR
LTV
plan
source_acquisition
device_breakdown
churn_risk_score
last_activity
Cette table alimente :
dashboards
modèles prédictifs
alertes produit
exports marketing
reporting internal board
Charts essentiels :
funnel signup → activation
feature usage
rétention D1/D7/D30
MRR / expansion / churn
source → activation → LTV
Customer 360 view
cohorte de churn
heatmap de features
Tu peux pousser :
utilisateurs actifs
VIP (haute LTV)
churn-risk
power users
entreprises multi-seats
utilisateurs ayant réalisé X actions
Sur Google Ads : Customer Match
Sur Meta : CAPI enrichi
Une fois ton tracking unifié :
feature adoption
funnel complet
path analysis
cohortes d’usage
segmentation comportementale
user-level insights
Mesurer :
erreurs SDK
erreurs server-side
taux de duplication
matching user_id web/app
cohérence backend vs billing
cohérence CRM vs usage
latence des pipelines
Avant chaque release web / mobile :
onboarding complet
signup
login
actions critiques
billing test
deep links
deferred deep links
tracking offline
synchronisation CRM
naming convention stricte
tracking spec versionnée
documentation interne vivante
droits d’accès restreints
revue mensuelle du plan de tracking
Voici une vue complète de l’architecture SaaS moderne :
┌──────────────────┐
Web App ───▶ │ Web SDK (JS) │
└───────┬──────────┘
│
┌──────────────────┐
Mobile App ──────▶ │ Mobile SDK (iOS/Android)
└───────┬──────────┘
│
┌──────────────────┐
Backend ─────────▶│ Server-side events
└───────┬──────────┘
│
┌──────────────────┐
CRM / Offline ─▶ │ CRM Events (HubSpot/SF)
└───────┬──────────┘
│
▼
┌─────────────────────────────────┐
│ DATA WAREHOUSE (BQ) │
│ Raw → Clean → Customer 360 │
└────────────────┬────────────────┘
│
┌───────────┼──────────────┐
▼ ▼ ▼
Looker / BI Mixpanel Marketing
Amplitude Ads (CAPI)
Focus : onboarding, collaborations, seats, upgrade enterprise.
Événements clés :
workspace_created
team_invited
role_updated
subscription_upgraded
Focus : mobile + rétention.
Événements clés :
app_open
feature_used
subscription_started
churn_occurred
Focus : deferred deep links + cross-device.
Événements clés :
push_clicked
deeplink_opened
app_install_attributed
Focus : usage backend.
Événements clés :
api_key_created
api_call_executed
quota_limit_reached
❌ pas de User-ID unifié web/app
❌ tracking backend absent → données fausses
❌ doublons web + backend
❌ mauvais nommage (1000 events inutiles)
❌ pas de suivi offline
❌ pas de warehouse → données fragmentées
❌ pas de QA process
❌ pas de documentation
❌ push de données PII dans GA4
Une vraie architecture tracking SaaS =
➡️ web
➡️ mobile
➡️ backend
➡️ CRM
➡️ offline
➡️ data warehouse
➡️ modèles données
➡️ analytics
➡️ marketing
Avec une telle architecture :
tu comprends clairement l’activation,
tu mesures la vraie rétention,
tu prédis le churn,
tu optimises ton produit avec des données fiables,
tu pilotes ton MRR avec une précision chirurgicale,
tu deviens capable de scaler ton SaaS réellement.
C’est ce qui sépare un SaaS artisanal d’un SaaS solide, mesuré et scalable.



