When it comes to Custom Dimensions you are only limited by the data that your site can collect. This list is by no means comprehensive but it includes lots of potential dimensions that you could find useful. As every site is different, it isn’t possible to give an exact step-by-step guide for configuring them. However, each offers some ideas on how the data might be collected.

Visit Scope Dimensions

Membership Status

This dimension could be used alongside the User ID feature which tracks logged in users. In addition to tracking individual usernames, you can also collect data on your different membership bands. For example, if you offer: Free, Silver and Gold memberships, then you could track these values against a Membership Status custom dimension to see how the different levels affect user interaction with your site.

You could integrate this by including a JavaScript tracking snippet that is only output when a page is viewed by the relevant level. Alternatively you could collect this data from a Data Layer Variable. The best method is likely to depend on your membership system.


Whenever someone comments on your website you can set a Commenter Custom Dimension to keep track of the number of users that comment and what else they do on your site. This could be tracked by monitoring form submissions on your comment forms.

Social Sharer

If you feature social media sharing buttons on your site, then it can be helpful to track how often they are used with Event Tracking. However, it can also be useful to track how many different visitors are using them. To do this you could set up a custom dimension for whether a Visitor is a sharer that is triggered when they click on a sharing button via Matomo Tag Manager.


If you want to track prospective leads on your site, you could create a custom dimension attached to the Visit scope. Then, you can update the dimension via Matomo Tag Manager whenever a user completes a lead generation form on your site.

Demographic Dimensions

If users on your site fill out detailed demographic data in forms or a membership profile then you can also attach this data to custom dimensions for their visit. For example, you could find out a user’s gender on a dating site, their age on a student application or occupation for a B2B lead generation site. You can then sort your analytics data by these different dimensions to see if different demographic groups interact with your site in unique ways.

SaaS Status

If you sell a software as a service product, then simply knowing a user has an account might not be enough. You might also want to track their current subscription status against your analytics. For example, you might have users with any of the followings status on their account:

  • Trial User
  • Active User
  • Lifetime User
  • Enterprise User
  • Cancelled
  • Expired

Browsing your analytics by the appropriate dimensions will ensure that you are reviewing the engagement with features and content on your site in relation to the users that can actually access them.

The best way to configure this custom dimension is likely going to be by configuring your CRM system to push out the relevant information to the Data Layer so that it can be collected by Matomo Tag Manager and associated with a visit.

Persona / Interest

Lots of marketers create customer personas or avatars that are representative of their target audience. Often advertising campaigns are focused on speaking to these specific users and use cases. When this happens, you can set a custom URL parameter including the persona name so that it can be collected from the url.

Alternatively, you can get your users to segment themselves. For example, a real estate website might feature two prominent calls to action: one for buying and one for selling. Through Matomo Tag Manager you can trigger the relevant custom dimension to be set when the user clicks the button. This could work in many other situations too, for example:

  • Business Training Site – I want more traffic / I want more sales
  • Education Institutions – I’m a Student / I’m a Parent
  • Online Marketplace – Register to Buy / Register to Sell

Lifetime Value (LTV)

If your ecommerce platform or CRM keeps a record of a customers lifetime value (LTV) then you could push that information to the data layer and capture a range as a custom dimension. This will allow you to categorise your visitors in relation to how much they are worth to your business. If a certain segment of users is responsible for a large majority of your revenue, it might make sense to pay more attention to the content that is most engaging to your highest value audience.

Action Scope Dimensions

Page Author

By tracking the authors that create content for your site, you can discover who creates the most engaging content on your site. You would likely set up this variable so the data is collected from the Data Layer or a DOM Variable defined by your content management system.

Article Categories

If you want to analyse the topics that generate the most interest and engagement on your site, then you could set up a custom dimension that tracks Categories associated with your articles. Categories are usually set within your content management system and can often be seen on the published page. The easiest way to extract this data is likely to be by using Matomo Tag Manager with a Data Layer or DOM Variable.

Published Date

Is your content only relevant within a certain timeframe or is it timeless? You could also create a custom dimension to track the age of your articles. i.e. how long ago they were published. This can help you to get an idea of how long you can expect engagement from your posts and also discover the kinds of content that you should create if you want to get value from them for a long time.

Page Type

There are many different types of pages on the average site. For example, a single site could contain; product pages, blog posts, membership content, contact pages, and account pages. Each of these have a very different intent and are therefore likely to demonstrate different usage patterns.

Creating a dimension to define the different types of pages on your site allows you to review these different types of pages in isolation to get an accurate picture of how they perform against their intent. You would probably expect a higher form conversion rate on your contact pages than blog posts, and you might want visitors to spend more time on blog posts and membership content than they do on their account management pages.

To up page type tracking, you may need to use a mixture of collection methods. For example, if all of your account pages can be found under the /account/ URL path, then you can probably extract that data from the URL. However if you also want to track blog posts against membership content but there is no identifier in the URL, then you may want to make use of the data layer with Matomo Tag Manager to know when content is for members only.

Content Length

It is often said that longer content performs within search engines. However, that doesn’t mean that long-form content is the best match for your audience or in your specific market. If you track the length of content as a custom dimension then you can sort your pages by this dimension to see if longer content really is better.

One thing to consider in this context is that exact numbers aren’t necessarily useful. There likely won’t be a huge difference between content that is 480 vs 500 words long. However, there could be a big difference between content that is 500 vs 5,000 words long. For this reason, it makes sense to sort your content into buckets. For example: 0-500, 501-1001, 1000-2000

To set this up, you will likely need to use some custom code to check the length of the content and then filter it into the appropriate bucket.

content = 1000;

Weekday / Weekend / Business Hours

If you’re a B2B organisation then there may be a big difference in how people interact with your site on a weekday vs a weekend. You could create a custom dimension that stores whether an action occurred on a weekday or a weekend. Alternatively if you have a physical store, you might want to track whether your store is open or closed when an action occurs to see if your opening hours impact online activity.


If your product is weather dependent. Think, outdoor activities, selling umbrellas etc. Or even if it isn’t, weather can impact your customers and buying patterns. It can be useful to track the weather as dimension against your analytics to reveal how big of an influence it has on your business. This will likely require an integration that links your buyers location data with a weather API but could reveal some interesting data. As always make sure you update your privacy policies if you are sharing location data with third parties and where possible aim to use privacy preserving solutions.

Product Ratings

You could set up a custom dimension to track the current review ratings of products to see the impact it has on engagement and sales. In some cases you might find that including a product rating is beneficial even if it isn’t perfect, but the only way you will know for sure is with accurate data on what your potential customers are seeing. You can likely collect this data from your ecommerce platform through a Data Layer or DOM Variable in Matomo Tag Manager.

Stock Levels

Does your ecommerce platform feature inventory management. If so, you might want to keep track of when your products are “out of stock”. It shouldn’t be surprising to see a drop in conversions on product pages when you don’t actually have the stock to sell to people. This data should be simply to collect via Matomo Tag Manager through a Data Layer Variable set by your eCommerce platform or by scraping the DOM.

Product Brand

If you sell products from a variety of brands, it might be interesting to review brand trends in addition to the trends of specific products that you sell. If a certain brand seems to garner higher than average conversions with your audience, then you might want to consider stocking more of their products over another competitor.

Previous FAQ: What is the difference between Custom Dimensions and Custom Variables?