カスタム変数 - ウェブ トラッキング(ga.js)

カスタム変数は、Google アナリティクスのトラッキングの精度を向上させるためにトラッキング コードに挿入する、名前と値のペアのタグです。カスタム変数を使用すると、訪問者に対して、Google アナリティクスで設定されていないセグメントを追加で定義できます。このドキュメントでは、カスタム変数とその設定方法について説明します。

概要

Google アナリティクスで使用する基本的なユーザー操作モデルを理解すれば、カスタム変数を最大限に活用できます。このモデルでは、訪問者は一定期間、サイトのコンテンツを操作し、サイトでのエンゲージメントは階層に分割されます。

この図は、サイトを訪れた 1 人のユーザーのモデルを示しています。各ブロックは、ユーザー セッションの数とそのユーザーからのインタラクションを表しています。

このモデルの各レベルは次のように定義されます。

  • 訪問者 - サイトにアクセスするクライアント(ユーザーが操作するブラウザやスマートフォンなど)。
  • セッション - ユーザーがサイトでアクティブに活動している期間。
  • ページ - ユーザーに代わって Google アナリティクス サーバーに GIF リクエストを送信するアクティビティ。通常、ページビューが主な特徴ですが、たとえば次のようなものが考えられます。
    • ページビュー
    • イベント(ムービー ボタンのクリックなど)

これら 3 つのレベルのインタラクションは、それぞれユーザー エンゲージメントの範囲を定めています。 各カスタム変数は特定の範囲に制限されているため、この違いはカスタム変数では重要です。たとえば、訪問者がショッピング カートから商品を削除したセッション数を確認できます。その場合は、カスタム変数をセッション レベルに合わせて定義します。これにより、ユーザーのセッション全体が、オンライン カートから商品が削除されたというフラグが設定されます。

トップへ戻る

カスタム変数の使用

サイトでのユーザー アクティビティは、さまざまなカスタム変数を使用してトラッキングできるため、通常は独自の JavaScript ユーティリティを作成して管理します。このスクリプトでは、カスタム変数を作成するための基本的なメソッドを次のように使用します。

_setCustomVar(index, name, value, opt_scope)

このメソッドは、次の 4 つのパラメータを受け入れます。

  • index - カスタム変数のスロット。必須。これは 1 から 5 までの範囲の数値になります。カスタム変数は、1 つのスロットのみに配置し、異なるスロットで再利用しないでください。
  • name - カスタム変数の名前。必須。カスタム変数を識別する文字列で、アナリティクス レポートの最上位のカスタム変数レポートに表示されます。
  • value - カスタム変数の値。必須。これは、名前とペアになる文字列です。カスタム変数の名前と複数の値をペア設定できます。この値は、選択した変数名の UI のテーブルリストに表示されます。通常、特定の名前には 2 つ以上の値があります。たとえば、gender というカスタム変数の名前を定義し、有効な値として malefemale を 2 つ指定できます。
  • opt_scope - カスタム変数の範囲。省略可。前述したように、範囲によってサイトでのユーザー エンゲージメントのレベルが定義されます。値は 1(訪問者レベル)、2(セッション レベル)、3(ページレベル)のいずれかです。未定義のままにすると、カスタム変数のスコープはデフォルトでページレベルのインタラクションに設定されます。

次のコード スニペットは、ユーザーがショッピング カートから商品を削除した場合に来店をトラッキングするカスタム変数を設定する方法を示しています。ここで _setCustomVar() メソッドは _trackEvent() メソッドの直前に呼び出されるため、_trackEvent() メソッドから送信される GIF リクエストで配信されます。これは、ウェブサイト ユーザーからのアクティビティを定義するために、名前を Items Removed、値を Yes にして使用します。また、Items RemovedNo にデフォルトのカスタム変数も設定する必要があります。この方法で、商品がショッピング カートから削除された来店数と、商品の削除を含まない訪問の数がカウントされます。

非同期スニペット(推奨)

 _gaq.push(['_setCustomVar',
      1,                   // This custom var is set to slot #1.  Required parameter.
      'Items Removed',     // The name acts as a kind of category for the user activity.  Required parameter.
      'Yes',               // This value of the custom variable.  Required parameter.
      2                    // Sets the scope to session-level.  Optional parameter.
   ]);
 _gaq.push(['_trackEvent',
      'Shopping', // category of activity
      'Item Removal', // Action
   ]);

カスタム変数を設定したら、_deleteCustomVar(index) メソッドを使用してカスタム変数を削除できます。

トップへ戻る

サンプル ユースケース

カスタム変数は、ウェブサイトのモデルやビジネスニーズに応じて、さまざまな方法で実装できます。この例では、さまざまなユースケースを紹介し、それぞれが異なるスコープのレベルを示しています。

ページ レベルのカスタム変数

ページレベルのカスタム変数を使用すると、ユーザーがページレベルのアクティビティのコレクションを定義できます。

たとえば、オンライン新聞のウェブサイトを管理しており、訪問者がさまざまな記事を閲覧しているとします。どの記事が最も人気があるかを見極めるのは簡単ですが、カスタム変数を使用して、新聞のどのセクションに人気があるかを判断することもできます。これを行うには、記事ごとにページレベルでカスタム変数を設定し、その記事のセクションをカスタム変数として設定します。たとえば、「生活とスタイル」、「意見」、「ビジネス」などのセクションがあるとします。すべての記事をセクションごとに追跡するカスタム変数を設定できます。

非同期スニペット(推奨)

_gaq.push(['_setCustomVar',
      1,                   // This custom var is set to slot #1.  Required parameter.
      'Section',           // The top-level name for your online content categories.  Required parameter.
      'Life & Style',  // Sets the value of "Section" to "Life & Style" for this particular aricle.  Required parameter.
      3                    // Sets the scope to page-level.  Optional parameter.
   ]);

この例の続きで、特定の記事のセクションだけでなく、サブセクションにもタグを付けるとします。たとえば、新聞の [日用品、スタイル] セクションには、[料理、飲み物]、[ファッション]、[スポーツ] など、多数のサブセクションがあるとします。したがって、特定の記事に関して、そのセクションとサブセクションの両方をトラッキングできます。 追加のカスタム変数を設定すると、すべての記事をサブセクションごとにトラッキングできます。

非同期スニペット(推奨)

_gaq.push(['_setCustomVar',
          2,                   // This custom var is set to slot #2.  Required parameter.
          'Sub-Section',       // The 2nd-level name for your online content categories.  Required parameter.
          'Fashion',           // Sets the value of "Sub-section" to "Fashion" for this particular article.  Required parameter.
          3                    // Sets the scope to page-level.  Optional parameter.
         ]);

この例では、1 つのページに 2 つの同時ページレベルのカスタム変数を設定します。1 つのページで、個別のスロットごとに最大 5 つのカスタム変数を追跡できます。つまり、同じページに 3 つのカスタム変数を追加で割り当てることができます。ウェブサイトのすべての記事について、ページレベルのカスタム変数の配列を設定し、さまざまなセクションやサブセクションごとにトラッキングできます。ページレベルのカスタム変数を正しく使用する方法について詳しくは、下の使用ガイドラインをご覧ください。

トップへ戻る

セッション レベルのカスタム変数

セッション レベルのカスタム変数を使用して、セッション間で異なるビジター エクスペリエンスを区別します。

たとえば、ユーザーがログインするに対応しているウェブサイトでは、ユーザーのログイン ステータスをスコープしたカスタム変数をセッション レベルに使用できます。これにより、ログイン メンバーと匿名ビジターでアクセスをセグメント化できます。

非同期スニペット(推奨)

_gaq.push(['_setCustomVar',
      1,             // This custom var is set to slot #1.  Required parameter.
      'User Type',   // The name of the custom variable.  Required parameter.
      'Member',      // Sets the value of "User Type" to "Member" or "Visitor" depending on status.  Required parameter.
       2             // Sets the scope to session-level.  Optional parameter.
   ]);

ユーザーの種類と、特定のセッションで購入試行が発生したかどうかの両方を追跡するとします。すべてのページでユーザーにログイン機能が提供されると想定した場合、ユーザータイプのカスタム変数用にスロット 1 を予約し、別のスロットを使用して購入を試みます。

非同期スニペット(推奨)

_gaq.push(['_setCustomVar',
      2,                   // This custom var is set to slot #2.  Required parameter.
      'Shopping Attempts', // The name of the custom variable.  Required parameter.
      'Yes',               // The value of the custom variable.  Required parameter.
                           //  (you might set this value by default to No)
      2                    // Sets the scope to session-level.  Optional parameter.
   ]);

トップへ戻る

ユーザー レベルのカスタム変数

ユーザー単位のカスタム変数を使用して、複数のセッション間で訪問者のカテゴリを区別します。

たとえば、有料会員にプレミアム コンテンツを提供しているウェブサイトでは、訪問者レベルのカスタム変数を設定して、どのユーザーが料金を支払っているか、どの支払いレベルであるか、どのユーザーがサイトの無料サービスを使用しているかを分析することができます。このビジュアリゼーションの値はビジターの Cookie の存続期間にわたって持続するため、このカスタム変数は 1 回限りの関数として設定することをおすすめします。

非同期スニペット(推奨)

_gaq.push(['_setCustomVar',
      1,                // This custom var is set to slot #1.  Required parameter.
      'Member Type',    // The name of the custom variable.  Required parameter.
      'Premium',        // The value of the custom variable.  Required parameter.
                        //  (possible values might be Free, Bronze, Gold, and Platinum)
      1                 // Sets the scope to visitor-level.  Optional parameter.
 ]); 

使用上のガイドライン

このセクションでは、カスタム変数のさまざまなタイプの違いと、それらを正しく使用する方法について説明します。

カスタム変数のタイプ

次の表は、さまざまな変数タイプの主要な特徴を定義しています。同じスロットが異なる変数で使用する場合は、一定の制限があることに留意してください。

カスタム変数の名前と値の合計長は、128 文字以内にする必要があります。

トップへ戻る

  所要時間 スロットを他の変数と共有する場合 許可される数
ページレベル

単一のページビュー、イベント、またはトランザクションの呼び出し。

ページで呼び出される最後のページレベルの変数は、そのページに適用される変数です。

ウェブ プロパティ(ページの集合)の場合、一意のページレベルの変数を多く設定でき、スロットは再利用できます。特定のセッションのヒット数によってのみ制限されます。

1 つのページで、最大 5 つのカスタム変数を同時に設定できます。

セッション レベル

ユーザーの現在のセッション。

セッションで最後に呼び出されるセッション レベルの変数は、そのセッションに使用される変数です。
: セッション開始時にスロット #1 に login=false、後でスロット #1 に login=true を使用した場合、セッションは login に対して true に設定されます。

同じセッションで呼び出される、事前設定されたページレベルの変数をオーバーライドします。
: スロット #1 が最初に category=sports に使用され、次にセッションの login=true に使用されている場合、category=sports は、そのセッションには記録されません。

どのウェブ プロパティでも、128 文字の Key-Value ペアの上限で定義可能な任意の数のセッション レベルのカスタム変数を作成できます。

ユーザー セッションごとに、最大 5 つのセッション レベルの変数を設定できます。

ユーザー レベル

現在のセッションと、それ以降のユーザー Cookie の有効期間中のすべてのセッション。

ユーザーに最後に設定される値が、現在とそれ以降のセッションに適用される値です。

ウェブ プロパティの場合、最大 5 つの異なる訪問者レベルの変数を作成できます。

トップへ戻る

異なる変数のタイプを混在させる場合の注意点

通常は、同じカスタム変数スロットに異なる型を混在させることは、指標の計算が不自然になる可能性があるため、おすすめしません。

ウェブ プロパティに複数のページレベル、セッション レベル、訪問者レベルのカスタム変数を使用する場合は、スロットの再利用を慎重に決定する必要があります。ページレベルの変数が設定されているページまたはセッション レベルのカスタム変数が同時に同じスロットを使用している状況が発生した場合は、セッション レベル(またはページレベル)の変数のみが記録されます。

以下のシナリオでは、同じブラウザ上で 1 人のユーザーが設定するページレベル、セッション レベル、訪問者レベルの変数を混同します。 それぞれの例で、スロットは括弧内に数字で示され、S: は変数のスコープを示します。

事例 1 - 最後のセッション レベル変数が優先される場合

最後のページでは、スロット 1 のセッション レベルのカスタム変数を再利用して優先順位を付けます。

訪問 1 ページ 1
(1)S:ページレベル
section=opinion
2 ページ
(1)S: セッション レベル
login=true
3 ページ目
(1)S: セッション レベル
converted=true

来店コンバージョンのレポートは次のようになります。

  • # visits for section=opinion: 0
  • # visits for login=true: 0
  • # visits for converted=true: 1

事例 2 - 最初のユーザー レベル変数が優先される場合

この場合、まずスロット 1 が訪問 1 で訪問者レベルのカスタム変数によって使用され、その後訪問 3 でページレベルのカスタム変数によって使用されます。この順序の場合、訪問者レベルの変数はページレベルの変数を上書きしません。

アクセス 1 1 ページ
(1)S:訪問者レベル
gender=male
アクセス 2 1 ページ
(2)S:セッション レベル
converted=false
アクセス 3 ページ 1
(1)S:ページレベル
section=opinion

来店コンバージョンのレポートは次のようになります。

  • # visits for gender=male: 2
  • # visits for converted=false: 1
  • # visits for section=opinion: 1
  • 複数のスロットで重複したキー名を使用しないでください。
  • ページビューやイベントの GIF リクエストの前に _setCustomVar() 関数を設定できる場合は、この関数を呼び出します。
    このような操作は不可能な場合もあります。その場合は、カスタム変数を設定した後、別の _trackPageview() リクエストを設定する必要があります。一般的には、ユーザーがセッション レベルまたは訪問レベルのカスタム変数をトリガーし、そのメソッドをページビュー、イベント、e コマース トラッキングの呼び出しと組み合わせることができない場合にのみ必要です。
  • スロット マトリックスを使用して、多数のカスタム変数をトラッキングする
    ページレベルの変数とセッション レベルの変数が混在する複雑なトラッキング要件がある場合は、セッション レベルの変数が誤ってページレベルの変数を上書きしないように、スロット マトリックスを作成する必要があります。
  • 特定のアプリケーションについては、カスタム変数ではなくイベント トラッキングの使用を検討してください。
    たとえば、オンライン音楽ストアがあり、ログイン セッション、購入試行セッション、音楽サンプルが再生されたセッションの両方を追跡するとします。このため、セッション レベルの変数を使用してイベント追跡を行わずに、イベント トラッキングを使用して音楽を再生する回数をトラッキングすることをおすすめします。ここでは、イベント トラッキング呼び出しの 4 番目の値パラメータを使用して、独自の Cookie からセッション データを渡すことができます。
  • ページレベルの変数でトラッキング可能な動作をトラッキングするために、セッション レベルの変数を使用しない
    たとえば、ログイン ステータスとショッピング試行ステータスをセッションごとにトラッキングし、サイトで「メンバー」または「スペシャル」ページも追跡しているとします。ページレベルのカスタム変数には、その特定ページへの訪問回数が表示されるため、そのページを 1 回以上含む訪問回数がすでに設定されています。

トップへ戻る