Comments (4)
@monsieurtanuki your solution is smart and seems perfect :-)
With such an enthusiastic comment I was somehow forced to code it today 😉
from smooth-app.
@monsieurtanuki because it will take time to deploy this fix to every one, I am manually patching matomo to do the same.
from smooth-app.
Do not define user id (uid) for anonymous stats and instead use a random visitor id that change on every requests.
I didn't follow everything regarding matomo but it looks like we put the same value for conceptually different ID
s: the visitor ID (e.g. the device id) and the visitor user ID (e.g. the user email).
I assume that what is bothering you is the visitor ID, that uses one single bucket ('0
') for all non-consenting users on the server side.
It also look like you're not supposed to change the visitor ID.
A quick fix would be to compute a random letter, to store it locally, and to reuse it as the start of the visitor ID (right-padded with 0
s) when the user is not consenting. Dividing the world of non-consenting users in 26 evenly distributed regions.
@alexgarel What do you think of that?
Food for thoughts:
cf. matomo.dart
:
/// The [visitorId] should have a length of 16 characters otherwise an
/// [ArgumentError] will be thrown. This parameter corresponds with the
/// `_id` and should not be confused with the user id `uid`. See the
/// [Visitor] class for additional remarks. It is recommended to leave this
/// to `null` to use an automatically generated id.
cf. visitor.dart
:
/// The unique visitor ID, must be a 16 characters hexadecimal string.
///
/// Corresponds with `_id`.
///
/// Every unique visitor must be assigned a different ID and this ID must not
/// change after it is assigned. If this value is not set Matomo will still
/// track visits, but the unique visitors metric might be less accurate.
///
/// Think of this as a device ID; in case of website tracking (where Matomo
/// originates), this would be the cookie identifying the browser and not
/// necessarily a user (since a single browser might be used by multiple
/// users).
final String? id;
/// The [User ID](https://matomo.org/guide/reports/user-ids/) is any non-empty
/// unique string identifying the user (such as an email address or an
/// username).
///
/// Corresponds with `uid`.
final String? uid;
from smooth-app.
@monsieurtanuki your solution is smart and seems perfect :-)
from smooth-app.
Related Issues (20)
- Allow starring stores
- Add custom fields to the nutrition input form based on the category (eg for waters, chocolate, alcohol)
- Attempt getting Robotoff predictions during product addition
- Price-adding improvements
- [Enhancement] Improving background tasks HOT 1
- Upgrade macOS deployment target to 10.13
- Offer the possibility to search price location by node/way/relation ID
- Spellchecker on Product Name field HOT 6
- Add prices: displaying a "text recap" like an actual receipt, possibly with the total amount
- Add prices: add a `WillPopScope` effect ("you've changed data: are you sure you want to exit?")
- The app can't be launched on Linux
- Group the price related contribution items in a sub-menu HOT 1
- On the "Top Contributors" menu, add photos, edits, and added products
- Add support for showing producer provided and protected fields
- The list to add a nutrient is not fully scrollable HOT 1
- Do we check that if some prices are empty when adding several prices in bulk ? HOT 1
- Bad logos for "Signal a problem" in offline
- Empty chip in some cases on price page HOT 1
- Add a pathway to price per kilo HOT 3
- The photo list performs very badly HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smooth-app.