Evenements et identification
Envoie des evenements custom et identifie tes utilisateurs.
Tracker un evenement custom
Utilise Saasy.analytics.track() pour enregistrer un evenement metier :
window.Saasy.analytics.track('subscription_upgraded', {
plan: 'pro',
mrr: 49,
currency: 'EUR',
});Les proprietes sont libres — tu peux envoyer n'importe quel objet JSON.
Identifier un utilisateur
Par defaut, chaque visiteur recoit un anonymousId (UUID v4 stocke dans localStorage). Pour associer un utilisateur connu :
window.Saasy.analytics.identify('user_123', {
email: 'alice@example.com',
name: 'Alice Martin',
plan: 'pro',
createdAt: '2024-01-15',
});Apres un identify(), tous les evenements suivants incluent le userId. Les evenements anterieurs restent lies au anonymousId, mais le profil est fusionne cote serveur.
Associer un groupe
Pour associer l'utilisateur a une entreprise ou un workspace :
window.Saasy.analytics.group('company_456', {
name: 'Acme Corp',
plan: 'enterprise',
employees: 150,
});Reinitialiser l'identite
Lors d'un logout, reinitialise l'identite pour generer un nouvel anonymousId :
window.Saasy.analytics.reset();Forcer l'envoi
Les evenements sont envoyes automatiquement par batch. Pour forcer l'envoi immediat :
window.Saasy.analytics.flush();Utile avant une redirection ou un logout.
Structure d'un evenement
Chaque evenement envoye au serveur a cette structure :
{
"type": "track",
"event": "subscription_upgraded",
"anonymousId": "550e8400-e29b-41d4-a716-446655440000",
"userId": "user_123",
"sessionId": "ses_1706000000_abc12345",
"properties": {
"plan": "pro",
"mrr": 49
},
"context": {
"page": {
"url": "https://app.example.com/settings",
"path": "/settings",
"title": "Parametres",
"referrer": ""
},
"device": { "type": "desktop" },
"locale": "fr-FR",
"timezone": "Europe/Paris",
"screen": { "width": 1920, "height": 1080 }
},
"timestamp": "2024-06-15T14:30:00.000Z",
"messageId": "msg_1706000000_xyz98765"
}Types d'evenements
| Type | Methode | Description |
|---|---|---|
page | Automatique | Page vue (SPA-aware) |
track | Saasy.analytics.track() | Evenement metier custom |
identify | Saasy.analytics.identify() | Identification utilisateur |
group | Saasy.analytics.group() | Association a un groupe |
Collection cote serveur
Les evenements sont envoyes en batch via POST /api/w/analytics/collect :
- Batch : toutes les 5 secondes ou quand 10 evenements sont en file
- Authentification : header
X-App-Keyavec la cle d'integration - Fallback :
navigator.sendBeaconpour les envois lors du unload de la page - Retry : en cas d'echec, les evenements sont sauvegardes dans
localStorage(max 100) et reessayes au prochain chargement