Tamtam for Developers

Intégrez le Pixel.
Tracez tout.

Le Tamtam Pixel est un tracker server-side léger. Clics vérifiés, inscriptions, activations, achats — tout remonte dans votre dashboard en temps réel.

tamtam-pixel.js
// Initialize Tamtam Pixel
window.tamtam = new TamtamPixel('tmsk_your_key_here')

// Track a signup
tamtam.track('sign_up', {
  value: 1,
  currency: 'XOF'
})

// ✓ Event received · 47ms
< 2 Ko gzippé·Vérification server-side·Protection anti-fraude 3 couches

Quick start

Intégration en 5 minutes

01

Ajoutez le script

Ajoutez dans votre balise <head> :

index.html
<!-- Tamtam Pixel -->
<script>
  (function(w,d,s,k){
    w.TamtamObject=s;
    w[s]=w[s]||function(){(w[s].q=w[s].q||[]).push(arguments)};
    w[s].l=1*new Date();
    var f=d.getElementsByTagName('script')[0],
        j=d.createElement('script');
    j.async=true;
    j.src='https://cdn.tamma.me/pixel/v1/tamtam.min.js';
    f.parentNode.insertBefore(j,f);
  }(window,document,'script','tamtam'));

  tamtam('init', 'tmsk_YOUR_KEY_HERE');
</script>
02

Configurez votre clé API

Récupérez votre clé Pixel depuis votre dashboard Tamtam, onglet Pixel.

js
tamtam('init', 'tmsk_abc123...', {
  debug: true,          // logs events to console during development
  autoPageView: true,   // auto-tracks page_view on init (default: true)
  currency: 'XOF',      // default currency for all events
})

Vos clés commencent toujours par tmsk_. Ne commitez jamais votre clé dans votre code source. Utilisez une variable d'environnement.

03

Envoyez votre premier événement

Trois événements standards, prêts à l'emploi :

js
// Page view (auto-tracked — no action needed if autoPageView: true)
tamtam('track', 'page_view')

// Sign up
tamtam('track', 'sign_up', {
  value: 1,
  currency: 'XOF',
  user_id: 'optional-your-internal-id',  // hashed, never PII
})

// Activation (first key action — purchase, first order, etc.)
tamtam('track', 'activation', {
  value: 2500,        // monetary value in XOF if applicable
  currency: 'XOF',
  event_id: 'unique-dedup-id',  // optional — prevents duplicate counting
})

C'est tout.

Les événements apparaissent dans votre dashboard Tamtam, Pixel, Live Events dans les 30 secondes suivant l'envoi.

Architecture

Comment ça fonctionne

Visiteur

Clique sur un lien partagé

Votre site

tamtam('track', 'sign_up')

POST /v1/events

X-Tamtam-Key: tmsk_...

Serveurs Tamtam

Vérifier + scorer

Mettre à jour le dashboard

Vérification server-side

Les événements sont validés côté serveur avant enregistrement. IP, empreinte appareil, rate limiting — tout est géré avant qu'un seul événement n'atteigne votre dashboard.

Attribution automatique

Chaque clic Tamtam ajoute ?tm_ref=xxx à votre URL. Le Pixel lit ce paramètre automatiquement et relie la conversion au bon Écho.

Protection anti-fraude 3 couches

Rate limiting par clé (100 req/min). Rate limiting par IP (200 req/min). Verrouillage après échec d'authentification (10 tentatives, blocage 15 min).

Attribution

Cycle de vie du tm_ref

Le paramètre tm_ref est la clé d'attribution de Tamtam. Il relie chaque conversion à l'Écho qui a partagé le lien.

1

L'Écho partage un lien

Chaque Écho reçoit un lien unique avec son tm_ref personnel.

https://votresite.com?tm_ref=echo_abc123
2

Le visiteur clique

Le visiteur arrive sur votre site avec le tm_ref dans l'URL.

URL bar: votresite.com/signup?tm_ref=echo_abc123
3

Le Pixel capture le tm_ref

Le SDK JavaScript lit automatiquement le paramètre de l'URL et le persiste en localStorage.

tamtam('init', 'tmsk_...') // auto-reads ?tm_ref from URL
4

Le visiteur convertit

Vous déclenchez un événement — le tm_ref est inclus automatiquement.

tamtam('track', 'sign_up') // tm_ref=echo_abc123 attached
5

Attribution confirmée

Tamtam attribue la conversion au bon Écho et met à jour le dashboard en temps réel.

→ Echo credited · Campaign budget debited

Chaque Écho a un tm_ref unique

Deux Échos partageant la même campagne auront des tm_ref différents. L'attribution est toujours précise, même si des milliers d'Échos partagent la même campagne.

Exemple : deux Échos, même campagne

bash
# Echo A — campaign "Promo"
https://votresite.com/promo?tm_ref=echo_a_7x9k2

# Echo B — same campaign "Promo"
https://votresite.com/promo?tm_ref=echo_b_m3p5q

# → Each visitor attributed to the Echo who shared the link
# → Pixel reads tm_ref automatically, no extra code needed

Reference

Référence API

Base URL

https://tamma.me/api/pixel

Authentification

X-Tamtam-Key: tmsk_your_key_here

Toutes les requêtes nécessitent ce header. Les clés sont gérées dans Dashboard, onglet Pixel.

Pixel ID vs tm_ref — ne pas confondre

tmsk_...

Pixel ID (clé API)

Identifie votre compte / pixel. Utilisé dans le header X-Tamtam-Key. Un par pixel, créé dans votre dashboard. Secret — ne jamais exposer côté client.

tm_ref

Paramètre d'attribution

Identifie quel Écho a référé le visiteur. Auto-ajouté aux URLs quand un Écho partage votre campagne. Public — visible dans l'URL. Lu automatiquement par le SDK JS.

POST/api/pixel/event

Suivre un événement de conversion.

Headers de requête

X-Tamtam-Keyreq
stringVotre clé API Pixel (tmsk_...)
Content-Typereq
stringapplication/json

Corps de requête

eventreq
stringNom de l'événement : page_view, sign_up, activation, purchase, ou personnalisé
tm_ref
stringRéférence d'attribution depuis le paramètre URL (lu automatiquement par le SDK JS)
value
numberValeur monétaire de l'événement en XOF
currency
stringCode de devise. Par défaut : XOF
event_id
stringID unique pour la déduplication (recommandé)
user_data
objectIdentifiants utilisateur hashés (voir section Confidentialité)
Exemple de requête
curl -X POST https://tamma.me/api/pixel/event \
  -H "X-Tamtam-Key: tmsk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "event": "sign_up",
    "tm_ref": "abc123xyz",
    "value": 1,
    "currency": "XOF",
    "event_id": "signup_user_456"
  }'

Succès — 200

json
{
  "success": true,
  "event_id": "evt_01HXYZ...",
  "received_at": "2026-05-24T14:30:00.000Z",
  "attribution": {
    "campaign_id": "camp_789",
    "echo_id": "echo_012"
  }
}

Erreur — 4xx

json
{
  "success": false,
  "error": "INVALID_API_KEY",
  "message": "API key not found or inactive."
}

Codes d'erreur

CodeHTTPDescription
INVALID_API_KEY401Clé manquante, malformée ou inactive
RATE_LIMIT_EXCEEDED429Trop de requêtes — ralentissez
PAYLOAD_TOO_LARGE413Le corps de requête dépasse 10 Ko
MISSING_EVENT400Le champ event est requis
CAMPAIGN_NOT_FOUND404Le tm_ref ne correspond à aucune campagne active
GET/api/pixel/ping

Tester votre connexion. Aucune authentification requise.

bash
curl https://tamma.me/api/pixel/ping
# → { "status": "ok", "version": "1.0", "timestamp": "..." }

Événements standards

ÉvénementDescription
page_viewPage consultée
sign_upUtilisateur inscrit
activationUtilisateur a réalisé une action clé
purchaseTransaction monétaire
leadFormulaire de contact soumis
app_installApplication mobile installée

Événements personnalisés supportés — utilisez n'importe quelle chaîne en snake_case minuscule.

Exemples

Exemples d'intégration

Suivez les achats sur un site e-commerce sénégalais. Déclenchez activation à la confirmation de commande.

pages/order/confirmation.js
// Fire on page load after successful order
useEffect(() => {
  if (order.status === 'confirmed') {
    window.tamtam('track', 'purchase', {
      value: order.total_xof,
      currency: 'XOF',
      event_id: `order_${order.id}`, // prevents duplicate counting on refresh
    })
  }
}, [order])

Debug

Tester votre intégration

1

Activez le mode debug

tamtam('init', 'tmsk_your_key', { debug: true })
2

Ouvrez la console navigateur — vous verrez :

[Tamtam Pixel] Initialized · key: tmsk_abc... [Tamtam Pixel] Event queued: sign_up [Tamtam Pixel] Event sent ✓ · 47ms · evt_01HXY...
3

Vérifiez les Live Events dans votre dashboard

Dashboard → Pixel → [your pixel] → Live Events tab Events appear within 30 seconds.
4

Vérifiez l'attribution

Click a real Tamtam campaign link (URL has ?tm_ref=xxx) Then trigger the event on your site. Check: Dashboard → Pixel → Conversions

Problèmes courants

Événement envoyé mais n'apparaît pas dans le dashboard

Vérifiez que votre clé Pixel est active dans Dashboard, onglet Pixel. Les clés inactives renvoient 200 mais les événements sont silencieusement ignorés.

RATE_LIMIT_EXCEEDED dès la première requête

Votre IP a peut-être été signalée. Attendez 15 minutes. Si le problème persiste, contactez contact@tamma.me avec votre Pixel ID.

Attribution affichant null

Le paramètre tm_ref doit être présent dans l'URL au chargement de la page. Vérifiez que votre redirection préserve les paramètres de requête. Exemple : votresite.com/signup?tm_ref=abc123

Événements dupliqués au rechargement de page

Utilisez event_id avec une valeur unique stable (ID commande, ID utilisateur). Tamtam déduplique les événements avec le même event_id sur 24h.

Tester avec curl

bash
# 1. Ping — no key needed
curl https://tamma.me/api/pixel/ping

# 2. Send a test event
curl -X POST https://tamma.me/api/pixel/event \
  -H "X-Tamtam-Key: tmsk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"event": "sign_up", "value": 1, "currency": "XOF"}'

# 3. Expected response:
# {"success":true,"event_id":"evt_...","received_at":"..."}

Benchmarks de latence

Endpointp50p95p99
POST /api/pixel/event45ms120ms280ms
GET /api/pixel/ping12ms35ms80ms

Asynchrone et non-bloquant

Le SDK JS envoie les événements en arrière-plan via navigator.sendBeacon ou fetch asynchrone. Le tracking n'impacte jamais les performances de votre site — aucun rendu bloqué, aucun délai visible pour l'utilisateur.

Données

Confidentialité et données

Ce que nous collectons

Le Pixel collecte :

· Le nom de l'événement et la valeur que vous envoyez

· Le paramètre d'attribution tm_ref

· L'adresse IP (anonymisée après 30 jours)

· User agent / empreinte appareil (scoring anti-fraude uniquement)

Le Pixel ne collecte jamais :

· Les adresses email

· Les noms ou identifiants personnels

· Les informations de paiement

Gestion des données personnelles

Si vous transmettez user_data, hashez-le d'abord :

js
tamtam('track', 'sign_up', {
  user_data: {
    email_hash: sha256('user@example.com'),
    phone_hash: sha256('+221771234567'),
  }
})

Les données personnelles en clair sont supprimées côté serveur avant stockage. Ne transmettez jamais d'emails, noms ou numéros de téléphone en clair.

Loi 2008-12 / RGPD

Tamtam est conforme à la loi 2008-12 du Sénégal sur la protection des données personnelles (CDP Sénégal).

Pour les visiteurs de l'UE, le Pixel est qualifié de cookie d'analytics nécessaire — aucune bannière de consentement requise pour le suivi de clics basique.

Politique de confidentialité complète

FAQ

Questions fréquentes

Prêt à intégrer ?

Obtenez votre clé API

Créez votre compte Tamtam et générez votre première clé Pixel en 2 minutes.

Créer un compte

Accédez à votre dashboard

Gérez vos Pixels, consultez vos événements en temps réel.

Dashboard

Une question technique ?

Notre équipe répond en moins de 24h pour vous accompagner dans l'intégration.

Nous contacter