mizukami

Google Analyticsで複数ドメインをまとめて計測する方法

今回は、GoogleAnalyticsで複数ドメインをまとめて計測する、
クロスドメイントラッキングの方法をご紹介したいと思います。

Googleタグマネージャーで設定するクロスドメイントラッキングの記事を追加しました!(2014.9.10)

»Googleタグマネージャーでのクロスドメイントラッキングの設定

※クロスドメイントラッキングは、ショッピングカートやお問い合せが別ドイメインであった場合や、
複数ドメインを運用していて、全てのドメインを1つのレポートでまとめて見たい場合などに使用します。

1.複数サイト用のトラッキングコードを埋め込む

複数サイト(別ドメイン)を一つのレポートでまとめて計測したい場合 各ドメインのページに同じトラッキングコードを設定します。 Google Analyticsの画面からトラッキングコードを取得する際、「複数のトップレベル ドメイン」をオンにします。 その際に表示されたトラッキングコードの「_setDomainName」の箇所を「none」にします。 複数ドメイン用のトラッキングコード取得画面

こんな感じです。

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-xxxxxxxx-x']);
  _gaq.push(['_setDomainName', 'none']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

2.ドメイン間のリンクを修正

トラッキングコードを複数ドメイン用に設定しただけでは、 各ドメインの遷移が別セッションとして扱われてしまう為、正しく計測できません。 従って、ドメイン間を跨ぐリンクに、同じcookie情報が書きこまれて遷移するように、下記の設定を行います。
<a href="リンク先URL" target=”_blank”>リンク先</a>
上記の記述を下記に変更 ↓
<a href="リンク先URL" onclick="_gaq.push(['_link', 'リンク先URL']); return false;">リンク先</a>

問題①
上記の設定を、ドメイン間のリンク全てに一つ一つ記述するのは手間がかかると同時に 漏れが発生してしまう可能性があります。

解決方法
そこで、下記で紹介されている方法でJavaScriptを使用してリンク設定の自動化を行います。

■参考サイト■

GETメソッドを使用したフォームによるクロスドメイン遷移をGoogle Analyticsで計測する場合の注意点キャンペーン用URLパラメータは#を使えばキレイにできる

(いろいろ調べましたが、上記の方法が一番実現したい事を叶えてくれました。)

URLを記述する箇所はこんな感じで設定してください ↓
   $(function(){
       $('a').click(function(){
       var url = $(this).attr('href');
           if(url.match(/^http:\/\/www\.tam-tam\.co\.jp\//)) { //←ここに対象ドメインを記述
             if(url.match(/#/)){
               _gaq.push(['_link', this.href]);
               return false;
             }
             else {
               _gaq.push(['_link', this.href , true]);
               return false;
             }
           }
       });
   });

問題②
ただし、このままだとリンクをクリックした時に、下記のようにURLにトラッキング用のパラメータが付いてしまい、 あまり綺麗とはいえません。

パラメータが付いたURL

解決方法
キャンペ-ントラッキング用に使用する「_setAllowAnchor(true)」を使って セッション情報をパラメータ(?)ではなく、ハッシュ(#)で受け渡すように設定します。 ※この方法も、先程と同じサイトでご紹介いただいております。(とても参考になります!)

Google Analyticsのトラッキングコードに下記記述を追加 ↓
_gaq.push(['_setAllowAnchor', true]);

さらにハッシュ(#)を自動で消す処理を追加します。

_gaq.push(function(){
  if (location.hash && location.hash.match(/(#|&)(__utma)=.+/)) {
    if ('replaceState' in history)
      history.replaceState('',document.title, window.location.pathname + location.search);
    else window.location.hash = '';
  }
});

全ての記述を合体させると、トラッキングコードはこのような感じになります。

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-xxxxxxxx-x']);
  _gaq.push(['_setDomainName', 'none']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_setAllowAnchor', true]);
  _gaq.push(function(){
    if (location.hash && location.hash.match(/(#|&)(__utma)=.+/)) {
      if ('replaceState' in history)
        history.replaceState('',document.title, window.location.pathname + location.search);
      else window.location.hash = '';
    }
  });
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

上記の設定でテストしてみたところ、セッション情報も正常に引き継がれていました。

3.Google Analyticsのフィルタ設定

最後に、Google Analyticsのレポートにドメイン名を表示するアドバンス フィルタの設定を行います。

※設定しない状態だとドメイン名が表示されない為、どのドメインのページなのか判断が難しくなります。

フィルタ設定前のレポート画面

従って、下記のフィルタを作成して、該当のプロファイルに反映させます。

フィルタの種類: カスタム フィルタ > アドバンス フィールド A: ホスト名 引用 A: (.*) フィールド B: リクエスト URI 引用: (.*) 出力先: リクエスト URI 構成: $A1$B1
Google Analyticsではこんな感じです。 ↓ Google Analytics ドメイン名を表示させるフィルタ設定画面

※上記フィルタを設定すると、レポートにドメインが表示されるようになります。

フィルタ設定後のレポート画面

4.注意点

(1)ドメイン表示のフィルタ設定

ドメインを表示するフィルタを設定した場合、Google Analyticsの下記レポートが参照できなくなります。
  • ページ解析
  • ページへリンクするアイコンからのページ遷移
レポートへのフィルタ設定の影響

こちらの機能は、プロファイルで設定した「ウェブサイトのURL」を元にページを参照する為、 ドメインを表示するフィルタを設定した場合、「ウェブサイトのURL」+ドメインからのパスが表示されます。 従って、下記のように正しくページを参照できなくなってしまいます。

(2)設定が複雑な為、注意深く計測テストを行う

私も失敗したのですが、各ドメインのページにトラッキングコードを埋め込むだけでも レポートには数値として計測されます。 ただし、ドメイン間のリンク設定がうまく作動していない場合、 レポートの「セッション数」「直帰率」「参照元」などが正常な数値を取得できていない状態になっています。 レポートで計測が確認できただけで、成功したと思いがちですが、 セッションが正しく引き継がれているかなど、入念なテストの上、実装の検討が必要かと思います。

(3)クロスドメイントラッキングが本当に必要かよく検討する

作業負荷が高い割りに、安易に導入してしまった為に使いこなせなかったり、 効果が見えにくくなったりと、デメリットになる可能性もあります。 独立したドメインである以上、ターゲットは異なるであろう事を考えると 個別で計測した方が、効果が見えやすかったり、対策が取りやすかったりする事もありますので、 導入する場合はじっくり検討してから導入する事をおすすめします。 [参考サイト:Google Analyticsで複数ドメインをまとめるのは慎重に。]

■参考サイト■

複数ドメインのトラッキング
Google Analyticsのクロスドメイン対応を自動化
キャンペーン用URLパラメータは#を使えばキレイにできる
クロスドメイン トラッキングを使用する理由

新しいウェブ体験を作ろう TAMのPWA開発
お問い合わせはこちら