We’re currently implementing the https://pub.dev/packages/matomo_tracker Matomo SDK for flutter, and found a somewhat weird issue. When the same app user (with the same visitor ID, which we verified) submits sequential trackEvent
or trackPageViewWithName
or even trackDimensions
calls, with the same custom dimension ID but different values throughout the calls, matomo stores & shows all the different values submitted, instead of overwriting the previous visit-scoped dimension value with the new one.
Isn’t this the intended behaviour of an action-scoped custom dimension? According to https://matomo.org/faq/reporting-tools/understanding-custom-dimension-scope-and-structure/#:~:text=Custom%20Dimensions%20within%20Matomo%20can,action%2C%20or%20how%20many%20times., visit-scoped dimensions will always only reflect the most recently set value?
What happens in our case is that for example one custom (visit-scoped) dimension - in the visitor profile preview / matomo dashboard - lists all the submitted values as the comma-separated on the concerned visitor profile, and when hovering over it with a mouse, it reflects the amount of times it was submitted.
Thanks in advance for your help!
PS: I know Matomo does not offer VisitOR-scoped attributes, only visit-scoped attributes, specific to a visit of a specific user. Still your tutorials are IMHO a little confusing, as you provide instructional videos about “Personas” (https://www.youtube.com/watch?v=qRU1UQYAQXE). Personas are to my understanding definitely not visit-scoped, but user-scoped, even if anonymous. Suppose the following visitor behaviour:
- Visit 1: Visitor A sets the
language
- visit-scoped custom dimension to english - Visit 2: Visitor A returns and sets the
language
- visit-scoped custom dimension to german, and theage
- visit-scoped custom dimension to 25.
→ Visitor A’s profile should show language
→ german and age
→ 25. But it shows language
→ german, english and age
→ 25.
The fact that the custom dimensions are really visit-scoped make it so much harder to segment your customers reliably. E.g. if you want to count users of the german
language on your platform, you may have tons of users counted across different languages repetitively. Just imagine if 200 users switched from german to english or vice-versa; that will result in having 200 unique users per language, falsely doubling your actual amount of users.
Setting visit-scoped custom dimension values per visitor profile by their last set value, or at least a setting allowing to do so, would eliminate this problem. And talking about Personas, that’s IMHO opinion essential for accurately counted + segmented analytics, no?
Another example, say you want to segment for users with the language
set to german? That consequently could consider users who once set their language
to german, but where the language
has been set to english at a later visit? And if you focus on only the last visit, what if the user only set the language
at his second-last visit? Leaving no value for the language
for the last visit?