cv-chameleon/laravel-matomo-tracker

There is no license information available for the latest version (1.0.0) of this package.

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

1.0.0 2023-09-27 07:16 UTC

This package is auto-updated.

Last update: 2024-04-08 13:40:51 UTC


README

Latest Version on Packagist Total Downloads

About

The cv-chameleon\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 cv-chameleon\laravel-matomo-tracker package in your composer.json and update your dependencies:

$ composer require cv-chameleon/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.

Security

If you discover any security related issues, please report in the issue tracker.

License

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