このガイドでは、analytics.js での Cookie の使用方法と、複数ドメインのサイトでの設定方法について解説します。
概要
デフォルトでは、analytics.js ライブラリは _ga
という単一の Cookie を使用して、固有のクライアント識別子(クライアント ID)を保管します。この ID はランダムに生成される数字となります。生成された ID は Cookie に保管され、Google アナリティクスに送信される各ヒット(またはリクエスト)に付随します。この ID はその後、Google アナリティクス サーバーによってユーザーやセッション、キャンペーンのデータが算出される際に使用されます。
_ga
Cookie は、JavaScript が実行されたドメインからのみアクセスできるファーストパーティ Cookie となります。設定によっては Google アナリティクスでの Cookie の設定方法を変更する必要がありますが、このガイドではその方法についても解説します。
実装
analytics.js のデフォルトの JavaScript スニペットでは、create
メソッドによってトラッカーを作成します。
ga('create', 'UA-XXXX-Y');
ここで作成される Cookie は以下のようになります。
- Cookie 名は
_ga
。 - Cookie ドメインは先頭の
www.
を抜いたウェブサイトのドメイン。 - Cookie の有効期間は 24 か月(2 年)に設定され、期間はヒットが送信されるたびに更新される。
デフォルトの Cookie 設定の指定
これらの値を修正する場合は、create
メソッドに最後のパラメータとして設定オブジェクトを渡します。この設定オブジェクトは旧型の JavaScript プレーン オブジェクトで、各プロパティが上書きするフィールドの名前となります。次に例を示します。
ga('create', 'UA-XXXX-Y', { 'cookieName': 'new_cookie_name', 'cookieDomain': 'mynew.domain.com', 'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds. });
これにより、デフォルトの Cookie 設定がそれぞれの値に変更されます。
Cookie ドメインの自動設定
ga('create', 'UA-XXXX-Y', 'auto');
Cookie ドメインの自動設定を利用すると、auto
パラメータの使用時に最高レベルのドメインに Cookie を自動的に書き込み、クロスドメイン トラッキングの設定を簡略化できます。たとえば www.example.co.uk
ドメインで使用された場合は、以下の順に Cookie の書き込みを試みます。
co.uk
example.co.uk
www.example.co.uk
この場合、analytics.js による co.uk
での Cookie の書き込みは失敗しますが、example.co.uk
での書き込みは成功します。www.example.co.uk
については、Cookie がより高いレベルのドメインで書き込まれるため省略されます。
ローカルホストでの Cookie の設定
localhost
上のウェブサーバーから analytics.js を実行したい場合、analytics.js の Cookie を設定するには、以下のようにデフォルトの Cookie ドメインを無効にする必要があります。
ga('create', 'UA-XXXX-Y', { 'cookieDomain': 'none' });
または、簡略化して以下のようにします。
ga('create', 'UA-XXXX-Y', 'none');
同一ドメイン上での複数のトラッカーの処理
analytics.js ライブラリでは、1 つの Cookie に固有のクライアント ID を付けて設定するため、ページ上のすべてのトラッカーでこの Cookie を共有する必要があります。複数のサブドメインまたはサブディレクトリで analytics.js を設定する場合は、以下のようになります。
- すべてのトラッカーで Cookie を最高レベルのドメインに設定する。
- ドメインの先頭の
www
と.
(ピリオド)を削除する。
つまり、one.example.com
と two.example.com
の 2 つのサブドメインがあるサイトの場合は、両方のトラッカーを以下のように設定します。
// Configuration for one.example.com ga('create', 'UA-XXXX-Y', {'cookieDomain': 'example.com'});
// Configuration for two.example.com ga('create', 'UA-XXXX-Y', {'cookieDomain': 'example.com'});
Cookie の有効期間の変更
Cookie の有効期間は、ヒット(またはリクエスト)が Google アナリティクスのサーバーに送信されるたびに、その時点から cookieExpires
の値(秒単位)を足した期間が過ぎるまでの時点に更新されます。たとえば以下のようになります。
ga('create', 'UA-XXXX-Y', { 'cookieExpires': 60 });
この場合、Cookie の有効期間はその時点から 60 秒後(1 分後)までとなります。
cookieExpires
を 0
(ゼロ)秒に設定すると、Cookie はセッション ベースの Cookie になり、現在のブラウザ セッションの終了とともに有効期間が切れます。
ga('create', 'UA-XXXX-Y', { 'cookieExpires': 0 });
クライアント ID の取得
analytics.js で設定される Cookie は、警告なしにフォーマットが変わる場合があります。Cookie に直接アクセスすることは避けてください。直接アクセスするとスクリプト エラーが発生し、データが不正確になることがあります。代わりに、get
コマンドを使用して clientId
の値を取得してください。方法は以下のとおりです。
ga(function(tracker) { var clientId = tracker.get('clientId'); });
analytics.js ライブラリが読み込まれると、ga
に渡された関数が実行され、tracker
のパラメータにデフォルトのトラッキング オブジェクトへの参照が含まれます。このトラッキング オブジェクトが clientId
を取得するために使用されます。
Cookie の無効化
analytics.js ではデフォルトで単一の Cookie が使用され、複数のページで固有のクライアント識別子が維持されます。独自のストレージ メカニズムを使用して、Cookie を使わずにデータを直接 Google アナリティクスに送信する場合もあります。
analytics.js による Cookie の設定は、以下の方法で無効化できます。
ga('create', 'UA-XXXX-Y', { 'storage': 'none', 'clientId': '35009a79-1a05-49d7-b876-2b884d0f825b' });
Cookie の保管を無効にした場合は、クロスドメイン リンク設定パラメータ
を使用する特殊なケースを除き、独自の clientId パラメータを指定する必要があります。