クエリパラメータを特定の URL の Cookie として設定する方法があるかどうか教えてください。
現在、varnish と nginx で問題が発生しています。utm パラメータが削除され、GA に問題が発生しているからです。utm パラメータを削除するコードは、varnish キャッシュがいっぱいになるため削除できません。そこで、utm パラメータを取得して、nginx 構成から cookie として設定しようと考えています。
ご協力いただければ幸いです
どうもありがとう
答え1
Varnishがバックエンドから取得するURLからGoogleマーケティングURLパラメータを簡単に削除できます。ここで説明:
if (req.url ~ "(\?|&)(gclid|utm_[a-z]+)=") {
set req.url = regsuball(req.url, "(gclid|utm_[a-z]+)=[-_A-z0-9+()%.]+&?", "");
# remove trailing question mark and ampersand from URL
set req.url = regsub(req.url, "[?|&]+$", "");
}
これは、vcl_recv
Varnish 構成のルーチンで実装する必要があります。この方法では、表示される URL はブラウザ内でそのまま残ります (これは Google Analytics にとって重要です)。ただし、Varnish はこれらのパラメータなしで正規化された URL に基づいてリクエストし、キャッシュします (バックエンド、たとえば PHP の場合、これらのパラメータは破棄できます)。