> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Les événements serveur en bref

> Envoyez des conversions depuis votre backend en toute sécurité — achats, inscriptions, leads — attribuées au scan du QR Code à l'origine de la visite.

Les événements serveur permettent à votre backend de déclarer des conversions directement à l'API de suivi de Scanova à l'aide d'une clé d'API. Contrairement aux événements du navigateur, ils ne peuvent pas être bloqués par les bloqueurs de publicité, ne subissent pas les restrictions du navigateur et transportent les données d'attribution sensibles en toute sécurité.

## Quand utiliser les événements serveur

| Événements du navigateur                   | Événements serveur                       |
| ------------------------------------------ | ---------------------------------------- |
| Pages vues et navigation                   | Confirmations de commande                |
| Clics et profondeur de défilement          | Activations d'abonnement                 |
| Interactions avec les champs de formulaire | Création de leads dans votre CRM         |
| Toute action visible dans le navigateur    | Vérifications d'e-mail à l'inscription   |
| —                                          | Toute action qui se produit côté serveur |

Combinez les deux pour obtenir la vue la plus complète : le SDK navigateur suit le parcours, et votre serveur déclare le moment où une conversion a réellement eu lieu.

## Le fonctionnement de l'attribution côté serveur

Le `scan_session_id` est le lien d'attribution entre un scan de QR Code et un événement serveur. Voici le déroulement habituel :

```
Un visiteur scanne le QR Code
    ↓
Il arrive sur yoursite.com/?scnv=7ad26d4f-...
    ↓
Le SDK enregistre scan_session_id dans localStorage
    ↓
Le visiteur remplit un formulaire d'achat
    ↓
Le navigateur envoie scan_session_id à votre API de paiement
    ↓
Votre serveur envoie un événement purchase avec ce scan_session_id
    ↓
Scanova attribue l'achat au scan du QR Code
```

**Ce qui vous revient :** transmettre le `scan_session_id` du navigateur à votre serveur. Les méthodes courantes sont les suivantes :

* Le placer dans un champ de formulaire masqué
* L'envoyer dans le corps de la requête API depuis le JavaScript de votre frontend
* Le conserver dans la session du visiteur sur votre serveur (en le lisant dans le paramètre d'URL au chargement de la page)

```javascript theme={null}
// Read from SDK (browser-side)
// Note: _scnv is the SDK's internal storage key — structure may change.
// Use this pattern only if no higher-level SDK method is available.
const scanSessionId = localStorage.getItem('_scnv')
  ? JSON.parse(localStorage.getItem('_scnv')).sid
  : null;

// Include in your API call to your backend
await fetch('/api/checkout', {
  method: 'POST',
  body: JSON.stringify({ ...orderData, scan_session_id: scanSessionId })
});
```

## Prérequis

* Un site de suivi créé dans **Analyses → Suivi des conversions**
* Une clé d'API limitée au site (générée dans l'onglet **Configuration du suivi → Suivre via l'API** du site)
* Un serveur capable de faire des requêtes POST HTTPS sortantes
* Un moyen de récupérer le `scan_session_id` depuis le navigateur du visiteur

## Exigences de sécurité

* **N'exposez jamais votre clé d'API dans le code du frontend ni dans du JavaScript côté client**
* Conservez la clé dans une variable d'environnement ou un gestionnaire de secrets
* Renouvelez les clés régulièrement depuis le tableau de bord

## Étapes suivantes

<CardGroup cols={2}>
  <Card title="Générer une clé d'API" icon="key" href="/fr/conversion-tracking/server/generate-api-key-dashboard">
    Créez depuis le tableau de bord une clé d'API limitée à un site.
  </Card>

  <Card title="Envoyer des événements" icon="paper-plane" href="/fr/conversion-tracking/server/send-events">
    Exemples de code en cURL, Node.js, Python et PHP.
  </Card>

  <Card title="Idempotence et relances" icon="rotate" href="/fr/conversion-tracking/server/idempotency-retries">
    Comment relancer une requête en échec sans risque.
  </Card>

  <Card title="Vérifier la réception" icon="check" href="/fr/conversion-tracking/server/verify">
    Confirmez que vos événements sont bien reçus.
  </Card>
</CardGroup>
