---
slug: server-events-api
title: "Wie melde ich Conversions serverseitig?"
category: installation
locale: de
updated: 2026-10-17
keywords: ["Server Events API","serverseitig","Backend","CRM","Shop","REST"]
questions: ["Wie sende ich Events aus meinem Shop, CRM oder Backend?","Server-side Tracking","Conversion API","Events aus dem Backend senden","Wie sende ich eine Bestellung oder Anfrage?","An welche Adresse sende ich Server-Events?","Welcher Host gehört zur Server Events API?","Muss die event_id über alle Websites eindeutig sein?"]
url: https://bench.metrunio.com/de/hilfe/server-events-api
---

# Wie melde ich Conversions serverseitig?

**Wie sende ich Events aus meinem Shop, CRM oder Backend?**

Über POST /v1/server/events an den Collector, mit dem Serverschlüssel im Authorization-Header. Die Adresse und den fertigen Aufruf für deine Website zeigt das Portal unter „Einrichtung“ im Reiter „Server Events API“. Der Aufruf ist unabhängig vom Browser und damit robust gegenüber Adblockern und kurzlebigen Cookies.

| Methode | Pfad | Zweck |
| --- | --- | --- |
| POST | /v1/server/events | Events und Conversions, Signatur optional |
| POST | /v1/webhooks/conversions | Webhooks, Signatur verpflichtend |

Authentifizierung über authorization: Bearer <SERVER_KEY> oder den Kopf x-metrunio-server-key. Der Serverschlüssel hat den Scope „server“ und ist an genau eine Website gebunden. Du legst ihn in der Einrichtung im Reiter „Server Events API“ an; dort erneuerst und widerrufst du ihn auch.

Gesendet wird an den Collector, nicht an die Produkt-API. Seine Adresse steht im selben Reiter im fertigen Aufruf für deine Website; im Beispiel unten steht dafür `$METRUNIO_COLLECTOR`. Hast du eine eigene Messdomäne in Betrieb, nennt der Reiter sie, und der Aufruf geht dorthin.

## Beispiel

```bash
curl -X POST "$METRUNIO_COLLECTOR/v1/server/events" \
  -H "authorization: Bearer $METRUNIO_SERVER_KEY" \
  -H "content-type: application/json" \
  -d '{
    "site_id": "site_demo_shop",
    "events": [{
      "event_id": "bestellung-12345",
      "event_type": "purchase",
      "occurred_at": "2026-08-12T10:15:00Z",
      "order_id": "12345",
      "value": "149.90",
      "currency": "EUR",
      "consent_state": "granted",
      "consent_purposes": ["analytics", "marketing"]
    }]
  }'
```

## Antwort

```json
{
  "received": 1,
  "accepted": 1,
  "duplicates": 0,
  "rejected": 0,
  "blocked": 0,
  "results": [{ "eventId": "bestellung-12345", "status": "accepted" }]
}
```

Teilweise Fehler sind möglich: Ein ungültiges Event verwirft nicht den gesamten Batch. Die Antwort nennt zu jedem Event den Status und im Fehlerfall den Grund.

Die event_id macht eine Meldung wiederholbar: Kommt dieselbe event_id für dieselbe Website und Umgebung noch einmal von einem Server, zählt sie nicht doppelt, und die Antwort nennt DUPLICATE_EVENT. Bilde sie deshalb fest aus deinem System, etwa `bestellung-12345`. Zwei Websites, Test und Produktion dürfen dieselbe event_id verwenden, und eine event_id aus dem Browser belegt keine deines Servers.

## Zuordnung zur Journey

Damit die serverseitige Conversion mit den Website-Kontakten verbunden wird, gib mindestens eine gemeinsame Kennung mit: anonymous_id, session_id, click_id oder eine bereits pseudonymisierte user_id. Ohne gemeinsame Kennung bleibt die Conversion sichtbar „nicht zugeordnet“; sie wird nicht geraten.

Ein Zielschritt einer Anwendung geht denselben Weg: `event_type: "goal"` mit `goal_key` und `user_id`, Event-ID etwa `kunde-4711-shop_angelegt`. Er zählt je Kunde einmal; ohne Kundenkennung wird er abgelehnt. Ein unbekannter Schlüssel legt die Definition im Portal automatisch an.

Die Rate eines Abos meldest du als Kauf mit eigener Bestellnummer, dazu `subscription_id` und `subscription_renewal: true`. Sie wird nach der ersten Bestellung desselben Abos zugeordnet und zählt nie als Neukunde. Wie das genau läuft, steht im Artikel über Abo-Folgezahlungen.

> **Achtung:** Auch serverseitig gilt die Einwilligung. Gib consent_state und consent_purposes mit. Für Verläufe und Werbezuordnung braucht ein Ereignis eine passende Einwilligung; ohne sie wird es abgewiesen. Die Ausnahme sind Kauf und Erstattung ohne Entscheidung (unknown): Sie werden zur Umsatzabstimmung gespeichert, ohne Browser-, Kunden- und Werbekennung, und erscheinen als nicht zugeordnet. Nach einer Ablehnung (denied) gilt das nur mit der Zusatzweisung zur Umsatzabstimmung. Einzelheiten stehen im Artikel zur Einwilligung bei Server-Events.

## Ebenfalls gefragt

- Server-side Tracking
- Conversion API
- Events aus dem Backend senden
- Wie sende ich eine Bestellung oder Anfrage?
- An welche Adresse sende ich Server-Events?
- Welcher Host gehört zur Server Events API?
- Muss die event_id über alle Websites eindeutig sein?

## Weiterführend

- https://bench.metrunio.com/de/hilfe/server-events-signatur
- https://bench.metrunio.com/de/hilfe/webhooks-conversions
- https://bench.metrunio.com/de/hilfe/conversion-nicht-zugeordnet
- https://bench.metrunio.com/de/hilfe/funnel-schritte-einbauen
- https://bench.metrunio.com/de/hilfe/eigene-messdomaene
- https://bench.metrunio.com/de/hilfe/abo-folgezahlungen
