Add Piwik tracking server-side code to all requests in Roundcube

2.0.0 2016-12-07 02:55 UTC


This plugin integrates Piwik analytics using the Piwik Tracking API into Roundcube. This plugin is very different from the Roundcube Webmail piwik analytics plugin which adds the client-side JavaScript Tracking Tag. The aim of this plugin is to add Piwik integration on the server-side in order to get around same-origin policy.

If your Piwik installation is on the same domain as your Roundcube installation and both are using the same protocol, then this plugin is probably not what you need as it will not add any significant value over the JavaScript Tracking Tag. Some example cases where this plugin shines:

  • Piwik at http://analytics.company.com, Roundcube at https://webmail.company.com
  • Piwik at http://analytics.company.com, Roundcube at http://webmail.othercompany.com


Install using Composer or manually download and install into plugins/piwik_tracking_api. Copy config.inc.php.dist to config.inc.php in the same directory and edit the file using the options shown below.

Add piwik_tracking_api to $config['plugins'] in your Roundcube config to enable the plugin.


Copy config.inc.php.dist to config.inc.php and edit the configuration variables. Set optional variables to null when unused.

piwik_tracking_api_url [string]

Set this to the URL of the Piwik installation. This URL must be accessible from the Roundcube installation.

piwik_tracking_api_site_id [int|array(string => int)]

Configures the Piwik site ID. The value of this variable can either be a single integer or an array containing multiple server names and IDs in cases where a single Roundcube installation serves multiple hosts.

To set multiple hosts, use the key/value pair of server name and Piwik website ID. For example:

$rcmail_config['piwik_tracking_api_site_id'] = array(
    'webmail.foo.com' => 42,
    'webmail.bar.com' => 13

piwik_tracking_api_track_user_id [boolean]

When enabled, the user's email address will be used to connect multiple devices and browsers. See Benefits of User ID at Piwik's User Guide for more information.

piwik_tracking_api_token_auth [string] (Optional)

Set to the token auth key of a Piwik user in order to take advantage of advanced tracking. Currently utilizes the following if provided:

  • Sets remote IP to that of the user instead of defaulting to the IP of the Roundcube installation.