リンカー

リンカー プラグインを使用すると、クロスドメイン測定を簡単に実装できます。実装方法については、analytics.js 向けクロスドメイン測定ガイドをご覧ください。

概要

クロスドメイン測定を実行するには、ソースドメインとリンク先ドメインの間でクライアント ID を共有します。各ソースでのクライアント ID の共有は、2 つのステップで完了します。

  1. ソースドメインに関しては、リンク先ドメインを参照するすべての URL に、ソースドメインのクライアント ID が含まれるように設定します。
  2. リンク先ドメインに関しては、ユーザーが URL を参照したときに、クライアント ID が含まれていることが確認できるように設定します。

前述の手順は、リンカー プラグインを使用して、リンク先ドメインを参照する URL にリンカー パラメータを追加することで実行できます。リンカー パラメータには、クライアント ID だけでなく、その ID にエンコードされた現在のタイムスタンプとブラウザのメタデータも含まれます。タイムスタンプとメタデータを使用するのは、URL 共有時の問題が発生しないようにするためです。

次のリンカー パラメータの例をご覧ください。

_ga=1.199239214.1624002396.1440697407

リンク先ドメインの allowLinker フィールドを true に設定すると、analytics.js により URL 内のリンカー パラメータがチェックされます。有効なリンカー パラメータが見つかると、そのパラメータからクライアント ID が抽出されて、保存されます。

リンカー プラグインを使用すると、ページ上のリンクとフォームの URL に、リンカー パラメータを自動または手動で追加できます。通常は、自動追加を推奨します。

リンカー パラメータの自動追加

リンク先ドメインを参照する URL に対して、ソースドメインでクロスドメイン自動リンクを設定するには、リンカー プラグインを要求して、autoLink メソッドを呼び出す必要があります。

autoLink メソッドは、コマンドキューを使用して呼び出すことができます。

autoLink メソッドが実行されると、analytics.js がリンク先ドメインを参照するリンクのクリックをリッスンし、ページ移動する直前に、これらのリンクにリンカー パラメータを追加します。リンカー パラメータは 2 分で期限切れになるため、ユーザーがリンクをクリックするのを待ってからリンカー パラメータを追加する必要があります。

サイト上にリンク先ドメインを参照するフォームがある場合は、decorateForms プロパティを true に設定します。

使用方法

ga('[trackerName.]linker:autoLink', domains, [useAnchor], [decorateForms]);

パラメータ

名前 タイプ 必須 / 省略可 説明
domains Array[RexExp|string] 必須 URL の hostname と照合する文字列の配列または正規表現で、自動リンクを適用するドメインを示します。文字列が渡されると、analytics.js により部分文字列の照合が行われます。たとえば、example.comblog.example.com を参照するリンクと一致します。
useAnchor boolean 省略可 true の場合、リンカー パラメータは URL のクエリ部分ではなくアンカー部分に追加されます。
decorateForms boolean 省略可 true の場合は、リンカー プラグインにより、domain パラメータに一致したリンク先を参照するフォームの送信内容に、リンカー パラメータが追加されます。

// Loads the Linker plugin
ga('require', 'linker');

// Instructs the Linker plugin to automatically add linker parameters
// to all links and forms pointing to the domain "destination.com".
ga('linker:autoLink', ['destination.com'], false, true);

リンカー パラメータの手動追加

decorate メソッドを使用すると、リンカー パラメータを特定の <a> 要素または <form> 要素に手動で追加できます。このメソッドが必要になるのは、前述の autoLink メソッドを使用していない場合に限ります。

decorate

decorate メソッドは、コマンドキューを使用して呼び出すことができます。

リンカー パラメータは 2 分後に期限切れになるため、decorate メソッドは、できるだけページ移動する瞬間に近いタイミングで呼び出すようにしてください。ほとんどの場合では、このメソッドをイベント ハンドラで呼び出してください。

使用方法

ga('[trackerName.]linker:decorate', element, [useAnchor]);

パラメータ

名前 タイプ 必須 / 省略可 説明
element HTMLElement 必須 リンカー パラメータを追加する <a> 要素または <form> 要素です。
useAnchor boolean 省略可 true の場合、リンカー パラメータは URL のクエリ部分ではなくアンカー部分に追加されます。

// Loads the Linker plugin
ga('require', 'linker');

// Gets a reference to a link pointing to an external domain.
var destinationLink = document.getElementById('destination-link');

// Adds click handler that decorates `destinationLink`.
destinationLink.addEventListener('click', function() {
  ga('linker:decorate', destinationLink);
});

linkerParam

トラッカーで使用されるリンカー パラメータは、decorate メソッドだけでなく linkerParam フィールドでも手動で取得できます。

ga(function(tracker) {
  var linkerParam = tracker.get('linkerParam');
});

リンカー パラメータを受け入れるサイトの設定

リンカー パラメータが URL に含まれているリンク先ドメインのページにユーザーがアクセスしたとき、analytics.js ではそのことを把握し、該当するパラメータを探す必要があります。

トラッカーの作成時に allowLinker フィールドを true に設定すると、リンカー パラメータを探すようリンク先ページに指示することができます。

ga('create', 'UA-XXXXXX-X', 'auto', {
  allowLinker: true
});

双方向のクロスドメイン測定

常に最初にソースドメインを参照してからリンク先ドメインに移動するユーザーのユーザーフローは、一方向のクロスドメイン測定と見なされます。前述の手順は、このタイプのユーザーフローを前提としています。

ユーザーがどちらのドメインに最初にアクセスするかわからない場合は、どちらのドメインもソースまたはリンク先として機能するように構成された「双方向のクロスドメイン測定」を実装する必要があります。

双方向のクロスドメイン測定を実装するには、両方のドメインで自動リンクを有効化し、いずれもリンカー パラメータを受け入れるように設定します。

source.com:

ga('create', 'UA-XXXXX-Y', 'auto', {allowLinker: true});
ga('require', 'linker');
ga('linker:autoLink', ['destination.com']);

destination.com:

ga('create', 'UA-XXXXX-Y', 'auto', {allowLinker: true});
ga('require', 'linker');
ga('linker:autoLink', ['source.com']);

1 つのスニペットをすべてのドメインに使用する

これを簡単にするために、autoLink メソッドで測定するすべての可能なドメインをリストします。すべてのドメインで同じコード スニペットを使用できます。

ga('create', 'UA-XXXXX-Y', 'auto', {allowLinker: true});
ga('require', 'linker');
ga('linker:autoLink', ['source.com', 'destination.com']);