vincentbean/laravel-plausible

Laravel Plausible

2.1.2 2024-03-09 14:06 UTC

This package is auto-updated.

Last update: 2024-04-09 14:22:30 UTC


README

Tests Coverage Analysis Total downloads

This package provides a blade view with the script tag for plausible and a wrapper to easily send custom events to Plausible.

Installation

You can install the package via composer:

composer require vincentbean/laravel-plausible

You can publish the config file with:

php artisan vendor:publish --provider="VincentBean\Plausible\LaravelPlausibleServiceProvider" --tag="config"

Add the following to your env:

PLAUSIBLE_TRACKING_DOMAIN=DOMAIN_YOU_WANT_TO_TRACK
PLAUSIBLE_DOMAIN=OPTIONAL_IF_SELF_HOSTING

Usage

This package supports both client side and server side tracking.

Client Side Tracking

Include the component in your layout to add the plausible script, with optional tracking extensions.

<x-plausible::tracking />
or
<x-plausible::tracking extensions="hash, outbound-links, etc.." />

Plausible will be available on the window object for sending custom events via Javascript:

plausible('event')

Server Side Tracking

Track pageviews server side using middleware.

// app/Http/Kernel.php
    'web' => [
        // Add this middleware to the web group to track globally
        \VincentBean\Plausible\Middleware\TrackPlausiblePageviews::class,
    ],

Custom Events

You can trigger custom events on the server.

\VincentBean\Plausible\Events\PlausibleEvent::fire('custom event', ['country' => 'netherlands']);

If firing your event from a queued job or event listener, it might be necessary to pass on the user's ip and user-agent string which are used by Plausible to generate user session ID's.

\VincentBean\Plausible\Events\PlausibleEvent::fire('custom event', ['country' => 'netherlands'], headers: [
    'X-Forwarded-For' => $event->userIp,
    'user-agent' => $event->userAgent
]);

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.