Piwik tries to guess visitors and unique visitors using several elaborate techniques (User ID, first party UUID cookie, heuristics matching user settings, etc.). If several people use the same system or browser, Piwik might count them all as one visitor. If you want to track a user’s request across multiple devices (laptop, smartphone, tablet) then you must use the User ID feature.

If you cannot use User ID to track unique users, it is still possible to force Piwik to create a new visit for the current request whenever you require it. To create a new visit on demand you can use the &new_visit=1 parameter in the Tracking API (see Reference docs).

If you are using the Javascript tracker, you are also able to create new visits on demand. In your website in Javascript, whenever a user logs in the system (or whenever there is a need to create a new visit) you may write the following (before the trackPageView call):

_paq.push(['appendToTrackingUrl', 'new_visit=1']); // (1) forces a new visit 
_paq.push(["deleteCookies"]); // (2) deletes existing tracking cookies to start the new visit
// the two lines must be above the call to track* function
_paq.push(["trackPageView"]);

When the page loads, a new visit will be created in Piwik.

Notes:

  • this code should only be displayed once after the user has logged in; if you leave this code in all the page views, it would create a new visit for each page view and make your Piwik reports much less useful.
  • it is recommended to use User ID instead when possible.