Zum Hauptinhalt springen
Nutzungsmetriken definieren, welche Ereignisse aus deiner Anwendung erfasst und wie sie für die Abrechnung aggregiert werden. Du legst fest: Welches Ereignis? Welches Feld? Wie zählen?

Beispiel: AI-Anwendung

Stell dir vor, du betreibst eine AI-Anwendung und willst zwei Dinge abrechnen:
  1. Token-Verbrauch - Wie viele Tokens hat der Kunde verbraucht?
  2. API-Aufrufe - Wie oft wurde die API aufgerufen?
Dafür erstellst du zwei Produkte mit nutzungsbasierter Abrechnung:
ProduktEvent-NameAggregationFeld
Token-Verbrauchai_requestSUMtokens_used
API-Aufrufeai_requestCOUNT-

Nutzungsbasierte Abrechnung aktivieren

Die Konfiguration erfolgt direkt am Produkt. Du aktivierst die nutzungsbasierte Abrechnung und definierst, welche Events wie gemessen werden.
1

Produkt öffnen

Gehe zu Katalog > Produkte und öffne das gewünschte Produkt.
2

Nutzungsbasierte Abrechnung aktivieren

Aktiviere den Schalter Nutzungsbasierte Abrechnung aktivieren.
Nutzungsbasierte Abrechnung am Produkt konfigurieren
3

Grunddaten konfigurieren

  • Event-Name: Welches Event soll erfasst werden (z.B. email_sent, ai_request)
  • Name: Anzeigename der Metrik (erscheint in der Abonnement-Ansicht)
4

Aggregation wählen

Wähle, wie die Events zusammengefasst werden:
  • COUNT - Anzahl der Events zählen
  • SUM - Werte eines Feldes summieren
  • UNIQUE_COUNT - Eindeutige Werte zählen
  • MAX - Höchsten Wert ermitteln
  • LATEST - Letzten gemeldeten Wert verwenden
  • AVERAGE - Durchschnitt berechnen
5

Filter hinzufügen (optional)

Definiere Bedingungen, die Events erfüllen müssen, um in die Aggregation einbezogen zu werden.
6

Optionale Einstellungen

  • Beschreibung: Wird auf Rechnungen unter dem Produktnamen angezeigt (Markdown möglich)
  • Event-Anzeigeformat: Formatvorlage für die Nutzungsaufschlüsselung (z.B. API Call to {endpoint} at {timestamp})
Mit Test Event pushen kannst du direkt ein Test-Event senden, um die Konfiguration zu prüfen.

Aggregationstypen

Je nachdem, was du messen willst, wählst du einen passenden Aggregationstyp:
TypBeschreibungBeispiel
AnzahlZählt die Events150 API-Aufrufe
SummeAddiert ein Feld45.000 Tokens
MaximumHöchster Wert im ZeitraumMax. 50 gleichzeitige User
DurchschnittMittelwert eines FeldesØ 300 Tokens pro Request
EindeutigAnzahl einzigartiger Werte12 verschiedene Modelle genutzt
Letzter WertAktuellster gemeldeter WertAktueller Speicherverbrauch
Für Summe, Maximum, Durchschnitt, Eindeutig und Letzter Wert musst du ein Feld angeben. Anzahl zählt einfach die Events - kein Feld nötig.
Mehr zu Aggregationstypen

Feld angeben

Das Feld bestimmt, welcher Wert aus dem Event aggregiert wird. Beispiel Event:
{
  "eventName": "ai_request",
  "properties": {
    "tokens_used": 350,
    "model": "gpt-4",
    "endpoint": "/v1/completions"
  }
}
Für die Summe der Tokens gibst du als Feld tokens_used an.

Verschachtelte Felder

Du kannst auch auf verschachtelte Werte zugreifen mit Punkt-Notation:
{
  "properties": {
    "usage": {
      "input_tokens": 100,
      "output_tokens": 250
    }
  }
}
Feld: usage.input_tokens → aggregiert die Input-Tokens.

Filter

Mit Filtern kannst du bestimmen, welche Events in die Berechnung einfließen. Beispiel: Du willst nur erfolgreiche Requests zählen:
{
  "property": "status_code",
  "operator": "equals",
  "value": 200
}

Verfügbare Operatoren

OperatorBeschreibungBeispiel
equalsExakte Übereinstimmungstatus_code = 200
not-equalsNicht gleichstatus_code ≠ 500
gtGrößer alstokens_used > 100
gteGrößer oder gleichtokens_used ≥ 100
ltKleiner alstokens_used < 1000
lteKleiner oder gleichtokens_used ≤ 1000
inIn Liste enthaltenmodel in [“gpt-4”, “gpt-4-turbo”]
not-inNicht in Listemodel nicht in [“gpt-3.5”]
containsEnthält Textendpoint enthält “/v1/”
Mehrere Filter: Alle Filter müssen zutreffen (UND-Verknüpfung).

Gruppierung (Group By)

Mit Gruppierung kannst du Events nach Eigenschaften gruppieren, um für jede Gruppe separate Abrechnungspositionen zu erstellen. Dies ermöglicht eine detaillierte Aufschlüsselung auf der Rechnung.
Jede Gruppe erscheint als eigene Position auf der Rechnung. Ideal, wenn du Kunden zeigen willst, wie sich ihre Nutzung zusammensetzt.

Gruppierung konfigurieren

In der Produkt-Konfiguration kannst du eine oder mehrere Gruppierungseigenschaften hinzufügen:
  1. Öffne den Bereich Gruppierung
  2. Wähle die Event-Eigenschaft aus, nach der gruppiert werden soll
  3. Füge bei Bedarf weitere Eigenschaften hinzu
Beispiele für Gruppierungseigenschaften:
  • model - Gruppierung nach AI-Modell
  • region - Gruppierung nach Region
  • endpoint - Gruppierung nach API-Endpoint

Verschachtelte Eigenschaften

Du kannst auch auf verschachtelte Felder zugreifen mit Punkt-Notation:
  • properties.region - Feld region innerhalb von properties
  • metadata.customer.segment - Tief verschachteltes Feld

Beispiel: Token-Verbrauch pro Modell

Konfiguration:
groupBy: ["model"]
Ergebnis auf der Rechnung:
PositionMengeEinzelpreisGesamt
AI Tokens (gpt-4)25.0000,03€/1k7,50€
AI Tokens (gpt-4-turbo)15.0000,02€/1k3,00€
AI Tokens (gpt-3.5-turbo)5.0000,005€/1k0,25€

Mehrere Dimensionen

Du kannst auch nach mehreren Feldern gruppieren. Jede Kombination wird zur eigenen Position: Konfiguration:
groupBy: ["model", "endpoint"]
Ergebnis:
ModellEndpointTokens
gpt-4/v1/completions20.000
gpt-4/v1/chat5.000
gpt-4-turbo/v1/completions15.000
Je mehr Gruppierungsdimensionen, desto mehr Positionen auf der Rechnung. Wähle nur die Dimensionen, die für deine Kunden relevant sind.

Event-Anzeigeformat

Mit dem Event-Anzeigeformat kannst du festlegen, wie einzelne Events in der Nutzungsaufschlüsselung auf Rechnungen angezeigt werden. Dies verbessert die Lesbarkeit für deine Kunden.

Platzhalter verwenden

Du kannst Platzhalter verwenden, um Event-Eigenschaften in die Anzeige einzubinden: Beispiel:
API Call to {endpoint} at {timestamp}
Event:
{
  "eventName": "api_call",
  "properties": {
    "endpoint": "/api/users",
    "timestamp": "2026-01-15T10:30:00Z"
  }
}
Anzeige in der Nutzungsaufschlüsselung:
API Call to /api/users at 2026-01-15T10:30:00Z

Verschachtelte Eigenschaften

Du kannst auch auf verschachtelte Eigenschaften zugreifen: Format:
Request to {metadata.region} using {model}
Event:
{
  "properties": {
    "metadata": {
      "region": "eu-west-1"
    },
    "model": "gpt-4"
  }
}
Anzeige:
Request to eu-west-1 using gpt-4

Platzhalter-Syntax

  • Einfache Eigenschaften: {propertyName}
  • Verschachtelte Eigenschaften: {nested.property.name}
  • Platzhalter müssen geschlossen sein: {property} ✅, {property
  • Platzhalternamen: Müssen mit Buchstabe, Zahl oder Unterstrich beginnen und können Buchstaben, Zahlen, Unterstriche und Punkte enthalten

Beispiele

FormatEvent-EigenschaftenAnzeige
API Call to {endpoint}endpoint: "/api/users"API Call to /api/users
{model} request at {timestamp}model: "gpt-4", timestamp: "2026-01-15T10:30:00Z"gpt-4 request at 2026-01-15T10:30:00Z
Storage usage: {usage.bytes} bytesusage: { bytes: 1024 }Storage usage: 1024 bytes

Standardformat (Fallback)

Wenn kein eventDisplayFormat definiert ist, wird automatisch das Standardformat verwendet:
{eventName} at {timestamp}
Beispiel:
  • Event: eventName: "api_call", timestamp: "2026-01-15T10:30:00Z"
  • Anzeige: api_call at 2026-01-15T10:30:00Z

Vorschau im Formular

Beim Erstellen oder Bearbeiten einer Nutzungsmetrik kannst du eine Live-Vorschau sehen, die auf einem Beispiel-Ereignis basiert. Dies hilft dir, das Format zu testen, bevor du es speicherst. Wenn kein Format definiert ist, wird die Vorschau mit dem Standardformat angezeigt.
Wenn ein Platzhalter auf eine Eigenschaft verweist, die im Event nicht vorhanden ist, wird der Platzhalter als leerer String angezeigt.

Praxisbeispiel: AI Usage Billing

Du bietest eine AI-Plattform an und willst Token-Verbrauch abrechnen.

1. Produkt konfigurieren

Erstelle ein Produkt “AI Token Verbrauch” und aktiviere die nutzungsbasierte Abrechnung:
EinstellungWert
Event-Nameai_request
NameAI Token Verbrauch
AggregationSUM
Feldtokens_used

2. Events senden

Deine Anwendung sendet bei jedem AI-Request ein Event:
{
  "transactionId": "req-abc-123",
  "eventName": "ai_request",
  "timestamp": "2026-01-15T14:30:00Z",
  "customerId": "cust-xyz",
  "properties": {
    "tokens_used": 350,
    "model": "gpt-4",
    "endpoint": "/v1/completions",
    "status_code": 200
  }
}

3. Abrechnung

Am Monatsende erhält der Kunde eine Rechnung mit Aufschlüsselung:
PositionMengePreis
AI Tokens (gpt-4)25.0000,03€/1k = 7,50€
AI Tokens (gpt-4-turbo)15.0000,02€/1k = 3,00€
AI Tokens (gpt-3.5-turbo)5.0000,005€/1k = 0,25€
Gesamt10,75€

Praxisbeispiel: API-Aufrufe zählen

Du willst zusätzlich die Anzahl der API-Aufrufe abrechnen - unabhängig vom Token-Verbrauch.

Produkt konfigurieren

Erstelle ein Produkt “API Aufrufe” und aktiviere die nutzungsbasierte Abrechnung:
EinstellungWert
Event-Nameai_request
NameAPI Aufrufe
AggregationCOUNT
Filterstatus_code in [200, 201, 204]
Diese Konfiguration zählt nur erfolgreiche Requests. Fehlgeschlagene Requests (500er) werden nicht berechnet.

In der Abonnement-Ansicht

Nutzungsmetriken im Abonnement
In der Abonnement-Ansicht siehst du die aktuelle, noch nicht abgerechnete Nutzung. Klicke auf das Auge-Symbol, um die Details zu sehen:
Metrik Details
Hier siehst du:
  • Den Event Name und die Aggregation
  • Den aggregierten Wert und die Anzahl der Events
  • Den Zeitraum der noch nicht abgerechneten Events
  • Die einzelnen Events mit Zeitstempel

Inklusiveinheiten (Free Units)

Inklusiveinheiten ermöglichen es, eine bestimmte Menge kostenlos anzubieten. Erst wenn die Nutzung die Inklusiveinheiten überschreitet, wird abgerechnet. Beispiel: 1.000 kostenlose API-Calls pro Monat, danach 0,01€ pro Call.

Proration bei vorzeitiger Beendigung

Wenn ein Abonnement-Item mitten im Abrechnungszeitraum endet (z.B. durch Kündigung oder Produktwechsel), werden die Inklusiveinheiten für die letzte Abrechnungsperiode anteilig berechnet. Beispiel:
  • Inklusiveinheiten: 1.000 API-Calls/Monat
  • Abonnement-Item endet am 15. Januar (halber Monat)
  • Proratierte Inklusiveinheiten für die letzte Periode: 500 API-Calls
Die Proration erfolgt nur bei der letzten Abrechnungsperiode eines Items. Bei regulären Perioden gelten die vollen Inklusiveinheiten.

Inklusiveinheiten bei Gruppierung

Bei gruppierten Metriken (groupBy) werden Inklusiveinheiten global angewendet - nicht pro Gruppe. Beispiel:
  • Inklusiveinheiten: 1.000 Tokens
  • Nutzung: 600 Tokens (gpt-4) + 800 Tokens (gpt-3.5) = 1.400 Tokens gesamt
  • Abzüglich Inklusiveinheiten: 1.400 - 1.000 = 400 Tokens abrechenbar
Die 400 abrechenbaren Tokens werden proportional auf die Gruppen verteilt:
  • gpt-4: 600/1.400 × 400 = 171 Tokens
  • gpt-3.5: 800/1.400 × 400 = 229 Tokens
Die proportionale Verteilung stellt sicher, dass Inklusiveinheiten nicht für jede Gruppe einzeln abgezogen werden, was zu einer unbeabsichtigten Vervielfachung führen würde.

Mindestabnahme (Minimum Commitment)

Die Mindestabnahme garantiert einen Mindestumsatz pro Abrechnungsperiode. Liegt die tatsächliche Nutzung unter dem Minimum, wird trotzdem das Minimum berechnet. Beispiel: Mindestabnahme von 500 API-Calls/Monat:
  • Nutzung: 300 Calls → Berechnet: 500 Calls (Minimum)
  • Nutzung: 800 Calls → Berechnet: 800 Calls (tatsächlich)

Mindestabnahme bei Gruppierung

Bei gruppierten Metriken wird die Mindestabnahme global auf die Gesamtnutzung angewendet. Beispiel:
  • Mindestabnahme: 1.000 Tokens
  • Nutzung: 300 Tokens (gpt-4) + 200 Tokens (gpt-3.5) = 500 Tokens gesamt
  • Da 500 < 1.000, wird auf 1.000 Tokens aufgerundet
Die Differenz wird proportional auf die Gruppen verteilt:
  • gpt-4: 300/500 × 1.000 = 600 Tokens
  • gpt-3.5: 200/500 × 1.000 = 400 Tokens

Kombination: Inklusiveinheiten + Mindestabnahme

Werden beide Optionen verwendet, gelten folgende Regeln:
  1. Erst werden Inklusiveinheiten von der Gesamtnutzung abgezogen
  2. Dann wird die Mindestabnahme angewendet
Beispiel:
  • Inklusiveinheiten: 500 Tokens
  • Mindestabnahme: 1.000 Tokens
  • Nutzung: 800 Tokens
Berechnung:
  1. 800 - 500 (Inklusiv) = 300 Tokens
  2. max(300, 1.000) = 1.000 Tokens abrechenbar

Nächste Schritte