# Inicio rápido web: tu primer registro atribuido

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

Vincula los registros de un sitio a los anuncios que los trajeron: dos claves, @traqio/web en el sitio, un SDK de servidor y un enlace hacia tu sitio.

Esta guía vincula los registros de un sitio web a los anuncios que los trajeron. Hacen falta cuatro piezas: dos claves, el SDK de navegador en el sitio, un SDK de servidor en el backend y un enlace de seguimiento que lleve al sitio. Al final, un clic en tu enlace seguido de un registro llega atribuido a la campaña del enlace — [por el id de ese clic](https://traqio.app/es/docs/concepts/web-attribution), no por una suposición. Para una app, la guía que hay que seguir es el [inicio rápido de apps](https://traqio.app/es/docs/quickstart).

> **Acceso anticipado** @traqio/web y @traqio/node se instalan desde npm. Los paquetes de PHP y Python aún no están en Packagist ni en PyPI: escribe a hello@traqio.app para recibirlos; cada página de SDK explica cómo añadirlos hasta que funcione el comando del registro.

## Pasos

### Crea las dos claves

En la consola, abre tu producto y luego **Integraciones → SDK**. Crea:

- una **clave web** (`tq_web_…`), con cada origen que ejecuta el sitio — `https://www.example.com`, `https://app.example.com`. Es pública: va en tus páginas y solo funciona desde esos orígenes;
- una **clave de servidor** (`tq_sk_…`). Es secreta y se muestra una sola vez: ponla en el entorno de tu backend como `TRAQIO_SECRET_KEY`.

### Añade @traqio/web al sitio

```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
```

Una vez, lo antes posible, en cada página — la [página del SDK web](https://traqio.app/es/docs/sdks/web) lo muestra para React, Vue, Angular y una etiqueta `<script>` simple. Cuando un visitante llega desde tu enlace, guarda el trackID en una cookie first-party en tu dominio.

### Reporta el registro desde el 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='…', …)
```

Donde se crea la cuenta, una vez. La petición de registro lleva la cookie, así que el trackID se lee de ella. Cada página de SDK — [Node.js](https://traqio.app/es/docs/sdks/node), [PHP / Laravel](https://traqio.app/es/docs/sdks/php), [Python](https://traqio.app/es/docs/sdks/python) — cubre sus frameworks, sus errores y las compras.

### Crea un enlace de seguimiento hacia tu sitio

En **Enlaces**, crea un enlace: la red publicitaria, el id de campaña que te da la red — es lo que une los clics con el gasto — y, como **Destino web**, la página que debe abrir el anuncio. Pon la URL de clic del enlace en el anuncio. Un clic llega a esa página, en cualquier dispositivo, con el trackID añadido:

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

### Haz clic, regístrate, lee la respuesta

Abre la URL de clic del enlace en un navegador y regístrate en el sitio con una cuenta nueva. La llamada `signup` de tu backend responde `matched`, y su atribución indica la red y la campaña del enlace.

> **Dónde leerlo** La respuesta de la llamada al servidor da la atribución al instante. En la consola, el informe de ROAS cuenta el registro como una conversión web de la campaña del enlace, junto a sus instalaciones.

## Siguientes pasos

- Reporta las compras y suscripciones con `track`, con su valor, su moneda y su id de pago — siguen al usuario hasta la campaña que lo captó.
- Lee [atribución web](https://traqio.app/es/docs/concepts/web-attribution) para las reglas: un clic por identidad, la ventana de atribución, el último clic antes del registro.

## Preguntas frecuentes

**¿Por qué mi registro de prueba llega sin trackID?**
La visita no empezó desde el enlace de seguimiento, la página no ejecutó @traqio/web, o tu backend está en otro dominio que el sitio, así que la cookie traq_click no le llega. En este último caso, envía Traqio.getTrackId() desde el navegador con el formulario de registro.

**¿Por qué un segundo registro de prueba responde claimed?**
Un clic acredita una sola identidad: una vez vinculado a un usuario, otro usuario no puede reclamarlo. Vuelve a hacer clic en el enlace para cada usuario de prueba — cada clic es un nuevo trackID.
