Installation
Wie melde ich Conversions serverseitig?
Ü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.
Wie sende ich Events aus meinem Shop, CRM oder Backend?
| 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
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
{
"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.
Zuletzt geprüft am 17.10.2026
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ührende Artikel
- Wie signiere ich serverseitige Anfragen?
Wie funktioniert die HMAC-Signatur und der Replay-Schutz?
Du sendest den Kopf x-metrunio-signature mit Zeitstempel und HMAC-SHA256 über "<Zeitstempel>.<roher Body>", berechnet mit dem Serverschlüssel. Das Zeitfenster beträgt fünf Minuten, und jede Signatur wird genau einmal akzeptiert.
- Kann mein System Conversions per Webhook melden?
Wann nehme ich den Webhook statt der Server Events API?
Der Endpunkt POST /v1/webhooks/conversions ist für Systeme gedacht, die von sich aus einen Webhook auslösen, statt einen API-Aufruf zu programmieren. Er verlangt zwingend eine gültige Signatur.
- Warum ist eine Conversion nicht zugeordnet?
Was bedeutet „nicht zugeordnet“ und wie verbessere ich die Abdeckung?
„Nicht zugeordnet“ heißt: Das Modell hat zu dieser Conversion keinen Kontakt gefunden, den es berücksichtigt. Entweder liegt keiner im Attributionsfenster und ist über eine gemeinsame Kennung verbunden, oder es sind nur Kontakte einer Art, die das Modell nicht verteilt. Metrunio erfindet dann keinen Kontakt.
- Wie melde ich einen Zielschritt?
Wie sende ich die Schritte meines Funnels aus Browser oder Backend?
Im Browser mit
metrunio.identify(userId)einmal nach der Anmeldung und dannmetrunio.goal('schluessel')je Schritt; aus dem Backend mitPOST /v1/server/eventsund einem Ereignis vom Typgoalmitgoal_keyunduser_id. Beide Wege sind gleichwertig; ein Schritt ohne Kundenkennung wird abgelehnt. - Wie messe ich über meine eigene Domäne?
Wie richte ich eine eigene Messdomäne ein, damit Adblocker weniger Daten kosten?
In der Einrichtung trägst du einen Namen wie gauge.deine-domain.de ein, und Metrunio nennt dir auf einmal drei DNS-Einträge (zwei CNAME und einen TXT). Sobald sie stehen und ein Zertifikat auf deinen Namen ausgestellt ist, geht die Adresse in Betrieb; mit Snippet oder Tag Manager stellst du danach deinen Einbau um, die Shopify-App und die Plugins für Shopware und WordPress stellen sich selbst um. Die Messung läuft dann first-party und wird von Adblockern und dem Trackingschutz der Browser seltener gekürzt.
- Wie zählt Metrunio Folgezahlungen eines Abos?
Wie kennzeichne ich Abo-Folgezahlungen, und welchem Kanal werden sie zugeordnet?
Eine Folgezahlung meldest du als Kauf mit der Kennung des Abos (subscription_id) und dem Kennzeichen subscription_renewal; Verlängerungen aus Stripe kennzeichnet Metrunio selbst. Sie zählt im gemessenen Umsatz, steht in den Berichten getrennt und bekommt die Anteile der ersten Bestellung desselben Abos, denn einen eigenen Werbekontakt hat sie nicht. Ohne bekannte erste Bestellung oder ohne Einwilligung bleibt sie mit Grund nicht zugeordnet.