Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Matomo Bundle Laravel Package

bretrzaun/matomo-bundle

View on GitHub
Deep Wiki
Context7

webfactory Logo WebfactoryPiwikBundle

Run Tests

A Symfony Bundle that helps you to use the Matomo (formerly known as Piwik) Open Analytics Platform with your project.

It contains a Twig function that can insert the tracking code into your website. Plus, you can turn it off with a simple configuration switch so you don't track your dev environment.

Installation

composer require webfactory/piwik-bundle

And enable the bundle in app/AppKernel.php:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Webfactory\Bundle\PiwikBundle\WebfactoryPiwikBundle(),
    );
}

Usage

Somewhere in your views, right before the closing </body> tag, insert

{{ piwik_code() }}

This will add the appropriate Matomo tracking code as described in the API reference.

Configuration

You can configure the bundle in your config.yml. Full Example:

webfactory_piwik:
    # Required, no default. Must be set to the site id found in the Matomo control panel
    site_id: 1
    # Required, has default. Usually, you only want to include the tracking code in a production environment
    disabled: '%kernel.debug%'
    # Required. no default. Hostname and path to the Matomo host.
    piwik_host: my.piwik.hostname
    # Required, has default. Path to the tracking script on the host.
    tracker_path: "/js/"

Add calls to the JavaScript tracker API

The JavaScript tracking API provides a lot of methods for setting the page name, tracking search results, using custom variables and much more.

The generic piwik() function allows you to control the _paq variable and add additional API calls to it. For example, in your Twig template, you can write

    <!-- Somewhere in your HTML, not necessarily at the end -->
    {{ piwik("setDocumentTitle", document.title) }}
    {{ piwik("trackGoal", 1) }}

    <!-- Then, at the end: -->
    {{ piwik_code() }}
    </body>

Note that when you call trackSiteSearch, this will automatically disable the trackPageView call made by default. This is the recommended behaviour.

Credits, Copyright and License

This code was written by webfactory GmbH, Bonn, Germany. We're a software development agency with a focus on PHP (mostly Symfony). If you're a developer looking for new challenges, we'd like to hear from you!

Copyright 2012 – 2020 webfactory GmbH, Bonn. Code released under the MIT license.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
emuniq/filament-browser-notifications
syriable/filament-translator
hungnm28/livewire-form
wenprise/eloquent
crudly/encrypted
fadion/bouncy
cuci/prototurk-sdk
gos/pubsub-router-bundle
cuci/prototurk-sdk-symfony
clementtalleu/easyadmin-markdown-bundle
codeflextech/permission-manager
karnoweb/livewire-datepicker
sayedenam/sayed-dashboard
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui