LaravelPackages.net
Acme Inc.
Toggle sidebar
vincentbean/laravel-plausible

Laravel Plausible

69.525
25
2.4.0
About vincentbean/laravel-plausible

vincentbean/laravel-plausible is a Laravel package for laravel plausible. It currently has 25 GitHub stars and 69.525 downloads on Packagist (latest version 2.4.0). Install it with composer require vincentbean/laravel-plausible. Discover more Laravel packages by vincentbean or browse all Laravel packages to compare alternatives.

Last updated

Laravel Plausible

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.

Laravel 11:

// bootstrap/app.php
    return Application::configure(basePath: dirname(__DIR__))
        // ...
        ->withMiddleware(function (Middleware $middleware) {
            // Append this middleware to track globally
            $middleware->web(append: [\VincentBean\Plausible\Middleware\TrackPlausiblePageviews::class]);
        })
        // ...

Laravel 10 and earlier versions:

// 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.

Comments