How to use visit duration for triggering goals


I’m (ab)using custom variables and the client-side clock to fire Piwik goals like »Visit has been at least 5 minutes long«. Here’s how:

In the regular Piwik code at the bottom of your html page, just add following code, right before piwikTracker.trackPageView();

var currentTime = new Date();
var mystamp = currentTime.getTime();
var piwikStart;
if (piwikStart = piwikTracker.getCustomVariable(1)) {
  if ((mystamp - piwikStart[1]) > 300000 ) { piwikTracker.trackGoal(99); }
} else {
  piwikTracker.setCustomVariable( 1, "StartTime", ""+mystamp, "visit");

  • Where 300000 is the amount of milliseconds for this goal, in this case 5 minutes = 300 seconds = 300000 milliseconds
  • Where 99 is the id of your goal, which you have to configure before adding this code. It has to fire »manually«, of course. That’s what we do here.

(Matthieu Aubry) #2