フィールド データを取得および設定する

トラッカーのフィールド データを取得および設定する際に、トラッカー オブジェクト自体を参照する必要が生じる場合があります。ga() コマンドキューに追加したコマンドは非同期に実行され、値を返しません。また、トラッカーは通常、create コマンドを使って作成されるため、トラッカー オブジェクトの参照情報を取得するには、create コマンドの実行が完了するまで待つ必要があります。この処理は、Ready Callback で実行できます。

Ready Callback

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

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

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

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 オブジェクト自体にメソッドが追加されます。トラッカー オブジェクトにアクセスするには、そのうち 2 つのメソッド getByNamegetAll を使用します。

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() コマンドキューに追加して呼び出します。

トラッカー オプジェクトの参照情報を取得する際に Ready Callback を使用する必要があるため、トラッカーの更新には 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 アナリティクスにデータを送信して処理を行う方法についてご確認ください。