Interpreting your GA4 reports #25: Custom dimensions

Interpreting your GA4 reports #25: Custom dimensions

GA4 has a huge number of dimensions (see the list here) but these are still not going to include everything you need in order to make an analytics setup tailored to your org. A custom dimension is when you collect some information about an event, user or item (usually text) where you specify the values yourself.

How do I implement custom dimensions?

There are 2 steps in GA4:

  • Make sure that the value is being tracked in your analytics setup. Usually this would mean sending the value in a custom event parameter in Google Tag Manager.
  • Register that parameter as a custom dimension in the GA4 interface.

Note that there are some parameters GA4 collects by default with certain events which do not show as custom dimensions in the interface, you would just need to do step 2 for those.

Using custom dimensions

These can be used pretty much anywhere in GA4:

  • In standard reports as a breakdown
  • In explorations as a dimension you add just like any other
  • In segments
  • In the BigQuery export

Some ideas for custom dimensions

There is no limit to what you can do, below are just some ideas, each of which implies a range of different reports that you can then create.

  • Page type (eg. product, home, blog)
  • Page author
  • Page publication date (eg. 20250305)
  • Page age (eg. last week, last month, last quarter, older)
  • Page word count (eg. <500 words, 500-750 words, 750-1000 words, 1000+)
  • Page call to action
  • Page tags
  • Page category
  • Form category (eg. MQL, SQL, newsletter)
  • Outbound link type (eg. button, inline link, banner)
  • User membership level (eg. Bronze, Silver, Gold)
  • Is the user logged in? (Yes/No)

One caveat is that GA4 expects custom dimensions to have only a small number of unique values. Under 100 is best. You can pass a parameter with a lot more unique values (eg. something unique to each user) but if you register it as a dimension you may see more aggregated data in your reports. You can however still access that data in BigQuery directly if you need just from the parameter itself.

Got a question?

Contact us