Я настраиваю лак на своем сервере и изучаю VCL (который, на мой взгляд, очень полезен), и у меня есть следующее в vcl_recv
Пишу, но не понимаю, зачем это нужно.
if (req.url ~ “\?(utm_(campaign|medium|source|term)|adParams|client|cx|eid|fbid|feed|ref(id|src)?|v(er|iew))=”) {
set req.url = regsub(req.url, “\?.*$”, “”);
}
Это убирает отслеживание Google Analytics из запроса GIF в Google.
Почему это было необходимо для исключения запросов, поступающих на мой сервер, и не разрушило бы это отслеживание и аналитику моих клиентов?
Это не удаляет файлы cookie, а, скорее, повторно использует множество расширений / параметров uri (например, ver = somethingsomething). Лично я считаю, что если вы не написали это намеренно, то не используйте это.
Что касается вопроса о том, какое влияние на аналитику окажет удаление файлов cookie google __utm *. Вы ссылаетесь на какой-то внешний js-скрипт, клиент получает его, и Google выдает Set-Cookie, соответствующий вашему домену. Следующий запрос, который пользователь делает ВАМ, содержит этот файл cookie и, таким образом, не позволяет вам использовать независимый от пользователя кеш. Таким образом, вы удаляете этот файл cookie на СВОЕЙ стороне. На Google Analytics это не влияет, так как google .js, который вы обслуживаете, не может читать заголовки на стороне сервера, а скорее на стороне клиента, поэтому, другими словами, они не работают на вашем сайте. Аналитика получила информацию, когда клиент запросил файл .js. Очевидно, вам не следует создавать файлы cookie с конфликтующими именами, поскольку это может вызвать проблемы.
Я в основном использую пример на varnish-cache.org:
if (req.http.Cookie) {
set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1"); # removes all cookies named __utm? (utma, utmb...) - tracking thing
if (req.http.Cookie == "") {
remove req.http.Cookie;
}
}