Sunday, September 27, 2009

blog引っ越し

新しいアドレスに引っ越してます。
Friday, September 11, 2009

アクセス解析全般

本を読みながら、自分の感覚も混ぜながら。

アクセスログ解析

Thursday, September 10, 2009

ga.js の勉強

ga.jsについて

ほとんど、分かってないけど、書く。

1. googleにhostされているga.jsをファイルをgetする
2. 展開されたga.jsは、windowオブジェクトに、_gatプロパティをくっつける
3. _gat.getTracker("UA-xxx-y")で、APIが公開されているオブジェクトを生成する。
4. それを使う。 TrackpageView()で、デ-タ送信(Gif-request)を行う。

送られるデ-タは、

http://code.google.com/intl/ja/apis/analytics/docs/tracking/gaTrackingTroubleshooting.html
にある。


cookieのデ-タなどは、utmccで送られる。utmccは新規campaign、utmcrは継続しているcampaign?
後は、e-commerce用のデ-タを送るものもある。Gif-requesteがcacheされないように個別のIDも振られている。

ga.jsのなか

難しい文法は使われてない(prototype, applyとか)ので、根気されあればと思うけど、一字の変数が大量に並んでいるので、苦しい。

大まかな概略は、 _gatオブジェクトが定義されて、
Fという変数に_gatは代入され、そこでさらに、いろいろなプロパティが追加される。

そのプロパティには、いろいろなconstructor関数が定義されており、
それらが、new F.hogeみたいな形で、いろんなオブジェクトが追加されている。

最初に呼ばれるのは、F._getTrackerで、 new F.qc(g, l)がreturnされる。
この返却値(pageTracker変数とする)には、いろいろなAPI(underscoreで始まるもの)が定義されており、それをユ-ザは使う。


元々の_gatオブジェクトで、定義された値なども、pageTrackerから引き出すようになっている。
API?でなくとも引き出せる。 検索エンジンの一覧などは、pageTracker.xd().Laなどで引き出せる。でも、APIから操作しないと想定しないエラ-になりそう。xd()で返されるオブジェクトには、windowオブジェクトへの参照もある。


InitDataは、デ-タを整形を整形するところ?

F.pc.l.Vで、デ-タ送信をしてる。google にデ-タを飛ばしながら、自分のところに、同じデ-タを飛ばすことも可能だが、二次利用?はたぶん規則に触れるような気がする。

Wednesday, September 9, 2009

Google Analytics の Cookieについて。(理解度6割)

ここを読んだ方が正確だし、理解も早い

FirstClass Cookieのみを読み込む。ThirdPatyのものは使わない

serverは、自分のdomainに対して設定されたcookieとしか読めない。 ただ、通常のhttp通信だけでなく、画像の配信でもやりとりができる。それを使って画像を配信するサ-バ-とその画像を受け取ってるbrowserと通信する方式がサ-ドパ-ティcookie。 これを使えば、横断的に情報を集められる。

google analyticsでは、thirdparty cookieは使わない。ユ-ザのプライバシ-に配慮しているという方針。だが、すごい情報を集めてるとは思う。

 

使われるcookieの種類

utma, utmb, utmc, utmv, utmz, utmxの5つがある。utmxはweb optimiser用。残りの4つについて書く。<domain….>の<>の中の名前は、僕が勝手につけた。

utma(visitor identifier cookie)

値 <domain-hash><unique-visitor-id><birth-time><previos-time><current-time><num-of-visits>

domain-hashは、domain名をhashにしたもの。virtualPageviewを使った場合は、1とかになるunique-visitor-idが、新規訪問者とされた場合に、一意に割り当てられる。残り3つ(previous-time, current-time, num-of-visits)は、セッション毎に値が更新される。

utmb, utmc(session management cookie)

値(utmb) <domain-hash><pv of this session>10<birth-time>値(utmc) <domain-hash>

utmc, utmbの二つで、googleがそうだと決めたセッション(visit)を管理する。bは30分, cはブラウザが生きてる間、そのcookieは維持される。また、新規リクエストの際に、相棒がいないと、二人共、新規に生まれ変わり、新しいsession(visit)となる。二人ともいなければ、当然、新しいsession(visit)。

* 重複説明

ブラウザと閉じるか、30分間なにもrequestが発せられないと、セッションは終わる。utmbは30分間を消滅し、utmcはブラウザが閉じられると消滅する。どちらかがなければ、新しいセッションとなり、共に作り直される。pv of this session、これでpvを計っているのかな?

<birth-time>は、request毎にrefreshされる。その時に、古いものと新しいものの時間の差を滞在時間にする?値にある、10の数字は、outbound linkがclickされるのを計っているらしい。 今のところ関係ない数字。

utmv(Visitor Segmentaion cookie)

値: apiにある、_gat.getTracker("UA-xxx-y")._useVar("XXXX")の、XXXXになる。userにnameを付け, レポ-トで、ユ-ザ>ユ-ザ定義で現れる名前になるもの。sessionをまたいで生きる。

* 例

login時にsetVarで名前を設定する。その後、そのuserがrevisitしたとしても、Utmvの値は変わらない。なので、レポ-ト側で見ても、同じ名前で定義されたユ-ザである。2年間の命。requestが有る度に二年間の命にrefreshされる。

* おまけ

utmv の vは VisitorのV?それとも、setVarのV?

utmz (Campaign tracking cookie)

値 :

<domain-hash><birth-time><num of session><num of campaign session>

+

{

- utmcsr source   流入経路 (google.com, yahoo.co.jp, refferal-site.comとか)

- utmccn campaign 種類 ( referral, direct, organic, )

- utmcmd medium 流入媒体 (organic, none, )

- utmctr keyword    キ-ワ-ド (hoge%20bar,)

- utmcct ad_content  広告を特定するもの( pathとかになる?)

}

セッション事に産まれる。更新される。utmc??の??部分の値は、referalのquery部分の値からsetされる。apiをadwordsのキャンペ-ンでなくとも、実行される。

*留保1

ここを読むに、

(num-of-session) - (num-of-campaign-session) = direct visits

だと思うのだが、

実際のcookieを自分のbrowserでのぞくと、num-of-session < num-of-campaign-session の場合がある。何か間違って理解しているみたい。


*留保2
最初のutmzが作られてない時,directでのアクセスがあると、utmzは作られないのか?その後、campaignを開始して流入してきた場合、それまでのセッション数が、num-of-sessionに反映されるのか。

Tuesday, September 8, 2009

google analytics 複数ドメイン間でのデ-タ共有

主に、cross-domain(ドメイン名が違う場合,hoge.comとbar.com)と、multi-sub-domain(a.hoge.com, b.hoge.comなどという場合)

の二つがconversion universityで解説されている。

1.cross-domainの場合

   まずは、共有するサイトのどちらにも,埋め込むコ-ドを少し変える。

  1. setDomainName("hoge")で、共通のドメイン名を付ける
  2. setAllowLinker(true)で、デ-タを引き継ぎながらリンクをさせる許可をさせ、 _link(), _linkByPost()で実際に画面遷移をさせる

2. sub-domainの場合

  1. cross-domainの時にように、_setDomainName(“.hoge.com”")と共通名を付ける。 ". + 親ドメイン名" の形のドメイン名がわかりやす
  2. プロファイルを複数用意する(メイン + サブドメインに対応したもの)
    メインのプロファイルをコピ-して、サブドメイン用のものを作り、filterで分ける
    * requestURIがsub-domain間で重複する問題に対しては、filterでoutputにdomain名も含めるように変える。

* multi-domain + sub-domainの場合

_setAllowLink(true)

_setAllowHash(false)

とする。

Monday, September 7, 2009

google analytics how many sessions a user spent

visitorを元にした訪問回数の出し方
google analyticsでは、ユ-ザ- > リピ-ト訪問数 > リピ-トセッション数で、繰り返されたセッションの数というものが出る。 

これはvisitor(ユ-ザ-)が今までに何回サイトを訪れたか? を示す数値になっている。

しかし、この数値(グラフ付きで出る)は訪問回数別になっていない。具体的に言うと、新しいセッションが始まるたびに、記録された訪問回数がカウントされ集計された数字になっている。なので、ユニ-クユ-ザ-数とセッションが一回のユ-ザ-数が、ユニ-クユ-ザ-全体の数値になっている。
なぜ、このような出し方をしているのか、僕にはよく分からない。ユ-ザ-毎の訪問回数にした方が、ユ-ザ-のアクセスをイメ-ジしやすいと思う。ついでに言うと、9回以上の数値については、9-14, 15-25, 26-50, 51-100という範囲でまとめられている。これも、僕にはよくわからない表示の仕方に見える(アクセスの多いサイトだとこういう表示が便利にはなるのだろう)
とにかく、表題の通り、visitorを元にした訪問回数という形で、一旦は数値として出したい。

そこで、APIを利用して数字をだしてみた。 http://code.google.com/intl/ja/apis/analytics/docs/gdata/gdataExplorer.html (ここで試行錯誤するのが勉強になると思う。)
dimentions : date(日付), countOfVisits(何回目の訪問か)
metrics : visits(セッション数)
という形で、デ-タを引っ張ってみた。
dimentionとmetricsは、”Dimention当たりのmetricsの数値を見る” というイメ-ジ。
あるサイトでは、SQLのgroup_byがdimentionで、selectがmetricsという例えをしていた。metricsをdimenstionで集計するという感じ。
なぜか、Visitsの数が増えているcountOfVisitsがある。理由はよくわからない。デ-タの取得時にエラ-があったのか、一度analyticsのfilterをいじったので、デ-タが抜け落ちたのか、それとも僕の数値の見方に勘違いがあるのか? わからないけど、とりあえず、出した。
最大で、99回目のセッションがあるけど、当然これは僕自身のアクセス(僕だけで、10近くのユニ-クユ-ザをもってしまっている、chromeで5, firefoxで3, IEで2くらいだったか) なので、実際のアクセスは25くらいになる。
右端のdiff が 訪問回数(左端)によるユ-ザ分布になる(はず)。真ん中は計算過程の数字になる。
デ-タが少ないので、意味のある情報にはなってない。
ga:countOfVisits?,ga:visits?,diff

1,35,18

2,17,5

3,12,3

4,9,1

5,8,0

6,8,3

7,5,1

8,4,0

9,4,0

10,4,1

11,3,0

12,3,0

13,3,0

14,3,0

15,3,1

16,2,0

17,2,-3

18,5,2

19,3,1

20,2,0

21,2,0

22,2,0

23,2,0

24,2,0

25,2,0

26,2,0

27,2,0

28,2,-1

29,3,1

30,2,0

31,2,0

32,2,0

33,2,0

34,2,0

35,2,-2

36,4,2

37,2,0

38,2,0

39,2,-3

40,5,3

41,2,-3

42,5,0

43,5,2

44,3,2

45,1,0

46,1,0

47,1,0

48,1,0

49,1,0

50,1,0

51,1,0

52,1,0

53,1,0

54,1,-2

55,3,0

56,3,0

57,3,1

58,2,1

59,1,0

60,1,0

61,1,-1

62,2,1

63,1,0

64,1,0

65,1,0

66,1,0

67,1,0

93,1,0

94,1,0

95,1,0

96,1,0

97,1,0

98,1,0

99,1,-233

計,234,234

Sunday, September 6, 2009

google analytics の pageTracker._link

 

googlenのhelpに、cross domainの場合に、単一のprofileでデ-タを追う場合の方法があって、

http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=55503

この通りなんだけど、英語なので、すっ飛ばして読んで、

<a href=”www.hoge-next.com” onclick=”pageTracker._link(this.href);return false;”>hoge-next</a>

のところだけいれると、linkにfollowされない。

<a>タグは、クリックされると、onclickにある処理を実行して、次にhrefにある処理を実行する。

で、上記の記事 の1のcode(pageTracker._allowLink(true))をいれとかないと、pageTracker._linkは想定した通りの処理をしない。単に、undefinedが返るだけ。

想定された処理の場合は、linkが実行されるので、あとは実行されない。

そうでない場合は、何かがおかしいので、linkを実行させない(href属性を実行させない)ように、onclickにreturn falseを入れておく。そうすると、linkを実行されない。

なので、なんらかの問題が合った場合に、href属性を実行させたくない場合は、return falseをいれとくのがいい。

実行させたい場合は、 そのままにしとく。 return falseは書かないでおく。