sinnbeck / laravel-analytics

Analytics for the Laravel framework.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Laravel Analytics

Latest Stable Version

Easily collect page view analytics with a beautifully simple to use dashboard.

Laravel Analytics Dashboard

Installation

Install the package:

composer require andreaselia/analytics

Publish the config file and assets:

php artisan vendor:publish --provider="AndreasElia\Analytics\AnalyticsServiceProvider"

Don't forget to run the migrations:

php artisan migrate

You can add the page view middleware to a specific route group, e.g. web.php like so:

Route::middleware('analytics')->group(function () {
    // ...
});

Or add the page view to all middlewares/on an application level like so:

// app/Http/Kernel.php

protected $middleware = [
    // ...
    \AndreasElia\Analytics\Http\Middleware\Analytics::class,
];

Configuration

Changing how session_id is determined

By default, session_id in the page_views table is filled with the session ID of the current request. However, in certain scenarios (for example, for API and other requests not using cookies), the session is unavailable.

In these cases, you can create a custom session ID provider: create a class that implements the AndreasElia\Analytics\Contracts\SessionProvider interface and set its name as the provider option in the analytics.php config file. The configured class object is resolved from the container, therefore, dependency injection can be used via the __constructor.

One example of a custom way to generate the session ID in cookie-less environment is to hash IP address + User Agent + some other headers from the request.

Feel free to take a look at AndreasElia\Analytics\RequestSessionProvider for an example of implementing the SessionProvider interface.

Contributing

You're more than welcome to submit a pull request, or if you're not feeling up to it - create an issue so someone else can pick it up.

About

Analytics for the Laravel framework.

License:MIT License


Languages

Language:PHP 56.7%Language:Blade 43.3%