# Jede bezahlte Bestellung ihrem Kanal zuordnen

> MIRA FIVE in Laravel einrichten: ein Composer-Paket, das Script per Blade-Direktive im Layout und bezahlte Bestellungen aus Controller oder Webhook.

URL: https://mirafive.io/de/fuer/laravel  
Updated: 2026-09-28

Eine Blade-Direktive zählt jeden Besuch, die Mira-Fassade meldet Bestellungen nach der Antwort.

Paket `mirafive/sdk-laravel`

## In 5 Schritten eingerichtet

1. ### Paket installieren  
Service Provider und Fassade `Mira` werden automatisch erkannt. Das Paket setzt PHP 8.3 oder neuer und Laravel 11, 12 oder 13 voraus.  
```  
composer require mirafive/sdk-laravel  
```
2. ### Zwei Schlüssel eintragen  
Der geheime Schlüssel einer Server-Quelle sendet aus Ihrer App und erreicht nie eine Seite. Der Website-Schlüssel einer Website-Quelle steht im Script-Tag.  
```  
MIRAFIVE_SECRET_KEY=mf_…  
MIRAFIVE_WEBSITE_KEY=mf_…  
```
3. ### Script ins Layout setzen  
`@mirafiveScript` gibt das zweizeilige Script-Tag mit Ihrem Website-Schlüssel aus, auf Wunsch mit CSP-Nonce. Es zählt jede Seite und startet ohne Cookies.  
```  
<head>  
    @mirafiveScript  
</head>  
```
4. ### Bestellung melden  
Rufen Sie die Fassade dort auf, wo Ihre App die Bestellung als bezahlt markiert, etwa im Zahlungs-Webhook. Gesendet wird nach der Antwort.  
```  
use MiraFive\Laravel\Facades\Mira;  
Mira::track('order_paid', userId: (string) $order->user_id, properties: [  
    'revenue' => 328,  
    'currency' => 'EUR',  
]);  
```
5. ### Einrichtung prüfen  
Der Befehl sendet ein Test-Event, das weder gespeichert noch berechnet wird, und endet mit „The key and host work.“  
```  
php artisan mirafive:check  
```

## Was sehen Sie nach der Installation?

Das Script zählt ohne Cookies und ohne Speicher auf dem Gerät: Besuche, Seiten, Kanäle, Kampagnen, Länder, Geräte und Events. Danach zeigen die Übersicht und [Herkunft › Kanäle](https://mirafive.io/de/produkt/herkunft), woher Ihre Besuche kommen, und [Wege › Seiten](https://mirafive.io/de/produkt/wege), welche Seiten Einstiege bringen.

## Wie kommt eine Bestellung zu ihrem Kanal?

Über die Person. Stellen Sie die Website-Quelle unter **Daten → Quellen** auf **Vollständig**. Dann schalten Sie das Script in den vollen Modus und übergeben Sie angemeldete Personen mit derselben ID, die Ihr Server sendet:

```sh
MIRAFIVE_SCRIPT_MODE=full
```

```blade
<head>
    @mirafiveScript
    @auth
        <script>mirafive('identify', @json((string) auth()->id()))</script>
    @endauth
</head>
```

Im vollen Modus sendet und speichert das Script nichts, bis die Person antwortet, bei einer Ablehnung gar nichts. Ihr Banner übergibt die Antwort mit `mirafive('consent', …)`: `true` nur für Statistik, `false` oder `{ statistics, experiments, targeting }`. Die Bestellung trägt dann dieselbe Nutzer-ID und landet bei dieser Person, neben dem Kanal ihres ersten Besuchs.

Mit einem Kaufziel auf `order_paid` zeigt Herkunft › Kanäle Käufer und Umsatz je Kanal. Wie Sie diese Zahlen lesen, erklärt [Welcher Kanal bringt zahlende Kunden?](https://mirafive.io/de/lernen/welcher-kanal-bringt-zahlende-kunden)

## Wie zählt ein Webhook nur einmal?

Mit `Mira::send` und einem Idempotenzschlüssel. Die Fassade sendet sofort, und eine Wiederholung mit demselben Schlüssel wird einmal gespeichert:

```php
use MiraFive\Laravel\Facades\Mira;

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

Server-Events und Script haben getrennte Modi: `MIRAFIVE_MODE` für den Server, `MIRAFIVE_SCRIPT_MODE`für das Tag. Die Rechtsgrundlage für die gesendeten Nutzer-IDs liegt bei Ihrer Website.

## Liest das Paket Feature-Flags?

Ja, in Ihrem eigenen Prozess:

```php
$flags = Mira::forUser($request->user())->flags();

if ($flags->enabled('new-checkout')) {
    // der neue Checkout
}
```

`@mirafiveFlags` schreibt dieselben Antworten in die Seite, damit der Browser gleich die richtige Variante zeigt. Ein Code-[A/B-Test](https://mirafive.io/de/glossar/ab-test) ist ein [Feature-Flag](https://mirafive.io/de/glossar/feature-flag), das genauso gelesen wird. Queues, Octane und Tests beschreibt die [Dokumentation](https://docs.mirafive.io/sdks/laravel).

## Andere Einrichtungen

Dieselben Zahlen, egal wie Ihre Website gebaut ist.

- [Next.js](https://mirafive.io/de/fuer/nextjs)
- [React](https://mirafive.io/de/fuer/react)
- [Astro](https://mirafive.io/de/fuer/astro)
- [Nuxt](https://mirafive.io/de/fuer/nuxt)
- [Symfony](https://mirafive.io/de/fuer/symfony)
- [PHP](https://mirafive.io/de/fuer/php)
- [Vue](https://mirafive.io/de/fuer/vue)
- [TanStack Start](https://mirafive.io/de/fuer/tanstack-start)
- [Node.js](https://mirafive.io/de/fuer/nodejs)
- [Convex](https://mirafive.io/de/fuer/convex)
- [JavaScript](https://mirafive.io/de/fuer/javascript)
- [jede Website](https://mirafive.io/de/fuer/website)

[Zur Dokumentation](https://docs.mirafive.io)

## Fragen und Antworten

### Werden Antworten dadurch langsamer?

Nein. Gepufferte Events gehen nach der Antwort raus, auch nach jeder Octane-Anfrage und jedem Queue-Job. Mit MIRAFIVE\_QUEUE übernimmt ein Queue-Worker das Senden.

### Wie testen Sie Code, der Events sendet?

Mit Mira::fake(). Die Fassade zeichnet dann auf statt zu senden, und assertTracked('order\_paid') prüft das Event.

### Funktioniert das mit Octane?

Ja. Das Paket hält keinen Zustand einer Anfrage in Singletons und leert den Puffer nach jeder Anfrage.

## Sehen Sie, welcher Kanal Käufer bringt

Kostenlos bis 25.000 Events im Monat. Ohne Kreditkarte.

[Kostenlos starten](https://app.mirafive.io/register)[Zu den Preisen](https://mirafive.io/de/preise)
