Google アナリティクスで使われるクッキーについて __utma / __utmb / __utmz

公式な仕様は無さそう。ソースを読むのは厳しい。整形しただけでは全然読めなかった。

クッキー 4種類

現行バージョンの ga.js が使用するクッキーは、主に4つ。

  • __utma ユーザを識別。2年有効。
  • __utmb 今回のセッションを識別。30分有効。
  • __utmz どこから来たか。リファラ。6ヶ月有効。
  • __utmv カスタム変数。2年有効。

__utma, __utmb, __utmz は、ga.js が実行されたときに、無かったら作られる。

__utmv は、_setCustomVar() で作られる。

有効期間は、最後に更新した時点からカウントする。4つとも、GAにデータが送られる度に更新される。

たとえば __utma なら、ユーザが2年間サイトに来なかったら消える。2年以内に再度アクセスすると、そこからまた2年の有効期間が与えられる。

他に、

がある。

__utma

アクセスしたユーザを識別するためのクッキー。6個の数字をドット(.)で連結した値が設定される。

__utma=123456789.123456789.1234567890.1234567890.1234567890.1

数字は、

  • ドメインのハッシュ値
  • ランダムなユニークID
  • タイムスタンプ(初回)
  • タイムスタンプ(前回)
  • タイムスタンプ(今回)
  • セッションカウント

を表す。タイムスタンプはUNIXタイム

「2個目(ランダム) + 3個目(初回タイムスタンプ)」が「ビジターID」になる。

__utmb

今回のセッションを識別するクッキー。4つの数字をドット(.)で連結した値が設定される。

__utmb=123456789.1.10.123456789

数字は、

  • ドメインのハッシュ値
  • アクセス回数
  • 外部リンクをクリックした回数を10からカウントダウン?
  • タイムスタンプ

を表す。

3番目のカウントダウンは、サイトから外に出て行くクリック(アウトバウンドリンク) でイベントを発生させる回数を制限しているらしい。(参考1, 参考2, 参考3)

__utmz

流入元を識別するクッキー。

__utmz=123456789.1234567890.1.1.utmcsr=流入元ドメイン|utmgclid=アドワーズ用ID|utmccn=キャンペーン|utmcmd=メディア|utmccs=広告の種類|utmctr=キーワード

冒頭の数字は、

  • ドメインのハッシュ値
  • タイムスタンプ
  • セッションカウント
  • キャンペーンカウント

を表す。

セッションカウントはセッションが作成された回数。__utma の末尾とだいたい一致する。が、たまに違うこともある。なんで? → 期間が2年と半年で違うからか。__utma よりも短期の活動を記録している。

キャンペーンカウントは異なるキャンペーンからアクセスした回数。

後半は、

  • utmcsr (utm_source) ソース: ドメイン名、google、(direct)
  • utmccn (utm_campaign) キャンペーン: (organic)、(referral)、...
  • utmcmd (utm_medium) メディア: organic、referral、...
  • utmcct (utm_content) 広告の種類: リファラのパス
  • utmctr (utm_term) キーワード: 検索エンジンのキーワード
  • utmgclid アドワーズID

括弧内はクエリパラメータの名前。値を上書きできる。

キャンペーンは、別のリンクからアクセスすると書き換わる。

通常、キャンペーン Cookie はユーザーが検索エンジン、参照元ウェブサイト、またはキャンペーンのタグが付いた URL を通じてサイトにアクセスするたびに更新されます。ただし、ノーリファラーの場合は、こうしたキャンペーン ソースの情報が更新されることはありません。

http://support.google.com/analytics/answer/2731565?hl=ja

ソース

整形は簡単。

この状態で、しばらく頑張って読んでみたけど、難しかった。

(追記) 日本語コメント付き ga.js ソース解説 を作成されてる方が。すごすぎる。。