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
import { Taapit } from "taapit-sdk";import { cookies } from "next/headers";const taapit = new Taapit({ apiKey: process.env.TAAPIT_API_KEY,});export async function POST(request: Request) { const body = await request.json(); // Obtenir l'ID de suivi depuis le cookie const cookieStore = cookies(); const trackingId = cookieStore.get("ta_tid")?.value; // Créer l'utilisateur dans votre base de données const user = await db.users.create({ email: body.email, name: body.name, }); // Suivre le lead if (trackingId) { await taapit.track.lead({ trackingId, customer: { externalId: user.id, email: user.email, }, }); } return Response.json({ user });}
trackingId pour les ventes : Si le customer a déjà été tracké via un
événement lead, le trackingId est optionnel pour les événements de
vente. 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),
trackingId est requis.
SDK Node.js
API REST
Copier
export async function POST(request: Request) { const body = await request.json(); const cookieStore = cookies(); const trackingId = cookieStore.get('ta_tid')?.value || body.trackingId; // Vérifier le paiement const order = await verifyPayment(body); // Suivre la vente // trackingId est optionnel si le customer a déjà été tracké via un événement lead await taapit.track.sale({ trackingId, // Optionnel si le customer existe déjà customer: { externalId: order.userId, // Requis - lie au customer existant ou en crée un nouveau email: order.customerEmail, }, amount: order.total, // ex: 149.99 (PAS en centimes) currency: order.currency, // ex: 'eur' metadata: { orderId: order.id, productIds: order.items.map(i => i.productId), }, }); return Response.json({ success: true });}
Copier
# Avec trackingId (nouveau customer ou premier tracking)curl -X POST https://track.taap.it/api/events/sale \ -H "Authorization: Bearer taapit_sk_xxx" \ -H "Content-Type: application/json" \ -d '{ "trackingId": "rLnWe1uz9t282v7g", "customer": { "externalId": "user_123", "email": "john@example.com" }, "amount": 99.99, "currency": "eur", "metadata": { "orderId": "order_456" } }'# Sans trackingId (customer déjà tracké via un événement lead)curl -X POST https://track.taap.it/api/events/sale \ -H "Authorization: Bearer taapit_sk_xxx" \ -H "Content-Type: application/json" \ -d '{"customer": {"externalId": "user_123"},"amount": 99.99,"currency": "eur"}'
Le amount doit être en unités de devise, pas en centimes.
✅ amount: 29.99 pour 29,99€
❌ amount: 2999 (cela serait interprété comme 2999€)
Quand trackingId est-il requis ? - Événements lead : trackingId
est toujours requis - Événements vente : - Si le customerExternalId
a déjà été tracké (via un événement lead précédent), trackingId est
optionnel - Si c’est un nouveau customer (pas d’événement lead préalable),
trackingId est requis pour créer l’enregistrement client
3. Stocker l’ID de suivi pour une utilisation ultérieure
Copier
// Lors de la création d'une session checkoutconst session = await stripe.checkout.sessions.create({ metadata: { ta_tid: trackingId }, // Stocker pour le webhook});// Plus tard dans le webhook, le récupérerconst trackingId = session.metadata.ta_tid;
const result = await taapit.track.sale({...});if (!result.success) { console.error('Échec du tracking Taapit:', result.error); // Ne pas faire échouer l'opération principale - le tracking est secondaire}