Skip to main content
Les événements personnalisés vous permettent de suivre les actions qui comptent pour votre activité, au-delà de ce que capture le suivi automatique. Vous définissez le nom et les métadonnées, le SDK envoie l’événement avec l’attribution QR déjà jointe.

Syntaxe

  • event_name — une chaîne décrivant l’action. Utilisez le snake_case.
  • metadata — un objet facultatif contenant les données clé-valeur de votre choix. 10 Ko maximum.
Vous pouvez appeler scanova('track', ...) à tout moment après l’exécution de scanova('init', ...) : depuis des écouteurs d’événements, des callbacks asynchrones ou tout autre contexte JavaScript.
Sur le réseau, le SDK envoie chaque événement personnalisé avec event_type à custom et votre nom dans un champ event_name de premier niveau, et non dans metadata. Cela diffère d’un appel direct à POST /ct, où c’est event_type qui porte le nom sémantique. Voir la référence du modèle d’événement.

Exemples

Clic sur un bouton

Suivre le clic sur un appel à l’action précis :

Inscription terminée

Envoyez ceci une fois l’envoi de votre formulaire d’inscription confirmé côté client :
Pour les confirmations d’achat ou d’inscription qui ont lieu côté serveur, utilisez plutôt les événements serveur. Ils sont plus fiables et ne peuvent pas être bloqués par les extensions de navigateur.

Engagement vidéo

Interaction produit

Interaction avec onglets ou accordéons

Clic vers un site externe

Choisir entre événements personnalisés et suivi automatique

Vous pouvez combiner les deux : autoClicks: true et des événements personnalisés ciblés pour les actions à forte valeur.

Event naming best practices

  • Use snake_case: cta_click, not ctaClick or CTAClick
  • Be specific enough to be self-explanatory in reports: signup_completed is better than completed
  • Be consistent: pick one name and stick to it. Changing event names later fragments your historical data
  • Do not include user-identifying information in the event name

Metadata best practices

  • Keep metadata flat where possible — deeply nested objects are harder to query
  • Max object size: 10 KB
  • Max nesting depth: 5 levels
  • Never include raw email addresses, phone numbers, or other PII — use server events with user_identifiers for that
  • Use stable keys — changing key names later fragments your data

When to use server events instead

Use Server-Side Events rather than custom browser events when:
  • The action happens on your server (payment confirmation, CRM creation, email verification)
  • You need to pass a conversion value (order total, subscription price)
  • You want to include hashed user identifiers for identity matching
  • You need guaranteed delivery (server events cannot be blocked by ad blockers)