---
slug: sdk-api
title: "Welche Funktionen hat das Tracking-SDK?"
category: installation
locale: de
updated: 2026-10-19
keywords: ["SDK","JavaScript","API","track","identify","conversion"]
questions: ["Welche JavaScript-Aufrufe stehen mir zur Verfügung?","JavaScript API","metrunio.track","Wie sende ich ein eigenes Event?","SDK Dokumentation","Was passiert mit Aufrufen, bevor das SDK geladen ist?","Was ist metrunioQueue?"]
url: https://metrunio.com/de/hilfe/sdk-api
---

# 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 und sendet Events gebündelt. Bis es geladen ist, nimmt der Einbaucode die Aufrufe an und hält einen Messaufruf nur, wenn deine Seite vorher eine passende Einwilligung gemeldet hat.

```javascript
metrunio.init({ siteId, writeKey, endpoint, consent, autoPageviews, testMode, debug });
metrunio.setConsent({ analytics: true, marketing: true });
metrunio.page({ bereich: 'start' });
metrunio.track('add_to_cart', { produkt: 'abc', preis: 24.9 });
metrunio.identify('kundennummer-4711');
metrunio.conversion({ orderId: '12345', value: 149.9, currency: 'EUR' });
metrunio.goal('shop_angelegt'); // Zielschritt, zählt je Kunde einmal
metrunio.paymentReference(); // Referenz für Stripe und PayPal, nur mit Einwilligung
metrunio.renderSurvey('#metrunio-frage', { orderId: '12345' }); // Nachkauf-Frage auf der Danke-Seite
metrunio.survey({ orderId: '12345', answer: 'podcast_radio' }); // Antwort aus eigener Oberfläche
metrunio.fillForm('#anfrage'); // Lead-Kennung und Herkunft ins Formular
metrunio.reset();
```

## Verhalten

- Asynchrones Laden; Aufrufe vor dem Laden landen in window.metrunioQueue und werden anschließend abgespielt.
- Vor dem Laden prüft schon der Einbaucode jeden Aufruf. Er merkt sich die Entscheidung aus setConsent oder init({ consent }) und hält page, track, identify, conversion und goal nur mit Einwilligung in Analyse oder Marketing, renderSurvey, survey und fillForm nur mit Analyse, Werbeereignisse nur mit Marketing. Ohne sie verwirft er den Aufruf sofort, mit allen Angaben, auch wenn das SDK langsam oder gar nicht lädt. Ein Widerruf verwirft auch, was er schon hält, und eine spätere Zustimmung holt nichts nach. init, setConsent und reset hält er immer.
- Hast du den Einbaucode vor dem 19.10.2026 kopiert, hält er alle Aufrufe bis zum Laden des SDK, auch ohne Einwilligung. Kopiere ihn neu aus dem Portal unter „Einrichtung“. Der neue setzt metrunio.v auf 2.
- Batch-Versand: standardmäßig zehn Events beziehungsweise 1,5 Sekunden; beim Verlassen der Seite über navigator.sendBeacon.
- Bis zu drei Wiederholungen mit Backoff; danach bleibt der Batch lokal und wird beim nächsten Seitenaufruf erneut gesendet.
- Die Event-ID entsteht vor dem Versand, damit Wiederholungen idempotent bleiben.
- Ohne Marketing-Einwilligung verlassen Werbeevents das Gerät gar nicht erst.
- Kein Fingerprinting: Die pseudonyme ID ist ein zufälliger First-Party-Wert im LocalStorage.
- Ein eigenes Ereignis bekommt seinen Namen über `event_name`: `metrunio.track('custom', { event_name: 'newsletter_signup' })`. Buchstaben, Ziffern und `_ . : -`, höchstens 64 Zeichen; so steht es im Besuchsverlauf einer Journey.

## Fehlermeldungen in der Konsole

| Code | Bedeutung |
| --- | --- |
| CONFIG_INCOMPLETE | siteId, writeKey oder endpoint fehlt, oder statt des Write Keys steht noch der Platzhalter |
| DOUBLE_INIT | init() ein zweites Mal, meist durch eine doppelte Einbindung; es gilt der erste Aufruf |
| NOT_INITIALIZED | Aufruf vor init() |
| CONVERSION_ORDER_ID_MISSING | Kauf ohne Bestellnummer |
| GOAL_KEY_MISSING | Zielschritt ohne Schlüssel |
| GOAL_KEY_INVALID | Schlüssel mit Leerzeichen, Umlauten oder Sonderzeichen außer _ . und -, oder länger als 64 Zeichen; Großbuchstaben schreibt das SDK selbst klein |

> **Hinweis:** debug: true protokolliert jede Entscheidung des SDK in der Browserkonsole. Das hilft besonders, wenn du sehen willst, warum ein Event wegen fehlender Einwilligung nicht gesendet wurde.

## Ebenfalls gefragt

- JavaScript API
- metrunio.track
- Wie sende ich ein eigenes Event?
- SDK Dokumentation
- Was passiert mit Aufrufen, bevor das SDK geladen ist?
- Was ist metrunioQueue?

## Weiterführend

- https://metrunio.com/de/hilfe/snippet-einbauen
- https://metrunio.com/de/hilfe/single-page-app
- https://metrunio.com/de/hilfe/welche-events-gibt-es
- https://metrunio.com/de/hilfe/funnel-schritte-einbauen
- https://metrunio.com/de/hilfe/nachkauf-frage
- https://metrunio.com/de/hilfe/herkunft-im-formular
