public function track(Request $request)
{
$this->request = $request;
$referer = $this->request->query->get('utmr', '');
$path = $this->request->query->get('utmp', '');
$account = $this->request->query->get('utmac');
$userAgent = $this->request->server->get('HTTP_USER_AGENT', '');
$visitorId = $this->request->cookies->get($this->cookieName);
if (empty($visitorId)) {
$visitorId = $this->getVisitorId($this->getGuidHeader(), $account, $userAgent);
}
$url = $this->constructGifUrl($referer, $path, $account, $visitorId, $this->maskVisitorIp());
$this->browser->get($url, array('Accept-Language: ' . $this->request->server->get('HTTP_ACCEPT_LANGUAGE'), 'User-Agent: ' . $userAgent));
$cookie = new Cookie($this->cookieName, $visitorId, time() + $this->cookiePersistence, $this->cookiePath, $this->request->getHost());
$response = new Response();
$response->headers->add(array('Content-Type' => 'image/gif', 'Pragma' => 'no-cache'));
$response->setPrivate();
$response->mustRevalidate();
$response->setExpires(new \DateTime('-10 year'));
$response->setContent(join($this->gifData));
$response->headers->setCookie($cookie);
return $response;
}