サブドメインでオウンドメディアを管理したり、サイトを増やしたりするケースが増えています。
こんにちは、Googleアナリティクス大好きカグア!です。
今回は、Googleアナリティクス(ユニバーサル アナリティクス)で、サブドメイン計測に必要な知識を解説したいと思います。
関連記事
>>無料Web漫画:第1話すみれはWebアナリスト
>>Googleアナリティクス基礎:クロスドメイントラッキングの設定
>>Googleアナリティクス基礎:複数のトラッキングコード(マルチトラッキング)設定
>>Googleタグマネージャでクロスドメイン、サブドメイン設定をする方法
この記事の目次
サブドメイントラッキングとは?
なんか、Googleアナリティクスあるある、みたいになっちゃいましたが、サブドメイン計測って、たまーに話題になるんですよね。
サブドメイン計測の考え方
・Googleアナリティクスが採用しているのはファーストパーティCookie。
・ファーストパーティCookieは1ドメイン内でしか機能しない。
・上位のドメインで適用されればOK。
・フィルタで重複パスにホスト名を結合して集計。
・クロスドメインで必要なリンカーの設定は不要。
Googleアナリティクスやユニバーサル アナリティクスでは、ファーストパーティCookieといって同一ドメインのなかでしか機能しない仕組みを採用しています。これはより信頼性を高めるためだとされていますが、そのことにより、ドメインが変わるページ遷移の場合、リンク元のcookie情報を引き継がないといけなくなる、というデメリットもあります。
では、Cookie情報はどう保持されるのでしょうか。公式ヘルプにはこう書いてあります。
cookieDomain は現在のドメインの祖先にする必要があります。祖先ドメインにしないと Cookie は設定されません。たとえば、ドメインが one.two.three.root.com の場合、root.com では Cookie を設定できますが、someotherdomain.com では設定できません。
つまり、上位のドメインに設定しておけばその配下のドメインでは正しく機能する、ということなのです。
ユニバーサル アナリティクスでは、「auto」の記述の部分で、ドメイン部分さえ検知できれば、その配下のホスト名などには新たなcookie生成をしない、という仕組みが働いているため、別のセッションと認識されずにすんでいると言えます。
ですから、クロスドメイン設定をするときにかつてのコードでは、「_gaq.push([‘_setDomainName’, ‘none’]);」としていましが、none とあるように、ドメインに関係なくcookieをセットしないという意味がわかります。クロスの場合、ドメインごとに都度都度cookieを作られてしまったら、セッションがバラバラになってしまうためです(ただこのnoneもユニバーサル アナリティクスではもうautoになっています)。
トラッキングコードの書き方
ユニバーサル アナリティクスの場合
ga('create', 'UA-11111111-1', 'auto'); ga('send', 'pageview');
ユニバーサル アナリティクスの場合では、つまりトラッキングコードは変える必要はない、ということですね。
ユニバーサル アナリティクスになってから、トラッキング方法が変わり、トラッキングコードのプログラムも改変されて進化しました。
上記「auto」の部分が自動で、サブドメインなどの情報を判断して、最適なデータ送信をしてくれるのでした。
つまり、「新サイトをサブドメインで作った、それも含め全体のPVを測りたい」ということであれば、元のサイトのユニバーサル アナリティクスのトラッキングコードをそのまま貼り付ければ、合算してくれるということですね。
>>ドメインと Cookie – ウェブ トラッキング(analytics.js) | ウェブ向けアナリティクス(analytics.js) | Google Developers
>>GA フォーラム | Googleアナリティクスの情報サイト | Google アナリティクスでドメインやサブドメインを跨いで計測する場合のトラッキングコードのカスタマイズの基本
>>ユニバーサルアナリティクスのサブドメイン間の計測 – Google プロダクト フォーラム
3番めの木村さんの回答がとても参考になります。
非同期コードの場合
var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-11111111-1']); _gaq.push(['_setDomainName', '.xxx.jp']); _gaq.push(['_trackPageview']);
Googleアナリティクスの以前のバージョンである非同期版。そのGoogleアナリティクスのトラッキングコードでは、1行追加する必要があります。_gaq.push([‘_setDomainName’, ‘.xxx.jp’]);という1行を追加してください。これで、そのドメインがつくサイトでは、同様の挙動をしてくれるようになります。
つまり、「新サイトをサブドメインで追加する、それも含め合算で全体を計測したい」というときには、元サイトのトラッキングコードを修正し、それをさらに新サイトにも貼り付ける、ということになります。
ちなみに、上記ドメイン名 xxx.jp ですが、この「ピリオド」は、なくても動作することが知られています。.xxx.jp でもいいし、xxx.jp でも機能するとのこと。
>>GA サブドメイン計測用のトラッキングコード(非同期版) « アクセス解析Q&Aフォーラム
>>サブドメインを跨いだサイト遷移のトラッキング – Google プロダクト フォーラム
>>GA フォーラム | Googleアナリティクスの情報サイト | Google アナリティクスでサブドメインを跨いで計測する場合のトラッキングコードのカスタマイズ
>>GA フォーラム | Googleアナリティクスの情報サイト | Google アナリティクスでドメインやサブドメインを跨いで計測する場合のトラッキングコードのカスタマイズの基本
>>複数のサブドメインにわたるテストを実施する – アナリティクス ヘルプ
UAでも場合によってはCookieDomainも
ユニバーサルアナリティクスでは、基本的にはautoで判別可能です。ただ、wwwなしの場合や、別にクロスドメインも絡んで、どうもセッションが切れているなというときは、やはり手動でcookieをセットすることも試してみましょう。
ga('create', 'UA-XXXX-Y', { 'cookieName': 'new_cookie_name', 'cookieDomain': 'mynew.domain.com', 'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds. });
>>ドメインと Cookie – ウェブ トラッキング(analytics.js) | ウェブ向けアナリティクス(analytics.js) | Google Developers
Googleタグマネージャの場合は、ユニバーサルアナリティクスタグのその他の設定>設定するフィールド「cookieDomain」などが選べますので、上記を参考に設定してみましょう。
※Thanks 衣袋 宏美さん
リンカーは不要
Googleアナリティクスのクロスドメイントラッキングでは、ga(‘linker:autoLink’, [‘bbb.com’] ); や、Aタグのリンクに、onclick=”_gaq.push([‘_link’, this.href , true]); return false;” など、リンカー設定が必要です。
リンカーとは、ドメインが変わる時に、cookieをちゃんと引き継がせるなどの処理をしてくれる、Googleアナリティクス側のプログラム(プラグイン)のことです。
しかし、前述のようにサブドメインでは、ドメインをまたがず、配下のドメインにはcookie設定が反映するわけですから、ドメイン引き継ぎ処理プログラムであるリンカーは不要、あっても悪さをするわけではないですが不要、というわけです。
URLにホスト名をつける
aaa.jp/index.html と sub.aaa.jp/index.html とでは、Googleアナリティクスではドメイン名部分までは計測しないため、どちらも /index.html と集計されてしまいます。
これではいけないので、サブドメインをまたいで計測したいときには、フィルタでそのホスト名(ドメインなど)を結合して計測し、異なるURLだとGoogleアナリティクスに認識させる必要があります。
アナリティクス設定>ビュー>フィルタ「+新しいフィルタ」
フィルタ:カスタム
「フィールドA」ホスト名 (.*)
「フィールドB」リクエストURI (.*)
「出力先」リクエストURI $A1$B1
※結合したリクエストURIを出力(上書き)せよ、って意味ですね。
出力値の意味
よく上記のフィルタ設定は見かけますが、$A1$B1について解説された記事は少ないように思いましたので、解説します。
()が、取得できる箱のようなもので、その何番目を使うか、というなのです。出力先にこうした変数のようなものを使える、ということですね。
ですから、理屈を知っていますと、Googleアナリティクスのフィルタこんなこともできちゃいます。
フィールドA ホスト名 (.*)
フィールドB リクエストURI (.*)
出力 リクエストURI $A1/blog/$B1
としますと、結合したURLすべてに /blog/ が追加されるようになります。
フィルタは、データを上書いたり除外したしする怖い面もありますが、こうやって自由にできることがわかると、ほんと楽しいんですよね。
興味がわいた方は、「正規表現 キャプチャ」などで検索しますとたくさん情報が出てきますのでおすすめです。
Googleタグマネージャ利用の場合
こちらにまとめました。
>>Googleタグマネージャでクロスドメイン、サブドメイン設定をする方法
まとめ
サブドメインはリンカーの設定が不要なので、コードとフィルタだけ気をつければ良いと覚えると良いかと思います。
ところで、非同期版のリンクを調べていて、Googleアナリティクス界の賢人がサブドメインについて言及されていることに気づきました。
今はGoogleにおられる大内さん、国内GACPであるプリンシプルの木田さん、Web担当者フォーラムでGoogleアナリティクス関連記事の連載はもう何年もやられている衣袋さん。探していて胸が熱くなりました。
・ ・ ・ ・ ・
>>安っ!アマゾンで半額以下になっている食品タイムセール
セール特設ページを見る
↓↓↓無料のニュースレターを配信中です