# Démarrage rapide web : première inscription attribuée

URL: https://traqio.app/fr/docs/quickstart/web
Last updated: 2026-10-16

Rattachez les inscriptions d’un site aux publicités : deux clés, @traqio/web sur le site, un SDK serveur sur le backend, un lien vers le site.

Ce guide rattache les inscriptions d’un site web aux publicités qui les ont amenées. Il faut quatre éléments : deux clés, le SDK navigateur sur le site, un SDK serveur sur le backend, et un lien de tracking qui arrive sur le site. À la fin, un clic sur votre lien suivi d’une inscription revient attribué à la campagne du lien — [par l’id de ce clic](https://traqio.app/fr/docs/concepts/web-attribution), pas par une estimation. Pour une app, c’est le [démarrage rapide app](https://traqio.app/fr/docs/quickstart) qu’il faut suivre.

> **Accès anticipé** @traqio/web et @traqio/node s’installent depuis npm. Les paquets PHP et Python ne sont pas encore sur Packagist et PyPI : écrivez à hello@traqio.app pour les recevoir ; chaque page SDK explique comment les ajouter tant que la commande du registre ne fonctionne pas.

## Étapes

### Créez les deux clés

Dans la console, ouvrez votre produit, puis **Intégrations → SDK**. Créez :

- une **clé web** (`tq_web_…`), listant chaque origine qui sert le site — `https://www.example.com`, `https://app.example.com`. Elle est publique : elle va dans vos pages, et ne fonctionne que depuis ces origines ;
- une **clé serveur** (`tq_sk_…`). C’est un secret, affiché une seule fois : placez-la dans l’environnement de votre backend sous `TRAQIO_SECRET_KEY`.

### Ajoutez @traqio/web au site

```bash
npm install @traqio/web
```

```ts
import { Traqio } from "@traqio/web";

Traqio.init({ sdkKey: "YOUR_WEB_KEY" }); // tq_web_… — a WEB key, not the app key
```

Une fois, le plus tôt possible, sur chaque page — la [page du SDK web](https://traqio.app/fr/docs/sdks/web) le montre pour React, Vue, Angular et une simple balise `<script>`. Quand un visiteur arrive depuis votre lien, il garde le trackID dans un cookie first-party sur votre domaine.

### Signalez l’inscription depuis le backend

Node.js:
```bash
npm install @traqio/node
```

PHP / Laravel:
```bash
composer require traqio/traqio-php
```

Python:
```bash
pip install traqio
```

Node.js:
```ts
import { Traqio, trackIdFromRequest } from "@traqio/node";

const traqio = new Traqio({ secretKey: process.env.TRAQIO_SECRET_KEY! });

// where the account is created
const result = await traqio.signup({ userId: user.id, trackId: trackIdFromRequest(req) });
console.log(result.trackId, result.attribution); // "matched" { network: "meta", campaignId: "…", … }
```

PHP / Laravel:
```php
use Traqio\Laravel\Facades\Traqio;
use Traqio\TrackId;

// where the account is created — TRAQIO_SECRET_KEY is read from .env
$result = Traqio::signup((string) $user->id, TrackId::fromRequest($request));
logger()->info('traqio', ['trackId' => $result->trackId, 'campaign' => $result->attribution->campaignId]);
```

Python:
```python
import os
from traqio import Traqio, track_id_from_request

traqio = Traqio(os.environ["TRAQIO_SECRET_KEY"])

# where the account is created
result = traqio.signup(str(user.pk), track_id_from_request(request))
print(result.track_id, result.attribution)  # matched Attribution(network='meta', campaign_id='…', …)
```

Là où le compte est créé, une seule fois. La requête d’inscription porte le cookie : le trackID y est lu. Chaque page SDK — [Node.js](https://traqio.app/fr/docs/sdks/node), [PHP / Laravel](https://traqio.app/fr/docs/sdks/php), [Python](https://traqio.app/fr/docs/sdks/python) — couvre ses frameworks, ses erreurs et les achats.

### Créez un lien de tracking vers votre site

Dans **Liens**, créez un lien : la régie publicitaire, l’id de campagne que la régie vous donne — c’est lui qui relie les clics aux dépenses — et, en **Destination site web**, la page que la publicité doit ouvrir. Placez l’URL de clic du lien dans la publicité. Un clic arrive sur cette page, sur tous les appareils, avec le trackID ajouté :

```
https://www.example.com/pricing?traq_click=3f7c…&traq_source=meta&traq_campaign=summer
```

### Cliquez, inscrivez-vous, lisez la réponse

Ouvrez l’URL de clic du lien dans un navigateur, puis inscrivez-vous sur le site avec un nouveau compte. L’appel `signup` de votre backend répond `matched`, et son attribution indique le réseau et la campagne du lien.

> **Où le lire** La réponse de l’appel serveur donne l’attribution tout de suite. Dans la console, le rapport ROAS compte l’inscription comme une conversion web de la campagne du lien, à côté de ses installations.

## Ensuite

- Signalez les achats et les abonnements avec `track`, avec leur valeur, leur devise et leur id de paiement — ils suivent l’utilisateur jusqu’à la campagne qui l’a acquis.
- Lisez [l’attribution web](https://traqio.app/fr/docs/concepts/web-attribution) pour les règles : un clic par identité, la fenêtre d’attribution, le dernier clic avant l’inscription.

## Questions fréquentes

**Pourquoi mon inscription de test revient-elle sans trackID ?**
La visite n’a pas commencé par le lien de tracking, la page n’a pas exécuté @traqio/web, ou votre backend est sur un autre domaine que le site, si bien que le cookie traq_click ne lui parvient pas. Dans ce dernier cas, envoyez Traqio.getTrackId() depuis le navigateur avec le formulaire d’inscription.

**Pourquoi une deuxième inscription de test répond-elle claimed ?**
Un clic crédite une seule identité : une fois un clic lié à un utilisateur, un autre utilisateur ne peut plus le revendiquer. Cliquez à nouveau sur le lien pour chaque utilisateur de test — chaque clic est un nouveau trackID.
