Zaznamenávanie udalostí
Konverzie sledujte na strane servera — aj tam, kam JavaScript na frontende nedosiahne: API volania, webhooky, úlohy vo fronte. Plausible potrebuje user-agent a IP návštevníka na počítanie unikátnych návštevníkov, preto ich pred zaznamenaním zadajte cez fromRequest() alebo setVisitor():
use RoundlyConsulting\Plausible\DataTransferObjects\Revenue;
use RoundlyConsulting\Plausible\Facades\Plausible;
use RoundlyConsulting\Plausible\Requests\Events\CaptureEventRequest;
// Lift the visitor from the current request, send a pageview in one call
Plausible::events()->fromRequest(request())->pageview('https://my-site.com/blog/x');
// A custom event (goal) in one call — the site defaults to plausible.site
Plausible::events()->fromRequest(request())->event(
'Signup',
url: 'https://my-site.com/register',
props: ['plan' => 'pro'],
revenue: Revenue::of('49.00', 'EUR'), // optional
site: null, // optional override
);
// A custom event, fired on the queue so it never blocks the response
Plausible::events()
->fromRequest(request())
->captureQueued(CaptureEventRequest::make(
site: 'my-site.com',
url: 'https://my-site.com/signup',
name: 'Signup',
props: ['plan' => 'pro'],
));
// The explicit, synchronous form still works
$response = Plausible::events()
->setVisitor(userAgent: request()->userAgent(), ipAddress: request()->ip())
->capture(CaptureEventRequest::make(
site: 'my-site.com',
url: 'https://my-site.com/blog/some-post',
referrer: 'https://affiliate-site.com',
props: ['author' => 'jane'],
));fromRequest() prevezme user-agent a IP z requestu; setVisitor() ich berie explicitne — napríklad tie, ktoré ste si uložili pri pôvodnej návšteve:
// In a webhook handler or a job there is no browser request in scope —
// pass the identifiers you stored with the original visit
Plausible::events()
->setVisitor($order->user_agent, $order->ip_address)
->capture(CaptureEventRequest::make(
site: 'my-site.com',
url: 'https://my-site.com/checkout/complete',
name: 'Payment Settled',
));Návštevník sa posiela v hlavičkách User-Agent a X-Forwarded-For. Zaznamenanie bez neho vyhodí RoundlyConsulting\Plausible\Exceptions\UniqueVisitorIdentifierRequired. API kľúč netreba: Events API je bez autentifikácie a balík tam váš kľúč nikdy nepošle — stačí PLAUSIBLE_URL.
CaptureEventRequest
| Parameter | Predvolené | Účel |
|---|---|---|
site | — | Web (doména), ku ktorému udalosť patrí. Povinné. |
url | — | URL stránky, na ktorej udalosť nastala. Povinné. |
name | pageview | Názov udalosti — pageview alebo ľubovoľný názov vlastného cieľa. |
referrer | null | URL odkazujúcej stránky, posiela sa len ak je nastavená. |
props | [] | Vlastné vlastnosti udalosti, posielajú sa len ak nie sú prázdne. |
revenue | null | DTO Revenue — pozri Tržby. |
interactive | true | Hodnota false odošle udalosť ako neinteraktívnu. |
Zobrazenia stránok a fronta
- pageview($url, $site = null) — zaznamená zobrazenie stránky a použije nakonfigurovaný predvolený web; ak chýba oboje, vyhodí MissingConfiguration.
- event($name, url:, props:, revenue:, site:, referrer:, interactive:) — obdoba pageview() pre vlastné udalosti: rovnako použije predvolený web a vráti Response.
- capture($request) — odošle synchrónne a vráti Response.
- captureQueued($request) — odošle do fronty RoundlyConsulting\Plausible\Jobs\CaptureEventJob s návštevníkom uloženým ako obyčajné reťazce, takže úloha zostane serializovateľná a odpoveď sa nikdy nezdrží.
Hromadné zaznamenanie
Pri hromadných alebo historických importoch pošlite veľa udalostí naraz — synchrónne alebo ako jednu dávku úloh vo fronte:
$events = [
CaptureEventRequest::make(site: 'my-site.com', url: 'https://my-site.com/a', name: 'import'),
CaptureEventRequest::make(site: 'my-site.com', url: 'https://my-site.com/b', name: 'import'),
];
Plausible::events()->fromRequest(request())->captureMany($events); // list<Response>
$batch = Plausible::events()->fromRequest(request())->captureManyQueued($events); // Illuminate\Bus\BatchcaptureMany() odošle udalosti postupne a vráti odpovede v rovnakom poradí. captureManyQueued() odošle jednu CaptureEventJob na udalosť ako Laravel job batch s názvom plausible:capture, takže aplikácia potrebuje nastavené dávkovanie úloh (tabuľku job_batches).
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.