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; }