Visit Scope Dimension not overriding value from previous visits

We’re currently implementing the 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,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” ( 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 the age - 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?