static function getInstance($beacon)
 {
     // get the current visitor cookie
     if (!isset($_COOKIE[self::$cookieName])) {
         $vId = uniqid(self::$cookieName . '.');
         self::$firstVisit = true;
     } else {
         $vId = $_COOKIE[self::$cookieName];
         self::$firstVisit = false;
     }
     $beacon = json_decode($beacon, true);
     $instance = new self($beacon, $vId);
     if (self::$firstVisit) {
         // save the user cookie id
         setcookie(self::$cookieName, $vId, time() + self::$sessionDuration, '/', $instance->getDomainName());
     }
     return $instance;
 }