Zum Inhalt springen

Installation

Wie melde ich einen Zielschritt?

Im Browser mit metrunio.identify(userId) einmal nach der Anmeldung und dann metrunio.goal('schluessel') je Schritt; aus dem Backend mit POST /v1/server/events und einem Ereignis vom Typ goal mit goal_key und user_id. Beide Wege sind gleichwertig; ein Schritt ohne Kundenkennung wird abgelehnt.

Wie sende ich die Schritte meines Funnels aus Browser oder Backend?

Ein Zielschritt ist ein Ereignis vom Typ goal mit dem Schlüssel des Schritts und einer Kundenkennung. Woher es kommt, ist gleich: Das SDK im Browser und die Server Events API führen zu demselben Ereignis, mit derselben Regel „einmal je Kunde“. Nimm den Weg, an dem der Schritt tatsächlich entsteht: die Registrierung dort, wo dein Backend das Konto anlegt; ein abgeschlossener Einrichtungsdialog dort, wo er im Browser endet.

Im Browser

// einmal nach der Anmeldung: macht den Kunden über Geräte hinweg zu demselben
metrunio.identify('kunde-4711');

// je Schritt einmal; ein zweiter Aufruf desselben Kunden zählt nicht noch einmal
metrunio.goal('shop_angelegt');

// mit Betrag, wenn das Ereignis ihn kennt: zählt als Umsatz.
// Ohne Betrag gilt der Akquisitionswert aus dem Portal.
metrunio.goal('erste_zahlung', { value: 49, currency: 'EUR' });

identify() kommt vor goal(), und zwar in derselben Seitenladung oder früher: Das SDK hängt die Kundenkennung an alles, was danach gesendet wird. Ohne identify() geht der Schritt mit der pseudonymen Browserkennung hinaus. Er wird angenommen, zählt aber je Browser statt je Kunde. Der Schlüssel wird kleingeschrieben und ohne Leerzeichen gesendet; ein leerer Schlüssel ergibt in der Konsole GOAL_KEY_MISSING.

Aus dem Backend

curl -X POST "$METRUNIO_COLLECTOR/v1/server/events" \
  -H "authorization: Bearer $METRUNIO_SERVER_KEY" \
  -H "content-type: application/json" \
  -d '{
    "site_id": "site_demo_app",
    "events": [{
      "event_id": "kunde-4711-shop_angelegt",
      "event_type": "goal",
      "goal_key": "shop_angelegt",
      "user_id": "kunde-4711",
      "occurred_at": "2026-09-14T10:15:00Z",
      "consent_state": "granted",
      "consent_purposes": ["analytics"]
    }]
  }'

$METRUNIO_COLLECTOR ist die Adresse aus dem fertigen Aufruf im Reiter „Server Events API“ der Einrichtung (siehe „Wie melde ich Conversions serverseitig?“).

Die user_id ist dieselbe Kundennummer, die du im Browser an identify() übergibst; sie wird beim Empfang pseudonymisiert und nie im Klartext gespeichert. Wer schon pseudonymisiert, sendet user_id_hash; auch sie wird beim Empfang mit dem Schlüssel deines Kontos verrechnet. Ein goal ohne goal_key oder ohne Kundenkennung wird abgelehnt, und die Antwort nennt das Feld. Wert und Währung sind optional. Schickst du sie mit, zählt der Betrag als Umsatz; fehlen sie, gilt der Akquisitionswert des Schritts, getrennt vom Umsatz. So ist es voreingestellt; welche Wertlogik ein Schritt hat, steht im Portal (siehe „Welchen Wert hat ein Zielschritt?“).

Die Event-ID

Bilde die Event-ID aus Kunde und Schritt, etwa kunde-4711-shop_angelegt. Dann ist ein wiederholter Aufruf (ein erneut laufender Job, ein zweiter Klick) auf zwei Ebenen unschädlich: Dieselbe Event-ID zählt nur einmal gegen das Kontingent, und derselbe Schritt zählt je Kunde nur einmal im Bericht. Das SDK bildet seine Event-IDs selbst.

Testen

  • Im Portal unter „Bestellungen & Ziele“ hat jeder Schritt die Schaltfläche „Testschritt senden“. Das Ereignis landet in den Testdaten und zählt dort sofort als Conversion dieses Schritts, nicht in den Berichten.
  • Im Einrichtungsassistenten legt der Schritt „Conversion festlegen“ mit der Wahl „Schritte in einer Anwendung (SaaS)“ drei Zielschritte an: registriert, eingerichtet, erste_zahlung. Du kannst sie umbenennen, ergänzen oder stilllegen.
  • Aus dem eigenen System: Sende den Schritt mit environment: "test" beziehungsweise im SDK mit testMode: true und prüfe ihn unter „Bestellungen & Ziele“ mit dem Umschalter „Testdaten“.

Achtung

goal ist ein Analytics-Ereignis. Ohne Analytics-Einwilligung verlässt es im Browser das Gerät nicht, und serverseitig wird es ohne passende consent_purposes nicht gespeichert. Jeder gesendete Schritt zählt gegen das Eventkontingent.

Zuletzt geprüft am 14.10.2026

Ebenfalls gefragt

  • metrunio.goal
  • Wie sende ich ein goal-Ereignis?
  • Wie melde ich einen Zielschritt aus dem Backend?
  • Wozu brauche ich identify() vor goal()?
  • Welche Event-ID nehme ich für einen Zielschritt?
  • Wie teste ich einen Zielschritt?
  • Wie lege ich einen SaaS-Funnel im Assistenten an?

Weiterführende Artikel

  • Was ist ein Zielschritt?

    Wie messe ich einen Funnel, wenn es keinen Kauf gibt?

    Ein Zielschritt ist eine Conversion, die ein Kunde erreicht statt kauft: registriert, eingerichtet, erste Zahlung. Jeder Schritt hat einen Schlüssel und eine Reihenfolge und zählt je Kunde genau einmal, egal wie oft er gemeldet wird. Mehrere Schritte in Reihenfolge ergeben den Funnel im Bericht „Bestellungen & Ziele“.

  • Wie lese ich den Funnel-Bericht?

    Was bedeuten „Erreicht“, „Übergang“ und „Übersprungen“ im Funnel?

    „Erreicht“ ist die gemessene Zahl der Kunden, die den Schritt im Zeitraum erreicht haben, je Kunde einmal. „Übergang“ folgt der Kohorte: Von den Kunden, die den Vorschritt im Zeitraum erreichten, der Anteil, der diesen Schritt bis zum Ende des Zeitraums erreichte (nie über 100 %). „Übersprungen“ sind Kunden, die den Schritt erreichten, den Vorschritt aber nie.

  • Welche Funktionen hat das Tracking-SDK?

    Welche JavaScript-Aufrufe stehen mir zur Verfügung?

    Das SDK stellt init, setConsent, page, track, identify, conversion, goal und reset bereit, dazu paymentReference für Stripe und PayPal, fillForm für Formulare sowie renderSurvey und survey für die Nachkauf-Frage. Es lädt asynchron, sammelt Aufrufe vor dem Laden in einer Warteschlange und sendet Events gebündelt.

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

  • Wie messe ich eine Single-Page-App?

    Was tun, wenn Seitenwechsel ohne Neuladen nicht gezählt werden?

    Mit automatischen Seitenaufrufen (autoPageviews, voreingestellt) zählt das SDK auch Seitenwechsel ohne Neuladen selbst: Es bemerkt jede Adressänderung über pushState, replaceState und die Zurück-Taste. Selbst rufst du metrunio.page() nur auf, wenn dein Router die Ansicht wechselt, ohne die Adresse zu ändern, oder wenn du autoPageviews abgeschaltet hast.

  • Wie teste ich meine erste Conversion?

    Wie prüfe ich, ob eine Conversion richtig ankommt?

    Im Einrichtungsassistenten gibt es den Schritt „Test-Conversion ausführen“. Er erzeugt einen Testkauf mit einem Testbesuch davor, beide als Testdaten gespeichert: Sie erscheinen sofort in der Live-Checkliste, die Journey zeigt einen zugeordneten Kontakt, und aus den Standardberichten bleiben sie ausgeschlossen.

  • Gilt die Einwilligung auch für Server-Events?

    Brauche ich Consent, wenn ich serverseitig sende?

    Ja, denn serverseitige Verarbeitung ist nicht gleichbedeutend mit Einwilligungsfreiheit: Gib consent_state und consent_purposes im Event mit; ohne passende Einwilligung wird ein Ereignis abgewiesen. Die Ausnahme sind Kauf und Erstattung mit consent_state unknown: Sie werden zur Umsatzabstimmung gespeichert, mit Bestellnummer und ohne Browser-, Kunden- und Werbekennungen, zählen im gemessenen Umsatz und erscheinen als nicht zugeordnet mit dem Grund „Keine Einwilligung“. Mit denied gilt das nur, wenn für dein Konto die Zusatzweisung zur Umsatzabstimmung aktiviert ist. Abschalten kannst du die Umsatzabstimmung im Portal unter Datenschutz; zuordnen lässt sich eine solche Bestellung nur über den Checkout, wenn du das einschaltest.

Sieh, was deine Daten erzählen.

Erst in der Demo umsehen. Ein eigenes Konto gibt es derzeit nur auf Einladung.

Demo öffnenZugang anfragen