I'm tracking visitor without using cookies, so Piwik is using config_id to detect if an action is a new visit or not. config_id is computed in getConfigHash() which uses 16 parmeters to identify the visitor (os, ip, browser...)
Can we consider this a bug? A limitaion?
I propose not to use those parameters to compuse config_id, or at least, to have a new configurable option to enable this behaviour. For example "nonstrict_visitors_identification".
Attachment: Patch implementing the proposed new feature
Yes it's a good idea, we could have a mode that only tracks visitor uniqueness using IP address?
If you provide the patch we might consider it!
the alternative is to use setVisitorId if you have the info from another system.
Then there would be a new configuration parameter (for example visitor_recognition_heuristic_strictness) with three possible values:
Which should be the best approach to implement this feature?
The method recognizeTheVisitor() (in core/tracker/Visit.php), when no visitorId is found, tries to use configId to recognize the visitor. configId is calculated in getConfigHash().
We can modify getConfigHash() to use just IP, some parameteres or all parameters to compute hash, or we can modify recognizeTheVisitor() and add new cases, not just checking visitorId and/or configId.
Let me know what do you think and I'll happily implement it and provide a patch.
Yes I think your proposal is useful and a good idea,
and implementing in getConfigHash() sounds good!
Feature implemented and patch uploaded. Please review it, thanks.
BTW, current code is ignoring "resolution" to compute the config hash, although it is one of the function parameters. Is it on purpose or is it an error/bug?
@pregodon - we have moved to github. Could you please submit pull request for this one?
Current code ignores resolution, because some devices have bad habit of updating resolutions on every page view.
@matt - Sorry, I've never used Git. I just installed it on my linux server; cloned Piwik; made changes to source code... and now what? I'm trying "git push origin" but I'm getting a 403 error. Can you help me, please?
Please post your comments and suggestions in the new ticket enclosing this request: #3490