Si votre site est une application, la règle peut y vivre : une route sur votre préfixe de suivi, qui relaie la requête vers nous et rend la réponse. Trois détails font la différence entre une route qui suit et une route qui a l'air de suivre : accepter GET et POST, garder la chaîne de requête, et ne pas exiger de jeton CSRF.
Où : next.config.js
Une entrée dans rewrites() de next.config.js. Next.js ne retire pas les en-têtes : les cookies de vos visiteurs nous parviennent, et nous ne les lisons pas.
Où : nuxt.config.ts
Une règle routeRules avec proxy dans nuxt.config.ts. Comme Next.js, Nuxt ne retire pas les en-têtes de la requête relayée.
Où : app.js
Une route app.all dans app.js : elle relaie par https.request avec req.originalUrl, jamais le jeton seul, puisque la chaîne de requête porte l'identifiant du clic. Elle rend le cookie posé et la redirection.
Où : server.js
Pour un site sans serveur applicatif : un petit proxy Node en deux fichiers, server.js et package.json, à lancer par npm start. Il utilise https.request et jamais fetch, qui écrase les en-têtes Sec-Fetch : chaque visiteur passerait pour une machine et chaque clic serait écarté.
Où : Program.cs
Un MapMethods GET et POST dans Program.cs : la requête est relayée avec ses en-têtes et la chaîne de requête par un client de IHttpClientFactory, et la réponse rend le cookie et la redirection.
Où : routes/web.php
Une route Route::match GET et POST dans routes/web.php, plus une exception CSRF dans bootstrap/app.php : la balise poste sans jeton, et sans cette exception Laravel répond 419. La chaîne de requête est relayée brute, parce que getQueryString() la réordonne.
Où : config/routes.rb, plus un contrôleur
Une route GET et POST dans config/routes.rb et un contrôleur MerittController avec skip_forgery_protection, pour la même raison que Laravel : la balise annonce par sendBeacon, sans jeton.
Où : urls.py, plus une vue
Deux étapes : la route dans urls.py, puis la vue dans views.py, marquée @csrf_exempt — sans quoi Django refuse avant la vue — qui relaie avec requests sans suivre les redirections.
La balise annonce le clic par sendBeacon, qui envoie un POST. Une route qui n'accepte que GET laisse passer la redirection et perd ce signal.
Elle porte l'identifiant du clic. Une méthode qui la réordonne ou la réencode peut le perdre.
Redémarrez l'application, redéployez-la, puis lancez la vérification dans Meritt.
Le clic pose un cookie premier-parti sur votre domaine. Votre serveur peut y rattacher un identifiant client, et c'est ce niveau-là qui survit à un changement d'appareil.
Automatiques par PayPal et Wise, ou par virement, Skrill, Revolut ou crypto, avec la facture. Un virement qui revient est détecté et corrigé des deux côtés.
0, 45 ou 89 € par mois. Jamais un pourcentage de votre chiffre d'affaires, de vos commissions ou de vos virements.
Gratuit jusqu'à votre première commission. Aucune carte demandée.