@mattab opened this Issue on November 9th 2018 Member

For example when using Custom Dimensions of scope "Page" as a way to track categories of an article, often an article can belong to multiple categories. Therefore it would be useful to be able to track multiple values for a same dimension. eg. the ability to define an array of values instead of just a string.

@mattab commented on November 12th 2018 Member

It is interesting to note that it seems possible to track multiple values for a given dimension using the "old" Custom Variables feature.
(which we plan to deprecate in the next year in https://github.com/matomo-org/matomo/issues/11524 although we will still support the feature afterwards in the Marketplace)

-> With Custom variables one can define the same variable in different "index / slots" and the multiple values will be recorded. This is useful when for example tracking multiple categories for a given Page or Article. Then one could send the data with for example a Tracking API request of piwik.php?idsite=1&rec=1&cvar={"1":["Page Category","Sports"],"2":["Page Category","Regional"]}

In the report of custom variables one can see the multiple values eg.
custom vars

(It may be the first time we realise a given use case/feature is offered in Custom Variables but not in Custom Dimension?)

@DiegoPino commented on May 10th 2019

@mattab is this a planned feature for 4.x? We have some need for this. (Digital Object repositories with many metadata values per key we need to segment on, hierarchical membership of a page/Digital Object inside a collection, etc)

To allow many values, right now we are basically tracking the page view many times (once per value). Not a "big" issue if you are always segmenting by the dimension value and all your reports depend on that. But totally an issue when dealing with global stats.

I even thought of building a custom Plugin to deal with this (if can totally understandhow to make that plugin to track a view once only but generate many entries into the dimension and also integrate correctly with Segmentation, but then that seems less portable than depending on a core (or core provided plugin) feature.

Another option would be for us to go back to Variables (but they lack other needs). Is deprecating them still planned?

Thanks!

@mattab commented on May 12th 2019 Member

We currently don't plan to implement this feature.
Deprecating custom variables is still planned, but the plugin will stil be available on the Marketplace anyway so will keep working.

@benwarfield-usds commented on October 22nd 2019

Is there some way to request that the feature be considered? Or is it ruled out by some architectural choice in the design of the new plugin? It's a little rough to have to tell my users "half of you want something that requires the deprecated (and presumably unmaintained) plug-in, and half of you want the new features in the new plug-in."

@mattab commented on May 26th 2020 Member

"half of you want something that requires the deprecated (and presumably unmaintained) plug-in, and half of you want the new features in the new plug-in."

Afaik the "define multiple values" would be the only benefit of custom variable over custom dimensions. It's usually quite an edge case, so almost everyone would be better with custom dimensions.

@benwarfield-usds commented on May 27th 2020

Indeed, it is the only feature that matches that description, as far as I’m aware. I’m not sure that telling my colleagues that they’re an edge case will really improve their situation, though. 😁

@raDiesle commented on September 23rd 2020

As far as I understand, right now it is not supported to provide multiple values for Custom Dimensions and it is not planned right now, correct?

In my use case, I just want to track user roles to group data sets by it.
What would you recommend to resolve this?

@tsteur commented on September 23rd 2020 Member

Yes @raDiesle it's not planned yet unfortunately. Maybe custom variables would help meanwhile? It's otherwise hard to recommend anything as it might depend on the use case. would maybe using multiple dimensions help like userRole1, userRole2, etc? This might work if only segmenting is needed. Grouping by it be probably not possible though.

@raDiesle commented on September 24th 2020

Thanks for quick reply!
In my special case, right now it is sufficient to resolve by your suggested solution - so thanks for verification.
In the future, for my specific application, there will be user-groups & business-groups, where a user can have n-m combinations of a rule. The Cloud solution supports 25 custom dimensions, so maybe it will fit in.

@jayhoogle commented on March 1st 2021

This is a must-have for our analytics setup - we track impressions of content that can often have multiple authors, something we need to keep track of for the correct distribution of royalties. Without support for multiple values we have to manually search our CMS for the authors which is time-consuming and should be unnecessary. Are you planning to implement this feature?

@Chardonneaur commented on March 25th 2021

Hello,
I also have this need for a client of mine.
This is definitely the use case that @mattab described, one page can have multiple tags associated to it, for example, a blog post can be assigned to sport and to the taxonomy culture and to the taxonomy personality and to the taxonomy leisure.
1) If I set this as different custom dimensions, I will be stuck when creating a custom report as it can only go up to 3 dimensions. And nothing is saying that in one case it may go into slot 1, and in the other case into slot 2.
2) If I send all those values like this:
_paq.push(['setCustomDimension', 1, 'Culture']);
_paq.push(['setCustomDimension', 1, 'Sport']);
_paq.push(['setCustomDimension', 1, 'Transport']);
_paq.push(['trackPageView']);
it won't work neither as the last custom dimension is the only one which will be taken into consideration
3) If I use events like this:
_paq.push(['trackPageView']);
_paq.push(['trackEvent', 'Pageview', 'Competence', 'Culture']);
_paq.push(['trackEvent', 'Pageview', 'Competence', 'Sport']);
_paq.push(['trackEvent', 'Pageview', 'Competence', 'Transport']);
then the bounce rate will go to 0% which would be an unexpected behaviour.

-> Is there then really a need to discontinue the custom variables? Shouldn't it be renamed? Because as far as I know, this is also useful for custom search engine results.

Powered by GitHub Issue Mirror