matomo-org/matomo

Matomo may track a page view even though it was a different request when a plugin was disabled

tsteur opened this issue · 1 comments

Say you are using a plugin that sends tracking requests like Form Analytics.

If you disable this plugin, then the tracking code containing Form Analytics may still be cached in some browsers and these clients keep sending form tracking requests. Because the plugin is disabled, no action it would be found to handle this tracking request so it would fall back to tracking a page view even though it isn't a page view. This could result for example in actions being tracked with no action title but the URL where it happened. Of course it would result in more page views.

I suppose there be two ways to fix it:

  1. Have the JS tracker caching set so it always verifies the version the browser has cached is the latest version. Downside: Every user needs to make sure to get caching right plus it may result in additional requests to the server causing more server load plus things get slower in the client.
  2. Only track a page view when action_name tracking URL parameter is set. Downside: Breaking change if someone doesn't send this parameter. Would need to be solved as part of some major release.
  3. Custom request parameter: Require all custom tracking plugins to send an additional parameter and if no specific action was found, ignore that request if that parameter is present.

We went with option three, a new request parameter.

Documented in https://developer.matomo.org/api-reference/tracking-api we added a new HTTP Tracking parameter &ca=1. ca basically stands for custom action.