alfrasc/laravel-matomo-tracker

A Laravel facade/wrapper for the matomo/matomo-php-tracker for server side Matomo tracking.

v1.0.0 2021-11-18 11:36 UTC

This package is auto-updated.

Last update: 2024-04-16 12:22:53 UTC


README

Latest Version on Packagist Total Downloads

About

The alfrasc\laravel-matomo-tracker Laravel package is a wrapper for the piwik\piwik-php-tracker. The Piwik php tracker allows serverside tracking.

Features

  • LaravelMatomoTracker Facade
  • Queued tracking requests in Laravel queue

Feel free to suggest new features.

Installation

Via Composer

Require the alfrasc\laravel-matomo-tracker package in your composer.json and update your dependencies:

$ composer require alfrasc/laravel-matomo-tracker

Publish the config file (optional)

Run php artisan vendor:publish to publish the config file if needed.

$ php artisan vendor:publish

Update your .env

Add these variables to your .env file and configure it to fit your environment.

[...]
MATOMO_URL="https://your.matomo-install.com"
MATOMO_SITE_ID=1
MATOMO_AUTH_TOKEN="00112233445566778899aabbccddeeff"
MATOMO_QUEUE="matomotracker"
MATOMO_QUEUE_CONNECTION="default"
[...]

That's it!

Usage

You can use the facade to track.

LaravelMatomoTracker::doTrackPageView('Page Title')

Tracking

Basic functionality

Please see the https://developer.matomo.org/api-reference/PHP-Piwik-Tracker page for basic method documentation.

Additionally there are some Methods to simplyfy the usage:

// instead of using 
LaravelMatomoTracker::doTrackAction($actionUrl, 'download') // or
LaravelMatomoTracker::doTrackAction($actionUrl, 'link')

// you can use this
LaravelMatomoTracker::doTrackDownload($actionUrl);
LaravelMatomoTracker::doTrackOutlink($actionUrl);

Queues

For queuing you can use these functions.

LaravelMatomoTracker::queuePageView(string $documentTitle)
LaravelMatomoTracker::queueEvent(string $category, string $action, $name = false, $value = false)
LaravelMatomoTracker::queueContentImpression(string $contentName, string $contentPiece = 'Unknown', $contentTarget = false)
LaravelMatomoTracker::queueContentInteraction(string $interaction, string $contentName, string $contentPiece = 'Unknown', $contentTarget = false)
LaravelMatomoTracker::queueSiteSearch(string $keyword, string $category = '',  $countResults = false)
LaravelMatomoTracker::queueGoal($idGoal, $revencue = 0.0)
LaravelMatomoTracker::queueDownload(string $actionUrl)
LaravelMatomoTracker::queueOutlink(string $actionUrl)
LaravelMatomoTracker::queueEcommerceCartUpdate(float $grandTotal)
LaravelMatomoTracker::queueEcommerceOrder(float $orderId, float $grandTotal, float $subTotal = 0.0, float $tax = 0.0, float $shipping = 0.0,  float $discount = 0.0)
LaravelMatomoTracker::queueBulkTrack()

For setting up queues, find the documentation on https://laravel.com/docs/6.x/queues.

Settings

Have a look in the https://developer.matomo.org/api-reference/PHP-Piwik-Tracker page for basic settings documentation.

Additionaly these settings are available:

LaravelMatomoTracker::setCustomDimension(int $id, string $value) // only applicable if the custom dimensions plugin is installed on the Matomo installation
LaravelMatomoTracker::setCustomDimensions([]) // array of custom dimension objects {id: <int>, value: <string>} // bulk insert of custom dimensions and basic type checking
LaravelMatomoTracker::setCustomVariables([]) // array of custom variable objects {id: <int>, name: <string>, value: <string>, scope: <string>} // bulk insert of custom variables and basic type checking

Change log

Please see the changelog for more information on what has changed recently.

Contributing

Please see contributing.md for details and a todolist.

Security

If you discover any security related issues, please email alexander.schmidhuber@gmail.com instead of using the issue tracker.

Credits

License

BSD-3-Clause. Please see the license file for more information.