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

カスタム変数は名前と値のペアのタグで、トラッキング コードに挿入して Google アナリティクスのトラッキングを調整できます。カスタム変数を使用すると、アナリティクスですでに提供されているセグメント以外に、サイト訪問者に適用する追加のセグメントを定義できます。このドキュメントでは、カスタム変数とその設定方法について説明します。

概要

カスタム変数を最大限に活用するには、Google アナリティクスで使用されている基本的なユーザー インタラクション モデルについて理解する必要があります。このモデルでは、訪問者は一定期間にわたってコンテンツを操作し、サイトとのエンゲージメントは階層に分けられます。

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

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

  • ユーザー - サイトにアクセスするクライアント(人が操作するブラウザやスマートフォンなど)。
  • セッション - ユーザーがサイトでアクティブな期間。
  • ページ - ユーザーの代わりに GIF リクエストをアナリティクス サーバーに送信するアクティビティ。通常はページビューとカウントされますが、以下を含みます。
    • ページビュー
    • イベント(ムービー ボタンのクリックなど)

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

トップへ戻る

カスタム変数の使用

さまざまなカスタム変数を設定してサイトでのユーザー アクションをトラッキングできるため、通常は独自の JavaScript ユーティリティを作成してそれらを管理します。スクリプトでは、次のような基本的な方法でカスタム変数を作成します。

_setCustomVar(index, name, value, opt_scope)

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

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

次のコード スニペットは、ユーザーがショッピング カートから商品を削除した訪問をトラッキングするためのカスタム変数の設定方法を示しています。ここでは、_trackEvent() メソッドの直前に _setCustomVar() メソッドが呼び出され、_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) メソッドを使用してカスタム変数を削除できます。

トップへ戻る

サンプル ユースケース

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

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

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

たとえば、ユーザーがさまざまな記事を閲覧しているオンライン新聞のウェブサイトを管理するとします。どの記事が最も人気があるかを簡単に特定できるようになりましたが、カスタム変数を使用して、新聞のどのセクションが人気があるかを特定することもできます。これを行うには、各記事のページレベルでカスタム変数を設定します。その記事のセクションはカスタム変数として設定されます。たとえば、Life & StyleOpinionBusiness などのセクションがあるとします。カスタム変数を設定すると、すべての記事をセクションごとにトラッキングできます。

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

_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 つのページビュー、イベント、またはトランザクションの呼び出し。

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

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

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

セッション レベル

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

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

同じセッションで呼び出された、以前に設定されたページレベルの変数をオーバーライドします。
: スロット 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 番目の value パラメータを使って、独自の Cookie からセッション データを渡すことができます。
  • ページレベル変数でトラッキングできる動作のトラッキングに、セッション レベルの変数を使用しないでください。
    たとえば、ログイン ステータスとショッピング試行ステータスをセッションごとにトラッキングしているとします。また、サイトで「メンバー限定」ページもトラッキングしたいと考えているとします。ページ単位のカスタム変数は、その変数への訪問数を示すため、そのページを少なくとも 1 回含む訪問数はすでにわかります。

トップへ戻る