トラッカー データを取得および設定する

トラッカーのフィールド データを取得および設定するには、トラッカー オブジェクト自体への参照が必要になる場合があります。ga() コマンドキューに追加されたコマンドは非同期的に実行され、値が返されません。またほとんどの場合、create コマンドを使ってトラッカーを作成するため、トラッカー オブジェクトへの参照を取得する前に、create の実行完了を待つ必要があります。この処理は、準備完了コールバックで実現できます。

準備完了コールバック

準備完了コールバックは、ga() コマンドキューに追加できる関数です。analytics.js ライブラリが完全に読み込まれ、それより前にキューに追加されていたコマンドがすべて実行されるとすぐにこの関数が実行されます。

キューに追加したすべてのコマンドは順に実行されるため、create コマンドを追加した後で準備完了コールバックをキューに追加することで、準備完了コールバックを確実にトラッカー作成後に実行できます。準備完了コールバックが呼び出された時点でデフォルトのトラッカーが作成されている場合は、デフォルトのトラッカーがコールバックの唯一の引数として渡されます。

デフォルトのトラッカー オブジェクトにアクセスし、コンソールにログを出力するコードは次のようになります。

ga('create', 'UA-XXXXX-Y', 'auto');

ga(function(tracker) {
  // Logs the tracker created above to the console.
  console.log(tracker);
});

ga オブジェクトのメソッドを使用してトラッカーを取得する

デフォルトのトラッカーを使用していない場合や、ページに複数のトラッカーがある場合は、ga オブジェクトのメソッドのいずれかを使って、これらのトラッカーにアクセスできます。

analytics.js ライブラリが完全に読み込まれると、ga オブジェクト自体にメソッドが追加されます。追加されるメソッドのうち getByNamegetAll の 2 つは、トラッカー オブジェクトへのアクセスに使用できます。

getByName

アクセスするトラッカーの名前がわかっている場合は、次のように getByName メソッドを使用してアクセスできます。

ga('create', 'UA-XXXXX-Y', 'auto', 'myTracker');

ga(function() {
  // Logs the "myTracker" tracker object to the console.
  console.log(ga.getByName('myTracker'));
});

getAll

作成したすべてのトラッカーの配列を取得するには、次のように getAll メソッドを使用します。

ga('create', 'UA-XXXXX-Y', 'auto', 'tracker1');
ga('create', 'UA-XXXXX-Z', 'auto', 'tracker2');

ga(function() {
  // Logs an array of all tracker objects.
  console.log(ga.getAll());
});

トラッカーに保存されたデータを取得する

トラッカー オブジェクトへの参照を取得したら、get メソッドを使用して、現在トラッカーに保存されているすべてのフィールドの値にアクセスできます。

ga('create', 'UA-XXXXX-Y', 'auto');

ga(function(tracker) {
  // Logs the trackers name.
  // (Note: default trackers are given the name "t0")
  console.log(tracker.get('name'));

  // Logs the client ID for the current user.
  console.log(tracker.get('clientId'));

  // Logs the URL of the referring site (if available).
  console.log(tracker.get('referrer'));
});

トラッカー データを更新する

トラッカー オブジェクトは、set メソッドを使用して更新できます。トラッカーの set メソッドは、トラッカー オブジェクト自体から呼び出すか、set コマンドを ga() コマンドキューに追加して呼び出します。

トラッカー オプジェクトへの参照を取得する際に、準備完了コールバックを使用する必要があるため、トラッカーの更新には ga() コマンドキューの使用をおすすめします。

ga() コマンドキューを使用する

set コマンドを呼び出す方法は 2 つあります。フィールドとその値を 2 つのパラメータとして渡す方法と、フィールドと値のペアをオブジェクトで渡す方法です。

次の例では、デフォルトのトラッカーの page フィールドに '/about' を設定しています。

ga('set', 'page', '/about');

次の例では、page フィールドと title フィールドを同時に設定しています。

ga('set', {
  page: '/about',
  title: 'About Us'
});

名前付きのトラッカーを使用する

デフォルトのトラッカーの代わりに名前付きのトラッカーを使用している場合は、コマンド文字列で名前を渡すことができます。

次の呼び出しでは、「myTracker」という名前のトラッカーの page フィールドを設定しています。

ga('myTracker.set', 'page', '/about');

トラッカー オブジェクト自体で更新する

トラッカー オブジェクトへの参照を取得済みの場合は、トラッカーの set メソッドを直接呼び出すことができます。

ga(function(tracker) {
  tracker.set('page', '/about');
});

アンパサンド構文

トラッカー フィールドは通常、フィールド名を使用して取得および設定します(analytics.js のフィールドと名前の一覧については、フィールド リファレンスをご覧ください)。

フィールドを取得および設定する別の方法として、対応する Measurement Protocol パラメータ名で参照する方法もあります。

たとえば、次の 2 つの console.log の表現は、どちらもドキュメント タイトルをコンソールにログ出力します。

ga(function(tracker) {
  // Gets the title using the analytics.js field name.
  console.log(tracker.get('title'));

  // Gets the title using the measurement protocol
  // parameter name, prefixed with an ampersand.
  console.log(tracker.get('&dt'));
});

多くの場合、アンパサンド構文は推奨されません。使用するのは、Measurement Protocol パラメータ用の analytics.js のフィールド名が存在しない場合に限定してください(このような状況は、新しい機能が analytics.js に実装される前に Measurement Protocol に追加された場合に発生します)。

次のステップ

ここでは、トラッカーを作成する方法と、トラッカーに保存されたデータを更新する方法について説明しました。次に、Google アナリティクスにデータを送信して処理を行う方法についてご確認ください。