Saasy

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

TypeMethodeDescription
pageAutomatiquePage vue (SPA-aware)
trackSaasy.analytics.track()Evenement metier custom
identifySaasy.analytics.identify()Identification utilisateur
groupSaasy.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-Key avec la cle d'integration
  • Fallback : navigator.sendBeacon pour 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

Prochaines etapes