Custom Reports lets you create custom reports where you choose which dimensions and metrics should be displayed, select a visualization of your choice, and optionally define a report filter. This gives you new insights into your data that is not possible with the Matomo (Piwik) standard reports.
Beside being able to build any custom report based on your business’s needs, Custom Reports also comes withs the advantage that these reports support more features than the standard Matomo reports. For example the ability to pivot any report, to view reports with three dimensions, and to filter report data more efficiently to avoid the need of many segments which can slow down your Matomo.
Custom Reports is a plugin for Matomo (Piwik) and is available for purchase on the Matomo Marketplace as a yearly subscription. While the subscription is active, you will receive all updates for this plugin.
The plugin is developed and maintained by InnoCraft, the company from the makers of Matomo (Piwik). At InnoCraft, talented and passionate product designers and engineers build and maintain the free and open source project Matomo. This ensures the highest quality and compatibility of all their plugins. As a result, popular Matomo features such as Segmentation, Row evolution, Scheduled reports, Pivoting, and others work out of the box.
This plugin is built and maintained by InnoCraft, the makers of Matomo (Piwik). This ensures that the plugin is well integrated, kept up to date and automatically tested whenever a change in Matomo core is made. By purchasing this plugin, you also support the developers of Matomo to maintain the free and open source analytics platform itself.
No, the Custom Reports plugin is built on top of Matomo (Piwik). To use it, you first need to install Matomo. Matomo requires PHP, a MySQL database and a webserver like Apache or Nginx. Learn more about Matomo. Alternatively, to take away the hassle of installing and maintaining your own Matomo, signup to our Matomo Cloud (formerly Piwik Cloud) service.
Matomo (Piwik) 3.2.0 or newer is required. You can also sign up to our Matomo Cloud (formerly Piwik Cloud) service.
Dimensions typically describe characteristics and is usually shown in the first column of a Matomo (Piwik) table report. When you configure a custom report, you can select up to three dimensions, such as “Browser”, “Country”, and “City”. When you for example select “Browser”, you will see a row for each browser that was tracked. The name of each browser will be shown in the first column, and metrics for each browser will be shown in the columns next to it.
Metrics are quantitative measurements. Or to say it differently, they are the numbers that are shown in the columns next to a dimension value. Typical examples are the number of “visits”, the “bounce rate”, “conversion rate” and the number of “pageviews”. For example, if you are improving the performance of your website, you may want to add “Avg. Generation Time” to your custom report. If you want to increase the traffic on your website or mobile app, you could include the number of “Visits” and the number of “Pageviews”. You can add as many metrics to your report as you wish. There is no limitation.
You can choose from over 200 dimensions and metrics.
Most of the dimensions and metrics you already know from Matomo (Piwik) are supported and even some new metrics are supported that aren’t available yet in the standard Matomo reports.
You will find a list of supported metrics and dimensions in the Glossary. Please note that the complete list of dimensions is not listed in the glossary, but the list of “Reports” is quite similar to what dimensions are available to use in Custom Reports.
Do you miss any dimension or metric? Just let us know, in most cases we will be able to add support for them.
You can currently select between these visualizations:
- Table: This will show the report data in a typical Matomo (Piwik) data table. As usual, you can switch the visualization also to a bar graph, pie chart, or cloud chart and view the insights for this report.
- Evolution: This graph shows the evolution for the selected metrics over time.
We are also planning to add many more visualizations such as maps, visitor log, and more. Please get in touch in case you are missing a specific visualization.
Yes, Custom Reports lets you slice and dice your analytics reports exactly how you need it to extract valuable insights from your visitors. You can apply any of the over 100 Matomo (Piwik) segments to custom reports.
BTW: When you configure a custom report, you can directly define a filter to view the report data only for a subset of your visitors. For example, you could select a “Country” dimension and choose to only view the report for visitors that used a mobile device.
Yes, when you add two or more dimensions you can pivot a custom report using the cog icon on the bottom left. Pivot tables let you quickly summarize your data and detect trends that you can’t determine otherwise.
Basically, it shows you the values of the first dimension in the first column, and the values of the second dimension in the first row. Then you can see in all the other columns the metric value for each combination of the dimension values.
Yes, the custom reports will be shown in the Matomo (Piwik) mobile app.
No, we are making a lot of effort to explain as much as possible directly within the UI and provide you with help resources like this FAQ. The first time you create a custom report it may take you a minute, after a while you will be able to create reports in just seconds.
You don’t need any developer skills in order to use Custom Reports.
Yes, a user with Super User access can make a report available to all websites with just one click. To do this, simply log in as a Super User and when you create or edit a report, choose “All Websites” in the website form field.
Yes, all reports can be fetched in different formats such as JSON, XML, CSV, HTML and more, so you can integrate your measured form data anywhere. Read more about the Matomo (Piwik) HTTP Reporting API and view the Reporting API Reference.
For performance reasons, when you view a Custom Report, Matomo (Piwik) will show up to 1000 rows in the first level of a report, and 500 rows for each subtable. All other rows are grouped into a row having the label “Others”.
If you wish to archive all the data, or simply archive more (or less) than the current rows limit, you can override these values in the configuration file config/config.ini.php. For example, to limit all table to 5000 entries, add the following in config/config.ini.php:
[CustomReports] datatable_archiving_maximum_rows_custom_reports = 5000 datatable_archiving_maximum_rows_subtable_custom_reports = 5000
Note: You can also change the number of rows for Matomo standard reports.
When you create a new custom report, the data for past dates won’t be available by default and you will only see reports starting from that day you create the report. However, if you want to still get the data for reports in the past, you can
- Invalidate the historical data, and
- then re-process the reports for all your websites. If you have setup auto-archiving then the command to re-process the reports will automatically run within the next hour or so. Alternatively you can manually re-process the reports. Depending on the amount of data in your Matomo (Piwik), this command may take a while to run and you may want to adjust the amount of days (and seconds) you want to reprocess.
Custom Reports and Custom Reports tracker are released under the InnoCraft EULA.
No, there is no data limit with the Custom Reports product. You can create an unlimited number of custom reports. Learn more about No data limit.
To see the total number of “Visits” or “Unique Visitors” for each website on any Custom Report, you can add the dimension “Measurable” as the first dimension of the Custom Report.
For example, if you have a report where you want have the dimension “Page URL” with the metrics “Visits” and “Unique Visitors”, you would create the report as follows:
You can then apply any filter or add other dimensions and metrics to your Custom Report.
Unfortunately it’s not possible yet to create a custom report with the “Events” metric. The best alternative you can use for now is the “Hits” metric. Hits will count all the actions that match.
- if your custom report has no filter applied, then “Hits” will count all actions.
- But if your custom report has a filter defined, and the filter will filter for events only (and exclude other types of actions) then “Hits” will count the Event actions only. In this case “Hits” is close to the “Events” metric.
What does this message mean: “No data is shown because this report only contains metrics that are not supported by the selected period”?
When you create a Custom Report which includes metrics such as Unique Visitors or Unique Users, you may see the following message in your custom report:
No data is shown because this report only contains metrics that are not supported by the selected period (Unique visitors)
This message explains that the “Unique Visitors” metric (which is included in this custom report) cannot be processed by Matomo. Processing Unique metrics (such as unique visitors, unique users, etc.) will only work for Custom Reports when the selected period is Day. When you select any other period such as week, month, year, custom date range, then the custom report will not include the Unique metrics. (We are currently not able to process unique metric values for these periods because of performance reasons.)
To ensure that your custom report will always show some data, we suggest you also add the “Visits” metric to your custom report as well as the Unique Visitors or Unique users.
Custom Reports with the dimensions “Page URL” or “Page Title” calculates the “Bounce Rate” differently to the Pages report.
The “Pages” report calculates the bounce rate for that page as the number of visits that started on that page (Entry page) and left the website without any further actions. As we can see from the tooltip in the “Pages” report:
So for example if we have two visits as follow:
A visit that starts on /page1, goes to /page2, then exits.
A visit that starts on /page2 and immediately exits.
The “Pages” report will show the bounce rate for /page2 as 100% because all of the visits that started on that page immediately exited the website.
The “Custom Report” calculates the bounce rate for that page as the number of visits that had only a single page view in that visit including page views that started on other page URLs. As we can see in the bounce rate tooltip shown in the “Custom Report”:
So if we use the same example as above:
A visit that starts on /page1, goes to /page2, then exits.
A visit that starts on /page2 and immediately exits.
The “Custom Report” will show the bounce rate for /page2 as 50% because it will include the visit that navigated to /page2 from /page1.
At present it is not possible to change how the bounce rate is calculated in the Custom Reports, as Custom Reports do not have a metric for “Entry Visits”.
When creating a new Custom Report, Matomo will by default process the historical data for the newly created Custom Report for the last 6 months (This feature is only available since Matomo 4).
This setting can be changed in your
For example to have Matomo automatically process Custom Reports for the last 12 months for new Custom Reports, you can add the following to the
config.ini.php under the
rearchive_reports_in_past_last_n_months = 12
For Custom Reports that you wish to archive even further (For as far back as you'd like or as far back as you have RAW tracking data), you can achieve this without invalidating all of the Matomo reports.
This can be done by using the following Matomo console command (For example archiving all custom reports from June 2020 to today):
./console customreports:archive --date=2020-06-01,today
Additionally, we can add more parameters to the command to only archive specific ID Sites (For reports that may be available in all sites) or to archive only specific reports based on the Custom Report's ID:
./console customreports:archive --date=2020-06-01,today --idsites=X --idreport=Y
If you do need to invalidate report data for custom reports, you can use the following command to invalidate only the Custom Reports data:
./console core:invalidate-report-data --plugin=CustomReports --dates=2021-06-01,today --sites=X