Suivre les conversions depuis votre frontend avec le package NPM ou la balise script
Suivez les leads et ventes directement depuis le navigateur. Cette méthode est simple à implémenter mais peut être bloquée par les bloqueurs de publicités.
Le suivi côté client peut être bloqué par les bloqueurs de publicités. Pour une fiabilité maximale, nous recommandons fortement l’Intégration côté serveur.
Important : Pour que le suivi des conversions fonctionne, les utilisateurs doivent arriver sur votre site via un deeplink Taapit.
C’est ainsi que l’ID de suivi (ta_tid) est généré et transmis à votre site.
Avant de commencer :
Créez un deeplink Taapit pointant vers votre site ou landing page
Activez le suivi des conversions sur votre lien :
Allez dans les paramètres de votre lien dans le dashboard Taapit
Un lead est un client potentiel qui montre de l’intérêt (inscription, soumission de formulaire, démarrage d’essai).
trackingId pour les leads : Le trackingId est toujours requis pour les événements lead. Il est automatiquement détecté depuis le cookie ta_tid défini quand l’utilisateur a cliqué sur un lien Taapit.
Package NPM
Balise Script
components/signup-form.tsx
Copier
'use client';import { useTaapitAnalytics } from 'taapit-sdk/react';export function SignUpForm() { const { trackLead, isReady, trackingId } = useTaapitAnalytics(); const handleSubmit = async (formData: FormData) => { const email = formData.get('email') as string; const name = formData.get('name') as string; // Créer l'utilisateur dans votre système const user = await createUser({ email, name }); // Suivre le lead avec Taapit trackLead({ customer: { externalId: user.id, // Requis: votre ID utilisateur email: user.email, firstname: user.firstName, lastname: user.lastName, }, metadata: { source: 'signup-form', plan: 'free-trial', }, }); }; return ( <form action={handleSubmit}> <input name="name" placeholder="Nom" required /> <input name="email" type="email" placeholder="Email" required /> <button type="submit">Démarrer l'essai gratuit</button> </form> );}
Une vente est une transaction complétée (achat, abonnement, paiement).
trackingId pour les ventes : Si le customer a déjà été tracké via un événement lead, le trackingId est optionnel. Vous n’avez besoin que du customerExternalId pour lier la vente au customer existant. Si c’est un nouveau customer (pas de lead préalable), l’utilisateur doit avoir un cookie ta_tid valide (défini en cliquant sur un lien Taapit).
Package NPM
Balise Script
components/checkout.tsx
Copier
'use client';import { useTaapitAnalytics } from 'taapit-sdk/react';export function CheckoutButton({ cart, user }) { const { trackSale } = useTaapitAnalytics(); const handlePurchase = async () => { // Traiter le paiement const order = await processPayment(cart); // Suivre la vente avec Taapit trackSale({ customer: { externalId: user.id, email: user.email, }, amount: cart.total, // ex: 49.99 (PAS en centimes) currency: 'eur', // Code ISO 4217 metadata: { orderId: order.id, items: cart.items.length, }, }); router.push(`/order/${order.id}`); }; return ( <button onClick={handlePurchase}> Finaliser l'achat - {cart.total}€ </button> );}
// Obtenir l'ID de suivi actuelconst trackingId = taapit.getTrackingId();// Suivre un lead (trackingId est TOUJOURS requis - auto-détecté depuis le cookie)taapit.trackLead({ customer: { externalId: 'user_123', // Requis email: 'john@example.com', firstname: 'John', lastname: 'Doe', phoneNumber: '+33612345678', avatarUrl: 'https://example.com/avatar.jpg', }, metadata: { ... }, // Données personnalisées optionnelles});// Suivre une vente// trackingId est optionnel si le customer a déjà été tracké via un événement leadtaapit.trackSale({ customer: { externalId: 'user_123' }, // Requis - lie au customer existant amount: 99.99, // Requis currency: 'eur', // Requis (ISO 4217) metadata: { ... },});
// ✅ Bien - Suivre après que l'action est confirméeconst user = await createUser(data);taapit.trackLead({ customer: { externalId: user.id } });// ❌ Mal - Suivre avant confirmationtaapit.trackLead({ customer: { externalId: 'pending' } });const user = await createUser(data); // Pourrait échouer !
// ✅ Bien - Utiliser votre ID de base de donnéescustomer: { externalId: user.id }// ❌ Mal - N'utilisez pas de valeurs transitoirescustomer: { externalId: session.id }