_setDomainName("auto" | "none" | [domain])

間違いがありましたら、連絡ください。公開でOKです。ありがとうです。@phar

二つのドメイン設定の話をしてる。


1. cookieの所属ドメイン(メイン?、サブ?)をどういう設定にするかの設定。
2. utmaの先頭値である、ドメインハッシュ値の設定。
*utmaのドメインハッシュは、複数cookieの場合のネームスペースの役割を追う。単数の場合には、不正?値のcheckの役割?

1は複雑性ももたらし、2は制約を与える。

設定パターンは、以下の3つのケース。
(*wwwだけは特例で良いようにしてくれる。サブドメインのwwwの事は忘れていい。)
あと、設定例そのものは googleにあるし、説明もある。日本語のものはなさそう。

1. 何も設定しない。(そのまま、trackPageviewにいく)
  • 内部で、_setDomainName("auto")とされる。
  • utmaの中の値: 
    • 表示しているペ-ジのドメイン(FQDN)を使ったハッシュ値を作る。ドメインチェックに使われる。例えば aaa.xyz.com とか xyx.comとか。
  • cookieの所属ドメイン:
    • "." +  表示してるページのドメイン(FQDN) ピリオド付き。 

2.pageTracker._setDomainName("none");
  • クロスドメイン(全く違うドメインの場合)用。
  • utmaの中の値 : 
    • 1となる。内部で、_setAllowHash(false)が使われる?
  • cookieの所属ドメイン:
    • 表示してるページのドメイン(FQDN) ピリオド無し!  ピリオド有りと複数共存できる。同じドメイン名で二つ???
    • サブドメイン(間)とは共用できないわけで、サブドメイン+ほかのドメインの場合は使ってはダメ。下の3を使う。

3(a). pageTracker._setDomainName(".example.com"); 

  • サブドメインも含める計測用
  • utmaの中の値:
    • .example.comでハッシュを作る。("."付き)
  • cookieの所属ドメイン
    • .example.com(サブドメインに居ても、メインドメインに居ても)
    • aaa.example.comと行った子供ドメインとも共存(でも使える)できるし、
    • bbb.aaa.example.comといった孫ドメインでもイケル。

3(b) pageTracker._setDomainName("example.com");

  • 同じくサブドメインも含める計測用(変形)
  • utmaの中の値:
    • example.comでハッシュ値を作る。(.exmaple.comとは違うハッシュ値なので注意)
  • cookieの所属ドメイン
    • .example.com (3(a)と同じ)。だが、所属ドメインが同じなので、(a),(b)の共存はありえない。
3を使って、クロスドメインでのcookie値を受け渡しをする際には、_setAllowHash(false)で、utmaを1にしておかないとアウト。

3のa,bの違いだけど、、、ほとんど同じ。

運用上のユルさ?でいくと、3(b)に軍配が上がるかも、、、


硬め、緩めは、utmaのなかの値でのドメインチェックに引っかかりやすいかどうか?

3(b)なら、メインドメインで、setDomainNameをつけ忘れてたページがあるという仮定をすると、、、
utmaのドメインハッシュ値が、example.com(setDomainNameなしのハッシュ計算はピリオドなし)で計算されるので、他のページで設定されたcookieのutmaと一致する。
 
3(a)の.exmaple.comでやっていると、utmaの所属ドメインはOKでも、中のハッシュ値で齟齬を来たし、cookieが再生成される。その貼り忘れページで、でまた正常計測ページにもどって齟齬をきたす。
ということが予想される、、、、


あとの問題は、ゴニョゴニョやるときに、cookieが二つあると、その二つを判別して読む方法がjavascriptに見当たらない点がある。
なぜか、document.cookieは、所属domainの情報を教えてくれない仕様のようだ、、、
書き込み時は当然指定する(デフォはFQDNだろう)

*FQDN fully qualified domain name。http://(.......)/ のカッコ内全部。

document.cookie.split(";") とやると、"__utma"と" __utma"と二つめは空白が付いてたんだけど、、、どっちがどっちとしていいの? サーバー側で読むしかないの?たぶん、そうっぽい。pathで分けてればもっと複雑になってく。

困った。

参考にしたサイト(あっちのサイトは、コメントが長いやつは勉強になる。向こうの質問文化は見習いたい)


Comments