こちらのが、いくらかまし、、、
少し、理解が進んだ記事を書いた。2009/09/30
下の記事は、2009/09/11のもの。
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 にデータを飛ばしながら、自分のところに、同じデータを飛ばすことも可能だが、二次利用?はたぶん規則に触れるような気がする。