takt

Proxy first-party (anti-adblock)

Par défaut, le tracker Takt et la collecte d’événements passent déjà par un domaine Takt, pas par un chemin connu des bloqueurs. Tu peux aller plus loin : servir le script et l’endpoint de collecte depuis ton propre domaine, via ton reverse-proxy ou ton CDN. Tout le trafic d’analytique devient alors indistinguable de ton site — les bloqueurs de publicité ne peuvent plus l’isoler.

Niveau 1 — servi par Takt

L'extrait d'installation charge déjà le tracker depuis un domaine Takt. Aucune action.

Niveau 2 — proxy manuel (avancé)

Tu routes toi-même une route de ton domaine vers l'edge Takt, certificat et config chez toi.
Le tracker (/takt.js, /takt.auto.js) et l'endpoint de collecte (/api/event) sont servis par le même service d'ingestion, via l'edge. Un proxy manuel doit router ces deux chemins.

Niveau 2 — proxy manuel

Si tu gères déjà un reverse-proxy ou un CDN, route toi-même une route de ton domaine vers l’edge Takt, en préservant le header Host. Route /_takt/* vers https://collect.taktlytics.com/ : les deux chemins servis par l’ingestion (/takt.js / /takt.auto.js et /api/event) passeront par ta route.

Préserver l’IP visiteur

Avec un proxy, c’est ton reverse-proxy qui devient le client immédiat de l’ingestion. Sans précaution, tous les visiteurs seraient rabattus sur son IP, ce qui fausserait le comptage des uniques et la géolocalisation. Pour l’éviter, chaque config ci-dessous transmet l’IP réelle du visiteur via l’en-tête X-Takt-Client-IP, puis tu actives le relais côté Takt.

L'IP transmise est éphémère : Takt s'en sert uniquement pour dériver l'identifiant de visiteur du jour (haché, sans cookie) et le pays de géolocalisation. Elle n'est jamais stockée sur l'événement. Active ensuite Réglages → First-party & anti-adblock → « Je proxifie Takt moi-même » pour que l'ingestion lise cet en-tête.
Seuls les proxies capables d'injecter un en-tête dynamique sont supportés (Cloudflare, Nginx, Apache, Caddy). Une simple réécriture statique (ex. _redirects Netlify, rewrites Vercel) ne peut pas ajouter l'IP visiteur et fausserait le comptage — ne l'utilise pas avec le relais activé.

Cloudflare — Origin Rule + Transform Rule

# Origin Rule — proxifie /_takt/* vers l'edge Takt
Source path:   /_takt/*
Destination:   https://collect.taktlytics.com/$1
Host header:   préserver l'original

# Transform Rule — ajoute l'IP visiteur réelle
Set dynamic header:  X-Takt-Client-IP = ip.src

Nginxlocation

location /_takt/ {
    proxy_pass         https://collect.taktlytics.com/;
    proxy_set_header   Host              $host;
    proxy_set_header   X-Takt-Client-IP  $remote_addr;
    proxy_ssl_server_name on;
}

Apachemod_proxy

<Location /_takt/>
    SSLProxyEngine On
    ProxyPreserveHost On
    RequestHeader set X-Takt-Client-IP "%{REMOTE_ADDR}s"
    ProxyPass        https://collect.taktlytics.com/
    ProxyPassReverse https://collect.taktlytics.com/
</Location>

Caddyreverse_proxy

handle_path /_takt/* {
    reverse_proxy https://collect.taktlytics.com {
        header_up Host {upstream_hostport}
        header_up X-Takt-Client-IP {remote_host}
    }
}
Le header Host doit être préservé : c'est lui qui permet à l'ingestion d'associer la requête à ton site. Une fois la route en place, pointe ton snippet vers /_takt/takt.js pour que le script et la collecte transitent par ton domaine.

Vérification & dépannage

Pour confirmer que tout fonctionne :

  • Dans l’onglet réseau de ton navigateur, le tracker se charge depuis ton domaine (/_takt/…), pas depuis un domaine Takt.
  • Une navigation génère une requête /_takt/api/event en 2xx, et le visiteur apparaît en direct dans le tableau de bord.

Problèmes fréquents :

SymptômeCause probableCorrectif
404 / mauvais siteHeader Host non préservéForce la préservation du Host original dans ta config
Tous les visiteurs comptés comme un seulEn-tête X-Takt-Client-IP absent ou relais désactivéAjoute l’en-tête dans ta config et active « Je proxifie Takt moi-même »
Le tracker ne charge pasMauvaise cible de proxyVérifie que la route pointe bien vers collect.taktlytics.com

Et ensuite

  • Le script — le snippet de base et window.takt.
  • Vie privée — pourquoi tout reste sans cookie, même en first-party.