Bestellungen aus jedem PHP-Backend melden

Ein Client sendet Ihre Server-Events am Ende der Anfrage, ein Idempotenzschlüssel lässt einen doppelten Webhook einmal zählen.

Paket mirafive/sdk-php

In 5 Schritten eingerichtet

  1. Paket installieren

    Es setzt PHP 8.3 mit ext-json voraus und braucht kein weiteres Composer-Paket. Gesendet wird mit ext-curl, sonst über PHP-Streams oder Ihren eigenen PSR-18-Client.

    Code für Schritt 1 der Einrichtung mit PHP: Paket installieren. composer require mirafive/sdk-php

  2. Geheimen Schlüssel eintragen

    Nehmen Sie den geheimen Schlüssel einer Server-Quelle aus Daten → Quellen. Er bleibt auf dem Server und gehört nie in HTML, JavaScript oder eine App.

    Code für Schritt 2 der Einrichtung mit PHP: Geheimen Schlüssel eintragen. MIRAFIVE_SECRET_KEY=mf_…

  3. Einen Client anlegen

    new Mira liest den Schlüssel aus $_ENV, $_SERVER oder getenv(). track() puffert; gesendet wird am Ende der Anfrage, alle 100 Events und bei flush(). Ein Flush dauert nie länger als 3 Sekunden.

    Code für Schritt 3 der Einrichtung mit PHP: Einen Client anlegen. <?php declare(strict_types=1); use MiraFive\Mira; require __DIR__.'/vendor/autoload.php'; // Liest MIRAFIVE_SECRET_KEY und, falls gesetzt, MIRAFIVE_HOST. $mira = new Mira;

  4. Bestellung melden

    Rufen Sie track() mit benannten Argumenten dort auf, wo die Zahlung bestätigt wird. IDs sind Strings, Integer-IDs wandeln Sie mit (string) um.

    Code für Schritt 4 der Einrichtung mit PHP: Bestellung melden. $mira->track('order_paid', userId: (string) $order->customerId, properties: [ 'revenue' => 328, 'currency' => 'EUR', ]);

  5. Schlüssel prüfen

    Das Test-Event zeigt, dass Schlüssel und Host funktionieren, und wird weder gespeichert noch berechnet. Ein falscher Schlüssel wirft einen MiraError. Danach finden Sie ein echtes Event unter Daten → Live.

    Code für Schritt 5 der Einrichtung mit PHP: Schlüssel prüfen. $receipt = $mira->send([['name' => '$install_check']]); var_dump($receipt->reason); // string(13) "install_check"

MIRA FIVE ist Analyse rund um die Person. mirafive/sdk-php ist die Server-Seite für reines PHP und für Frameworks ohne eigenes MIRA-FIVE-Paket: Es puffert Events, sendet sie am Ende der Anfrage und wertet Feature-Flags in Ihrem Prozess aus. Unter PHP-FPM übergeben Sie einen PSR-16-Cache (new Mira(cache: $psr16Cache)), damit sich alle Prozesse Flags und Sendepausen teilen.

Woher kommen die Pageviews?

Aus dem Browser. Das zweizeilige Script-Tag mit dem Website-Schlüssel einer Website-Quelle gehört in Ihre Templates. Beide Quellen melden in dasselbe Projekt, der geheime Schlüssel erreicht nie eine Seite.

Wie kommt eine Bestellung zu ihrem Kanal?

Über die Person. Mit Einwilligung führt der Browser eine Kennung. Schicken Sie sie an Ihren Server, etwa in einem versteckten Feld des Checkout-Formulars, und identify verknüpft die früheren Besuche mit Ihrer Nutzer-ID:

$mira->identify((string) $user->id, ['plan' => 'pro'], anonymousId: $anonymousId);

Die Bestellung trägt dieselbe ID und landet bei dieser Person, neben dem Kanal ihres ersten Besuchs. Nehmen Sie Ihre interne ID, nie die E-Mail-Adresse. Mit einem Kaufziel auf order_paid zeigt Herkunft Käufer und Umsatz je Kanal.

Wie zählt ein Webhook nur einmal?

Mit send() und einem Idempotenzschlüssel. Die Methode sendet sofort und gibt den Receipt des Servers zurück:

$receipt = $mira->send([
    ['name' => 'order_paid', 'userId' => (string) $order->customerId, 'properties' => ['revenue' => 328, 'currency' => 'EUR']],
], idempotencyKey: "order-{$order->id}");

send() wirft einen MiraError, wenn MIRA FIVE den Batch ablehnt. track() und flush() werfen bei Netzproblemen nie.

Im Tab Einbauen der Quelle steht Von Ihrem Coding-Agent einbauen lassen: ein Prompt für Claude Code, Cursor oder Codex mit allen Schritten und der Prüfung, nie mit dem geheimen Schlüssel. Queues und Transports beschreibt die Dokumentation, die Aufgabenteilung die Einrichtungsseite.

Andere Einrichtungen

Dieselben Zahlen, egal wie Ihre Website gebaut ist.

Fragen und Antworten

Was passiert, wenn MIRA FIVE nicht erreichbar ist?
Ein Flush gibt nach spätestens 3 Sekunden auf. Danach überspringen Flushes 30 Sekunden lang das Netz und verwerfen ihre Events. Mit einem PSR-16-cache gilt die Pause für alle PHP-Prozesse.
Und in Octane, RoadRunner oder Queue-Workern?
Langlebige Worker erreichen den Flush am Ende nur, wenn sie stoppen. Rufen Sie $mira->flush() nach jeder Anfrage oder jedem Job auf.
Wie bleiben Tests und lokale Läufe still?
new Mira(enabled: getenv('APP_ENV') === 'production') sendet nichts und braucht keinen Schlüssel, weist aber dieselben Eingaben ab wie in Produktion.
Gilt das auch für Laravel und Symfony?
Nein, dort nehmen Sie mirafive/sdk-laravel oder mirafive/sdk-symfony, siehe Einrichtung für Laravel und für Symfony.

Sehen Sie, welcher Kanal Käufer bringt

Kostenlos bis 25.000 Events im Monat. Ohne Kreditkarte.