Google Analyticsのカスタム変数はvisitor、session、pageのscopeを目的に合わせて選ぶ
公開日: 執筆:佐藤
Google Analyticsのカスタム変数は、残したい分類の寿命に合わせてscopeを選びます。利用者の分類を次回以降の訪問にも引き継ぐならvisitor、現在の訪問だけならsession、一つのページビューやイベントだけならpageです。
実装前に、name、value、使用するslot、scopeを表にしてください。コードでは、_setCustomVar()を_trackPageview()などの送信命令より前に置きます。scopeを決めずに空いているslotへ追加すると、別の変数を上書きし、レポートの分類を変えるおそれがあります。
visitor、session、pageは分類を残す期間が違う
Custom Variablesの機能説明では、カスタム変数をnameとvalueの組として定義し、page、session、visitorの三つのscopeを選べると説明しています。
| scope | 指定値 | 分類が付く範囲 | 向いている仮例 |
|---|---|---|---|
| visitor | 1 |
visitor Cookieが残る現在と将来のsession | 会員区分など、次回以降も使う分類 |
| session | 2 |
現在のsession | その訪問中にログインしたかなど、訪問ごとの分類 |
| page | 3 |
一つのpageview、event、transaction送信 | 閲覧したコンテンツの区分 |
visitor scopeは、個人を特定するための指定ではありません。Cookieが消去されるか、同じ変数が上書きされるまで、分類を現在と将来のsessionへ付ける指定です。
session scopeは、訪問が終わると消える分類に使います。たとえば、現在の訪問中にログインしたかを分ける場合です。次回の訪問にも残したい会員区分とは、目的が異なります。
page scopeは、一つの送信へ付ける分類です。ページの内容区分なら、nameをContent Section、valueをSupportなどにします。記事、商品、サポートといったページ単位の分類を、visitor全体の属性として残さないためです。
Multiple Custom Variablesの実装例も、visitor、session、pageの寿命を分け、各scopeに応じたコードを示しています。選択の基準は、分類したい対象が誰かではなく、どの範囲の送信へ同じ分類を付けるかです。
_setCustomVar()は四つの引数で分類を決める
カスタム変数は、次の形で設定します。
_setCustomVar(index, name, value, scope)
Google AnalyticsのCustom Variables開発資料では、四つの引数を次のように定義しています。
| 引数 | 役割 | 条件 |
|---|---|---|
index |
カスタム変数を置くslot | 必須。1から5まで |
name |
レポートで分類名となる文字列 | 必須 |
value |
nameと組にする分類値 |
必須 |
scope |
分類を残す範囲 | 任意。1はvisitor、2はsession、3はpage |
scopeを省略した場合はpageになります。省略に頼らず、slot管理表とコードの両方へ数値を明記すると、分類の意図を確認しやすくなります。
同じnameには複数のvalueを組み合わせられます。会員区分を例にするなら、nameをMember Typeに固定し、valueをMemberまたはNon-memberにします。氏名や会員番号をvalueへ入れるのではなく、分析に必要な区分だけを送ります。
slotは変数名とscopeを固定して管理する
slotは、空いている番号をその場で選ぶための欄ではありません。次のような管理表を先に作ります。名称と値は、実装関係を示すための仮例です。
| slot | name | valueの候補 | scope |
|---|---|---|---|
1 |
Member Type |
Member、Non-member |
visitor |
2 |
Login Status |
Logged In |
session |
3 |
Content Section |
Support、Products |
page |
一つのカスタム変数は、一つのslotへ固定します。同じnameを複数のslotへ重複させず、同じslotへ異なるscopeを混ぜません。一回の送信で同時に使えるカスタム変数は最大五つです。
同じslotへ同じscopeの変数を繰り返し設定すると、最後の値が使われます。page scopeでは、そのページで最後に呼び出した値が一つの送信へ付きます。session scopeでは、そのsessionで最後に設定した値がsessionへ適用されます。visitor scopeでも、最後に設定した値が現在と将来のsessionへ引き継がれます。
異なるscopeが同じslotを共有すると、期待した分類が記録されない場合があります。上書き規則を利用して変数を切り替えるのではなく、slotごとにnameとscopeを固定してください。
一組のnameとvalueは、合計64バイト以内にします。日本語など、URIエンコード後に一文字が複数バイトになる値では、文字数だけを見て上限を判断できません。レポートで意味を区別できる短い分類名を使います。
_setCustomVar()は_trackPageview()より前に置く
次の非同期トラッキングコードは、サポートページへpage scopeの分類を付ける仮例です。
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_setCustomVar', 3, 'Content Section', 'Support', 3]);
_gaq.push(['_trackPageview']);
_setCustomVar()は、分類をGoogle Analyticsへ送信する命令ではありません。後に続くpageview、event、transactionなどの送信へ、カスタム変数を付けます。通常のページビューへ付けるなら、_trackPageview()より前に設定します。
ページビューの送信後に利用者の操作で分類が決まる場合は、その操作を送るeventなどの前に_setCustomVar()を置きます。カスタム変数を送るためだけに不要な_trackPageview()を追加すると、ページビュー数まで増やします。何の送信へ分類を付けるかを決めてから、呼び出す位置を選んでください。
カスタム変数へ個人を識別できる値を入れない
Google Analytics利用規約は、氏名、メールアドレス、請求情報など、個人を識別するデータや、それらへ合理的に結び付けられるデータを収集または送信しないよう求めています。
visitor scopeという名称から、会員番号やメールアドレスを送ってよいと判断してはいけません。visitor scopeへ入れるのは、Member、Non-member、選択言語などの分類です。サイト内の個人IDと組み合わせれば個人を特定できる値も避けます。
利用規約は、Cookieによるアクセス情報の収集をプライバシーポリシーで知らせることも求めています。カスタム変数の実装だけで作業を終えず、送る値とサイト上の説明を運営者が確認できる状態にします。
カスタム変数とアドバンスセグメントは記録する段階が違う
カスタム変数は、トラッキングコードでnameとvalueを送る計測時の設定です。アドバンスセグメントは、記録された訪問をレポート上の条件で分ける機能です。
Google Analyticsの機能案内では、Custom Variablesをvisitor、session、pageの属性で分類する機能として紹介しています。Custom Variablesのnameとvalueは、アドバンスセグメントやカスタムレポートでも利用できます。ただし、計測していなかった期間へ遡って値を追加することはできません。
まず、分析したい分類を一つ選びます。次に、その分類を一ページ、一訪問、次回以降の訪問のどこまで残すかを決めます。slot管理表へindex、name、value、scope、値を決める条件、送信命令を書き、実装後は想定した分類がCustom Variablesレポートへ入るかを確認してください。
関連記事

