The cv-chameleon\laravel-matomo-tracker Laravel package is a wrapper for the piwik\piwik-php-tracker. The Piwik php tracker allows serverside tracking.
- LaravelMatomoTracker Facade
- Queued tracking requests in Laravel queue
Feel free to suggest new features.
Via Composer
Require the cv-chameleon\laravel-matomo-tracker package in your composer.json and update your dependencies:
$ composer require cv-chameleon/laravel-matomo-trackerPublish the config file (optional)
Run php artisan vendor:publish to publish the config file if needed.
$ php artisan vendor:publishUpdate 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!
You can use the facade to track.
LaravelMatomoTracker::doTrackPageView('Page Title')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);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.
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 checkingPlease see the changelog for more information on what has changed recently.
If you discover any security related issues, please report in the issue tracker.
BSD-3-Clause. Please see the license file for more information.