Over the last decade, subscriptions have become very popular not only in software but also many ecommerce stores. Most subscription payment gateways, ecommerce platforms, and subscription reporting services already give you splendid insights into all your important subscription and churn metrics. What they lack though, is what actions your customers took before signing up to a subscription and before churning.

While Matomo does not yet have a dedicated subscription tracking feature, it is already possible to get insights into your SaaS with Matomo using events tracking.

Tracking subscription information in Matomo

Some subscription events you might want to start tracking are:

  • Subscription sign ups
  • Subscription cancellation
  • Subscription cancellation effective
  • Subscription resubscribe
  • Subscription on hold
  • Subscription upgrade
  • Subscription downgrade

Assuming you are using our JavaScript tracker, you can track this kind of information like this:

_paq.push(['trackEvent', var category = 'Subscription', var action = 'signup', var name = subscriptionId, var signupRevenue = 50]);

Similarly you can track other events by setting a different value for action like ‘cancellation’, ‘on hold’, ‘resubscribe’, etc.

Customising your tracking

With event tracking, your options are pretty much endless. Are you interested in the subscription period? Simply set the subscription period (for example to “month” or “year”) as the event name or include it in the category name:

_paq.push(['trackEvent', var category = 'Subscription', var action = 'signup', var name = subscriptionId, var signupRevenue = 50]);

Want to track which subscription products were purchased specifically? You can track it like this:

_paq.push(['trackEvent', var category = 'SubscriptionProduct', var action = 'signup', var name = 'My Subscription Product', var signupRevenue = 50]);

Tracking renewals

Renewals are typically not user specific actions and are instead triggered by your subscription billing service. As such, it is hard to track this information using the JavaScript tracker. If you’re interested in this information you can use one of our Tracking SDKs (eg for PHP, Java, Ruby, …) to track this server side, for example, when your billing software triggers a webhook.

The Matomo PHP Tracker lets you track an event like this:

$matomoTracker->doTrackEvent($category = 'Subscription', $action = 'renewal', $name = $subscriptionId, $revenue = 49.99);

Understanding your subscription business to get actionable insights

First of all, you can view overall subscription metrics by going to “Behaviour => Events” in the reporting menu on the left. You will find various insights for the selected period in this report. For example, the overall and average newly generated subscription revenue, the lost revenue value, or the number of cancelled subscriptions.

Subscriptions over time

As always, numbers are only useful if you see them in relation to each other. Otherwise you won’t know whether your subscription sign ups are currently increasing or decreasing. Want to know how well you generate new subscription sign ups over time? Simply hover a row and click on the row evolution icon:

A new screen will appear showing you how your subscription business did over time:

If you are currently viewing the report for a certain day, check out the graphs (that look a bit like heartbeat lines) to see which weekdays generate more sales than others. It may be hard to detect any trends (as the above image shows), but by changing the period, you can suddenly see whether it’s increasingly consistently, or decreasing. Compare the above image to the one below to see the difference.

To see a trend more easily, simply click in the left corner of the graph on the “Period” icon and switch over to weekly or monthly to get a better overview over time.


Matomo even lets you compare how sign ups behave in comparison to cancellations when you click on the “Pick a row to compare” button at the bottom of the row evolution popover.

Analysing user behaviour to understand what leads to sign ups, cancellations, and more

In the visits log, Matomo lets you see exactly which steps a user took before signing up or cancelling. You can easily get an overview of a specific group of visitors simply by hovering over a row in the events report and clicking on the “Segmented visitor log” icon.

This will show you all the details of visitors that performed this specific action. In this case, those who cancelled a subscription. The visits log will look like this for each visitor that cancelled a subscription:

An example of how you can use this feature to draw actionable conclusions. Let’s say you find out the user searched for a specific feature (“how to track subscriptions”), but there was no search result, so the customer cancelled the subscription. As a result you ended up losing 49.99 EUR in recurring revenue.

If you had this feature, you could have figured out the trick was to write content about it, or rename some of the words to help the user find it more easily (as they may use different words than you do to describe the same thing).

This feature could help save you in the long run. If you don’t have it yet, you might want to think about whether this is something for your roadmap.

Another way to better understand what leads customers to cancel their subscription is to open the visitor profile and see all previous and following visits – including every single action that specific visitor took.

Things you want to look out for or find while learning more about your users

  • What did they search for before cancelling?
  • From which website did they come from before signing up or cancelling?
  • What pages did users visit before upgrading or downgrading?
  • Are users using specific devices or from specific countries more likely to churn?
  • What was the LTV of the churning visitors? (you find this information in the visitor profile for example)
  • And much more

Advanced analysis

We have only covered a tiny part of the insights you can get from Matomo. In this guide we will only cover two more topics. Another topic you might be interested in is Custom alerts.These automatically notify you when you sell less subscriptions or when more customers cancel than usual.


One of the most powerful features in Matomo is the ability to segment data. Segmenting lets you view any report in Matomo for a subset of your visitors. For example, it lets you view which devices users signed up or cancelled a subscription from; where they are located; how they came to your website; what pages they viewed; and much more. You can learn all about segmenting in our user guide. A segment could for example look like this:

Custom reports

While Matomo comes with a powerful set of reports, there are often insights you may need specifically suited for you. This is where custom reports come into place. It is included in our Business Cloud hosted package, and On-Premise users can purchase it as a premium feature.

Remember in the visits log example before where we noticed that a user searched for a specific keyword before cancelling? You might also be interested in seeing a report that shows you which keyword leads to how many cancellations; to how much lost revenue; and the average lost revenue for each keyword. You might even want to know after how many days after their first visit they search for this keyword (and eventually leads to a churn).

Remember how we also showed the row evolution feature to see the number of subscription sign ups over time? If you want to save a click and have this evolution graph in a separate report, or even in your dashboard, then you can create such a report like this:

As your subscription business grows, the success of it can depend on how well you can implement tracking and analysis. By going through the steps above, such as, customising tracking, tracking renewals, and analysing user behaviour, you give your business a greater chance of success. By learning about your users, you’re also learning about what is and isn’t working for your business, and that’s crucial for growth.

Previous FAQ: Measure 100% of Ecommerce interactions using server-side tracking