> ## 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.

# Server-Ereignisse im Überblick

> Konversionsereignisse sicher aus Ihrem Backend senden — Käufe, Registrierungen und Leads, zugeordnet zu dem QR-Code-Scan, der die Nutzerreise gestartet hat.

Mit Server-Ereignissen meldet Ihr Backend Konversionen über einen API-Schlüssel direkt an die Scanova-Tracking-API. Anders als Browser-Ereignisse lassen sich Server-Ereignisse nicht von Werbeblockern unterdrücken, sie sind von Browser-Einschränkungen unabhängig und können sensible Zuordnungsdaten sicher übertragen.

## Wann Server-Ereignisse sinnvoll sind

| Browser-Ereignisse nutzen         | Server-Ereignisse nutzen                   |
| --------------------------------- | ------------------------------------------ |
| Seitenaufrufe und Navigation      | Kaufbestätigungen                          |
| Klicks und Scrolltiefe            | Abo-Aktivierungen                          |
| Interaktionen mit Formularfeldern | Lead-Anlage in Ihrem CRM                   |
| Jede im Browser sichtbare Aktion  | E-Mail-Bestätigungen bei der Registrierung |
| —                                 | Jede Aktion, die serverseitig stattfindet  |

Am vollständigsten wird das Bild, wenn Sie beides kombinieren: Das Browser-SDK verfolgt die Nutzerreise, und Ihr Server meldet, wann eine Konversion tatsächlich stattgefunden hat.

## So funktioniert die Zuordnung serverseitig

Die `scan_session_id` ist das Bindeglied zwischen einem QR-Code-Scan und einem Server-Ereignis. Der typische Ablauf sieht so aus:

```
Nutzer scannt QR-Code
    ↓
Landet auf yoursite.com/?scnv=7ad26d4f-...
    ↓
SDK speichert scan_session_id im localStorage
    ↓
Nutzer schließt ein Kaufformular ab
    ↓
Browser sendet scan_session_id an Ihre Checkout-API
    ↓
Ihr Server sendet ein purchase-Ereignis mit dieser scan_session_id
    ↓
Scanova ordnet den Kauf dem QR-Code-Scan zu
```

**Ihre Aufgabe:** die `scan_session_id` vom Browser an Ihren Server übergeben. Üblich sind dafür:

* Als verstecktes Formularfeld mitschicken
* Im API-Anfragetext aus Ihrem Frontend-JavaScript senden
* Beim Laden der Seite aus dem URL-Parameter lesen und serverseitig in der Sitzung des Nutzers ablegen

```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 })
});
```

## Voraussetzungen

* Eine Tracking-Website, angelegt unter **Analysen → Konversionsverfolgung**
* Ein auf die Website beschränkter API-Schlüssel (erzeugt im Tab **Tracking-Einrichtung → Über API verfolgen** der Website)
* Ihr Server kann ausgehende HTTPS-POST-Anfragen stellen
* Sie haben einen Weg, die `scan_session_id` aus dem Browser des Nutzers entgegenzunehmen

## Sicherheitsanforderungen

* **Geben Sie Ihren API-Schlüssel niemals in Frontend-Code oder clientseitigem JavaScript preis**
* Bewahren Sie den Schlüssel in einer Umgebungsvariablen oder einem Secrets-Manager auf
* Tauschen Sie Schlüssel regelmäßig im Dashboard aus

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="API-Schlüssel erzeugen" icon="key" href="/de/conversion-tracking/server/generate-api-key-dashboard">
    Erzeugen Sie im Dashboard einen auf eine Website beschränkten API-Schlüssel.
  </Card>

  <Card title="Ereignisse senden" icon="paper-plane" href="/de/conversion-tracking/server/send-events">
    Codebeispiele in cURL, Node.js, Python und PHP.
  </Card>

  <Card title="Idempotenz & Wiederholungen" icon="rotate" href="/de/conversion-tracking/server/idempotency-retries">
    So wiederholen Sie fehlgeschlagene Anfragen gefahrlos.
  </Card>

  <Card title="Zustellung prüfen" icon="check" href="/de/conversion-tracking/server/verify">
    Prüfen Sie, ob Ihre Ereignisse ankommen.
  </Card>
</CardGroup>
