カスタム ディメンションとカスタム指標はアナリティクス アカウントの既定のディメンションと指標とほとんど同じですが、自分で作成するという点で異なり、アナリティクスで自動的にトラッキングされないデータを収集、解析するために使用できます。
この記事の内容:概要
カスタム ディメンションとカスタム指標を使用すると、アナリティクス データとアナリティクス以外のデータ(CRM データなど)を結合することができます。例:
- 登録ユーザーの性別を CRM システムに保存している場合は、そのデータとアナリティクスのデータを結び付ければ、ページビュー数を性別で分けて確認できます。
- ゲーム開発においては、スクリーン ビュー数といった既定の指標よりも、レベルの完了数やハイスコア数といった指標のほうが有用な場合があります。そこで、カスタム指標を使ってこうしたデータをトラッキングすれば、重要な指標を継続的にトラッキングして、読みやすく柔軟性の高いカスタム レポートでデータを確認できます。
カスタム ディメンションは、カスタム レポートのプライマリ ディメンションとして表示されます。標準レポートでセグメントおよびセカンダリ ディメンションとしても使用できます。
前提条件
カスタム ディメンションとカスタム指標を利用できるのは、ユニバーサル アナリティクスを使用しているプロパティか、少なくとも 1 つのアプリ レポートビューを含むプロパティのみです。カスタム ディメンションとカスタム指標は、Android および iOS(v2.x 以上)向けの Google アナリティクス SDK、analytics.js、Measurement Protocol でサポートされています。
カスタム ディメンションと指標を使用するには、アナリティクス アカウントとトラッキング コードで追加の設定を行う必要があります。両方の設定を済ませると、レポートで使用できるようになります。
制限事項と注意事項
プロパティごとに、カスタム ディメンションのインデックスを 20、カスタム指標のインデックスを 20 利用できます。360 アカウントの場合は、カスタム ディメンションのインデックスを 200、カスタム指標のインデックスを 200 利用できます。
カスタム ディメンションを削除することはできませんが、無効にはできます。ただし、再利用はお避けください。カスタム ディメンションの名前、スコープ、値を編集する際は、新しい値と古い値の両方を、新しいディメンション名または古いディメンション名と組み合わせることができます。これにより、レポートのデータはフィルタによって細かく分割されない形式でまとめられます。
ユーザー属性情報と組み合わせると、一部のカスタム ディメンションはレポートに表示されません。ユーザー属性データを使ったカスタム ディメンションをリクエストする場合、レポートや API でしきい値の制限や互換性の問題が発生することがあります。
カスタム ディメンションと指標のライフサイクル
カスタム ディメンションとカスタム指標のライフサイクルには、次の 4 つの段階があります。
- 設定 - カスタム ディメンションとカスタム指標を定義して、インデックス、名前、その他のプロパティ(スコープなど)を設定します。
- 収集 - トラッキング コードからアナリティクスにカスタム ディメンションとカスタム指標の値を送ります。
- 処理 – カスタム ディメンションとカスタム指標の定義およびビューフィルタを使って、データが処理されます。
- レポート - アナリティクス管理画面でカスタム ディメンションとカスタム指標を使用して新しいレポートを作成します。
設定
カスタム ディメンションとカスタム指標の値をアナリティクスに送信する前に、アナリティクス プロパティで定義する必要があります。アナリティクスの各プロパティでは、カスタム ディメンションを 20 個(20 インデックス)、カスタム指標を 20 個(20 インデックス)設定できます。
カスタム ディメンションまたはカスタム指標は、名前などの設定値を指定して定義します。定義したディメンションと指標にインデックス番号が割り当てられ、後に参照する際に使用できます。カスタム ディメンションには次の設定値があります。
- 名前 - カスタム ディメンションの名前で、この名前がレポートに表示されます。
- スコープ – カスタム ディメンションまたはカスタム指標を適用するデータを指定します。スコープの詳細をご確認ください。
- アクティブ - カスタム ディメンションの値を処理するかどうかを指定します。アクティブでないカスタム ディメンションもレポートに表示されますが、その値は処理されません。
カスタム指標の設定値には次のものがあります。
- 名前 - カスタム指標の名前で、この名前がレポートに表示されます。
- 型 - カスタム指標の値をレポートに表示する方法を指定します。
- 最小値、最大値 - 処理とレポート表示の対象とする値の最小値と最大値です。
- アクティブ - カスタム指標の値を処理するかどうかを指定します。アクティブでないカスタム指標もレポートに表示されますが、その値は処理されません。
カスタム ディメンションとカスタム指標はアナリティクス管理画面で定義できます。
カスタム ディメンションやカスタム指標を定義したら、できるだけ名前またはスコープを後から変更しないようにしてください。こうした値の変更がレポートに与える影響については、実装に関する注意事項をご確認ください。
収集
カスタム ディメンションとカスタム指標の値は、インデックス パラメータと値パラメータのペアとして、収集の段階でアナリティクスに送られます。インデックス パラメータは、設定段階で割り当てられたカスタム ディメンションまたは指標の番号に対応します。
他のタイプのデータとは異なり、カスタム ディメンションとカスタム指標は、ページビュー、イベント、e コマース トランザクションなどのヒットに付加されたパラメータとしてアナリティクスに送信されます。このため、カスタム ディメンションまたはカスタム指標の値は、それを付加するヒットをアナリティクスに送るトラッキング呼び出しの前に設定する必要があります。
たとえば、カスタム ディメンションの値を設定する場合のコードは、次のようになります。
ga('create', 'UA-XXXX-Y', 'auto'); // インデックス 1 のカスタム ディメンションの値を設定します。 ga('set', 'cd1', 'Level 1'); // ページビュー ヒットとともにカスタム ディメンション値を送信します。 ga('send', 'pageview');
カスタム指標の型
整数の値を送る場合、カスタム指標は Integer 型か Time 型にする必要があります。ただし、現地通貨として適切な 10 進数を送る場合は Currency 型も使用できます。
処理
カスタム ディメンションの処理段階では、スコープによって個々のカスタム ディメンションが適用されるヒットが決まり、ビューフィルタによって最終的なレポートに含まれるヒットと付加される値が決まります。
スコープと優先順位
スコープによって、個々のカスタム ディメンションの値を付加するヒットの範囲が決まります。スコープのレベルは、商品、ヒット、セッション、ユーザーの 4 つです。
- 商品 – 値は、設定されている商品(拡張 e コマースのみ)に適用されます。
- ヒット - 値が設定された 1 つのヒットにのみ値が適用されます。
- セッション - 1 回のセッションのすべてのヒットに値が適用されます。
- ユーザー - 現在と将来のセッションのすべてのヒットに値が適用されます(値が変わるか、カスタム ディメンションがアクティブでなくなるまで適用されます)。
カスタム ディメンションに商品レベルのスコープがある場合、値が設定されている商品にのみ値は適用されます。1 回のヒットで複数の商品データが送られる場合があるため、1 回のヒットで商品レベルのスコープが付加されたカスタム ディメンションが複数送られる場合もあります。
ヒットレベルのスコープヒットレベルのスコープを持つカスタム ディメンションの値は、その値が設定されたヒットにのみ適用されます。下の図 A、図 B、図 C の説明をご覧ください。
セッション レベルのスコープ
あるセッションでセッション スコープのカスタム ディメンション(同一インデックス)に 2 つの値が設定された場合は、後から設定された値が優先され、そのセッションのすべてのヒットに適用されます。下の図 D では、最後に設定された値で同じインデックスの過去の値が上書きされた状況が示されています。
ユーザーレベルのスコープ
同じセッションでユーザー スコープのカスタム ディメンションに 2 つの値が設定された場合、そのセッションでは最後に設定された値が優先されます。また、そのユーザーのその後のセッションでもその値が適用されます。
下の図 B では、セッション レベルのカスタム ディメンションと同じように、セッション 2 のすべてのヒットにカスタム ディメンションの値 A が適用されます。しかし、図 C ではセッション レベルのカスタム ディメンションとは異なり、ユーザーレベルのスコープを持つカスタム ディメンション 1 であるため、3 回目のセッションのヒットにも引き続き値 A が適用されます。
フィルタ
ビューフィルタは、カスタム ディメンションおよびカスタム指標とさまざまな形で相互作用します。
カスタム ディメンションとカスタム指標の値は、それぞれの値が設定されたヒットに付加されます(値が適用されるスコープとは関係ありません)。そのヒットがビューフィルタでフィルタされると、それに関連付けられたカスタム ディメンションまたはカスタム指標もフィルタされますが、その状況は設定されたスコープによって次のように異なります。
- ヒットスコープの場合: カスタム指標とヒットスコープのカスタム ディメンションは、付加されたヒットがフィルタされると、どちらもフィルタされます。
- セッション スコープかユーザー スコープの場合: セッション スコープかユーザー スコープのカスタム ディメンションは、その値が付加されたヒットがフィルタされても、ディメンション自体はフィルタされません。ディメンションの値は現在のセッションのすべてのヒットに適用され、ユーザー スコープのディメンションであれば、その後のセッションでも適用されます。
また、カスタム ディメンションはビューフィルタを作成する際にも使用できます。これにより、カスタム ディメンションのスコープに基づいてヒットをフィルタすることができます。たとえば、ユーザー スコープのカスタム ディメンションの値でフィルタを設定すれば、その値に関連付けられたユーザー グループの現在と将来のセッションをフィルタすることができます。
レポート
設定、収集、処理という一連の段階を終えたカスタム ディメンションとカスタム指標は、ユーザーのレポート管理画面に表示されるようになります。
カスタム ディメンションとカスタム指標はカスタム レポートに表示され、アドバンス セグメントで利用できます。また、カスタム ディメンションは標準レポートのセカンダリ ディメンションとしても使用できます。
例
次の例では、プレーヤーの行動を理解するために、ゲーム開発者がどのようにカスタム ディメンションとカスタム指標を使用できるかを示します。
あるゲーム開発者が、最近新しいゲームをリリースしたとします。
この開発者は、最新のアナリティクスのトラッキング コードを使用して、個々のレベルがプレイされるたびにスクリーン ビューをカウントしているため、すでにレベルごとのプレイ回数は把握しています。そして、次のようなさらに進んだ疑問の答えを見つけようとしています。
- 初級レベル、中級レベル、上級レベルでプレイ回数に違いがあるか?
- 3 日間の無料お試し期間に、毎日何レベルがプレイされるか?
- 無料お試し期間のユーザーと有料ゲームのユーザーとで、プレイ回数に違いがあるか?
こうした疑問を明らかにするには、カスタム ディメンションを使ってヒット、セッション、ユーザーの新しいグループを作成します。
さらに開発者は、ユーザー エクスペリエンスを強化するために、「パワーアップ」などの追加機能を販売しています。開発者は、すでにカテゴリ フィールドやバリエーション フィールドを使用していますが、ユーザーが購入したパワーアップの強さを測定するためにはさらに別のフィールドが必要です。開発者はこのようにして、ある特定の強さのパワーアップが他よりも多く購入されたかどうかを把握できます。
ヒットレベルのスコープ
このゲーム開発者のケースを例として、ヒットレベルのカスタム ディメンションを使ってレベルのプレイ回数を難易度(初級: easy、中級: medium、上級: hard)別に把握する方法を見てみましょう。
この開発者はすでにスクリーン ビューを使って各レベルのプレイ回数をトラッキングしており、次は最もよくプレイされているレベルの難易度を把握したいと考えています。
この場合、作成するレポートは次のようなものになります。
難易度 | スクリーン ビュー数 |
---|---|
easy | |
medium | |
hard |
カスタム ディメンションを使う前から、レベルごとの合計スクリーン ビュー数はわかっていましたが、こうしたスクリーン ビュー数を難易度別に分けて見ることはできませんでした。
ヒットレベルのカスタム ディメンションを使うと、個々のスクリーン ビューに難易度の情報を付加して、最もプレイされた難易度をレポートで把握することができます。
ヒットレベルのスコープを使う理由
ユーザーは 1 回のセッションで複数のレベルをプレイする可能性があります。この場合、ヒットレベルのスコープを使えば、難易度の値を伴って送られたスクリーン ビューだけに値が付加されるため、各レベルで発生する個々のスクリーン ビューに難易度の値を個別に設定できます。
設定
カスタム ディメンションを導入する最初のステップでは、アナリティクスの [管理] の [プロパティ設定] で、カスタム ディメンションを定義します。この例では、カスタム ディメンションを次のように定義します。
インデックス | 1 |
名前 | Difficulty |
範囲 | Hit |
有効 | true |
収集
ゲーム内の各レベルはすでにスクリーン ビューでトラッキングされています。さらに各レベルに難易度の情報を付加するには、スクリーン ビューのトラッキング呼び出しを行う前に、カスタム ディメンションの値を設定する必要があります。
トラッキング コードは次のようになります。
ga('create', 'UA-XXXX-Y', 'auto'); // インデックス 1 のカスタム ディメンションの値を設定します。 ga('set', 'cd1', 'easy'); // ページビュー ヒットとともにカスタム ディメンション値を送信します。 ga('send', 'pageview', '/level_1/');
このコードでは、このレベルのスクリーン ビューがトラッキングされる直前に、カスタム ディメンションの値が設定されています。これにより、スクリーン ビューに難易度の情報が付加され、レポートでスクリーン ビュー数を難易度別に分類できるようになります。
処理
収集されたヒットがアナリティクスに送られて処理されると、カスタム ディメンションの値がそのスコープに基づいてヒットに適用されます。
たとえば、1 人のプレーヤーが 1 回のセッションで 6 レベルをプレイした場合、収集されるデータは次のようになります。
userId = 5555 セッション 1: H1: screen_name=/level_1/ cd1_value=easy H2: screen_name=/level_2/ cd1_value=medium H3: screen_name=/level_3/ cd1_value=hard H4: screen_name=/level_4/ cd1_value=easy H5: screen_name=/level_5/ cd1_value=medium H6: screen_name=/level_6/ cd1_value=medium
ヒットレベルのスコープを使用すると、難易度の値を伴って送られたスクリーン ビューだけに、その値が付加されます。
レポート
処理が完了すると、個々のスクリーン ビューにそれぞれの難易度の値が付加されます。そこで、レポートでディメンションとしてスクリーン名と難易度、指標としてスクリーン ビュー数を使用すれば次のようなデータを確認できます。
スクリーン名 | 難易度 | スクリーン ビュー数 |
---|---|---|
/level_1/ | easy | 1 |
/level_2/ | medium | 1 |
/level_3/ | hard | 1 |
/level_4/ | easy | 1 |
/level_5/ | medium | 1 |
/level_6/ | medium | 1 |
カスタム レポートでメインのディメンションとして難易度を使ってスクリーン ビュー数を分類すれば、それぞれの難易度のレベルがプレイされた回数を把握できます。
難易度 | スクリーン ビュー数 |
---|---|
easy | 2 |
medium | 3 |
hard | 1 |
このレポートによると、最も多くプレイされた難易度は medium(中級)です。こうした分析は、ヒットレベルのカスタム ディメンションを使ってスクリーン ビュー数を分類することで可能になります。
セッション レベルのスコープ
次に、同じゲームについてセッション レベルのカスタム ディメンションを使って、3 日間の無料お試し期間にプレイされたレベル数を日別で把握する方法を見ていきましょう。
この開発者はすでに各レベルでスクリーン ビューをトラッキングして各レベルのプレイ回数を把握しており、次はプレイされているレベルの数を日別で確認したいと考えています。
この場合、作成するレポートは次のようなものになります。
試用日 | スクリーン ビュー数 |
---|---|
1 日目 | |
2 日目 | |
3 日目 |
セッション レベルのカスタム ディメンションを使用すると、試用日ごとにスクリーン ビュー数を分類して、無料試用日の経過に伴うスクリーン ビュー数の推移を確認できます。
セッション レベルのスコープを使う理由
セッション レベルのスコープを使用すると、すべてのセッションとその全ヒットを試用日の値ごとに効率的に分類できます。
ヒットレベルのスコープでも同じことができますが、セッション レベルのスコープを使えば、コードの追加を最小限に抑えながら試用日の値を簡単に設定できます。
設定
試用日カスタム ディメンションは、アナリティクス管理画面のプロパティ設定セクションで次の値で定義されます。
インデックス | 2 |
名前 | Day of Trial |
範囲 | Session |
有効 | true |
収集
ゲーム内の各レベルはすでにスクリーン ビューでトラッキングされています。このとき、1 つのセッションのすべてのスクリーン ビューに試用日の値を付加するには、カスタム ディメンションの値をセッションごとに 1 つだけ設定すれば済みます。
ユーザーが初めてゲームを利用したときに、カスタム ディメンションを次のように設定します。
ga('create', 'UA-XXXX-Y', 'auto'); // インデックス 2 のカスタム ディメンションの値を設定します。 var day = getDayOfTrial(); ga('set', 'dimension2', day ); // ページビュー ヒットとともにカスタム ディメンション値を送信します。 ga('send', 'pageview', '/level_1/');
セッション レベルのカスタム ディメンションの値は、そのセッションの期間中いつでも設定できますが、この例では最も簡単な方法として、セッションの開始時に試用日を特定して値を設定しています。
処理
収集されたヒットがアナリティクスに送られて処理されると、カスタム ディメンションの値がそのスコープに基づいてヒットに適用されます。
たとえば、あるプレーヤーが試用日の 1 日目に 2 回、2 日目に 1 回、3 日目に 1 回ゲームを使った場合、収集されるデータは次のようになります。
userId = 5555 セッション 1: H1: screen_name=/level_1/ cd2_value=1 H2: screen_name=/level_2/ H3: screen_name=/level_2/ セッション 2: H4: screen_name=/level_3/ cd2_value=1 H5: screen_name=/level_4/ H6: screen_name=/level_4/ セッション 3: H1: screen_name=/level_1/ cd2_value=2 H2: screen_name=/level_2/ H3: screen_name=/level_3/ セッション 4: H1: screen_name=/level_3/ cd2_value=3
カスタム ディメンションの値はセッションごとに 1 つのスクリーン ビューだけに付加されて送られています。
セッション レベルのスコープを使用すれば、実際に試用日の値を付加して送ったヒットだけでなく、対象セッションで収集されるすべてのヒットに試用日の値が付加されます。
レポート
処理が完了すると、同じセッションで送られたすべてのスクリーン ビューにセッション レベルのカスタム ディメンションの値が付加されます。そこで、レポートでディメンションとして試用日とスクリーン名、指標としてスクリーン ビュー数を使用すれば、次のようなデータを確認できます。
試用日 | スクリーン名 | スクリーン ビュー数 |
---|---|---|
1 | /level_1/ | 1 |
1 | /level_2/ | 2 |
1 | /level_3/ | 1 |
1 | /level_4/ | 2 |
2 | /level_1/ | 1 |
2 | /level_2/ | 1 |
2 | /level_3/ | 1 |
3 | /level_3/ | 1 |
そして、スクリーン ビュー数を日別に分類し、プレイされたレベルの数を試用日ごとに確認するため、試用日をプライマリ ディメンションに指定してカスタム レポートを作成します。これにより、次のようなデータを確認できます。
試用日 | スクリーン ビュー数 |
---|---|
1 | 6 |
2 | 3 |
3 | 1 |
このデータから、プレイされたレベルの数は 1 日目が最も多く、2 日目と 3 日目には目に見えて減ったことがわかります。こうした分析は、セッション レベルのカスタム ディメンションを使って複数のセッションとその全ヒットを値別に分類することで可能になります。
ユーザーレベルのスコープ
最後に、ユーザーレベルのカスタム ディメンションを使って、プレイされたレベル数を有料版と無料試用版のユーザー別に把握する方法を見てみましょう。
これまでの例と同じように、この開発者は各レベルごとのプレイ回数をすでにスクリーン ビューでトラッキングしており、次はスクリーン ビュー数を無料ユーザーと有料ユーザー別に分けて確認したいと考えています。
この場合、確認したいデータは次のようなものになります。
プレーヤー タイプ | スクリーン ビュー数 |
---|---|
無料 | |
有料 |
ユーザーレベルのカスタム ディメンションを使用すると、個々のユーザーの現在以降のすべてのセッションのあらゆるスクリーン ビューに、プレーヤー タイプの値を付加できます。
ユーザーレベル スコープを使う理由
ユーザーレベル スコープを使用すると、個々のユーザーのあらゆるセッションとヒットを 1 つの値で簡単に分類できます。したがって、この例のプレーヤー タイプのように、個々のユーザーに対して頻繁に変わらない値については、ユーザーレベル スコープが適しています。
ヒットレベルやセッション レベルのスコープを使っても同じことはできますが、ユーザーレベル スコープを使えば最小限のコードで最も簡単にこうした機能を実現できます。
設定
プレーヤー タイプのカスタム ディメンションは、[アナリティクス設定] で次のように定義します。
インデックス | 3 |
名前 | Player Type |
範囲 | User |
有効 | true |
収集
これまでの例と同じように、各レベルはすでにスクリーン ビューでトラッキングされています。スクリーン ビュー数をプレーヤー タイプ別に分類するには、まずユーザーがゲームを初めて利用したときにプレーヤー タイプのディメンションを設定し、その後ユーザーがフルバージョンのゲームを購入しアクセスした場合に設定し直します。
ユーザーが初めてゲームを利用したときに、カスタム ディメンションを次のように設定します。
ga('create', 'UA-XXXX-Y', 'auto'); // インデックス 3 のカスタム ディメンションの値を設定します。 ga('set', 'dimension3', 'Free' ); // ページビュー ヒットとともにカスタム ディメンション値を送信します。 ga('send', 'pageview', '/level_1/');
また、同じユーザーがフルバージョンのゲームを購入した場合にも、カスタム ディメンションを次のように設定します。
ga('create', 'UA-XXXX-Y', 'auto'); // インデックス 3 のカスタム ディメンションの値を設定します。 ga('set', 'dimension3', 'Paid' ); // ページビュー ヒットとともにカスタム ディメンション値を送信します。 ga('send', 'pageview', '/level_1/');
処理
これまでの例と同じように、収集されたデータが処理されると、カスタム ディメンションの値がそれぞれのスコープに基づいて対象のヒットに適用されます。
たとえば、1 人のユーザーが無料ユーザーとして 2 回、有料ユーザーとして 1 回プレイした場合、収集されたデータは次のようになります。
userId = 5555 セッション 1: H2: screen_name=/level_1/ cd3_value=free H3: screen_name=/level_2/ セッション 2: H1: screen_name=/level_2/ H2: screen_name=/level_3/ H3: screen_name=/level_3/ セッション 3: H1: screen_name=/level_3/ cd3_value=paid H2: screen_name=/level_4/
この場合、セッション 1 で設定された値 free
は、セッション 1 とセッション 2 のすべてのヒットに適用されます(セッション 3 で新しい値 paid
が設定されるまで有効です)。
レポート
処理が完了すると、プレーヤー タイプのカスタム ディメンションの値が設定されたセッションに加え、その後のすべてのセッションとヒットに、この値が付加されます。
そこで、レポートでディメンションとしてプレーヤー タイプとスクリーン名、指標としてスクリーン ビュー数を使用すれば次のようなデータを確認できます。
プレーヤー タイプ | スクリーン名 | スクリーン ビュー数 |
---|---|---|
無料 | /level_1/ | 1 |
無料 | /level_2/ | 2 |
無料 | /level_3/ | 2 |
有料 | /level_3/ | 1 |
有料 | /level_4/ | 1 |
そして、スクリーン ビュー数をプレーヤー タイプ別に分類し、プレイされたレベルの数を無料ユーザーと有料ユーザーごとに確認するため、プレーヤー タイプをプライマリ ディメンションに指定してカスタム レポートを作成します。すると、次のようなデータを確認できます。
プレーヤー タイプ | スクリーン ビュー数 |
---|---|
無料 | 5 |
有料 | 2 |
このデータから、有料ユーザーよりも無料ユーザーの方がプレイしたレベル数が多いことがわかります。こうした分析は、ユーザーレベルのカスタム ディメンションを使ってユーザーとそのセッションとヒットを値別に分類することで可能になります。
商品レベルのスコープ
ゲーム開発者が商品レベルのカスタム ディメンションを使用して、購入されたパワーアップの強さ(弱: weak、中: medium、強: strong)を調べる方法の例を見てみましょう。
開発者はすでに、拡張 e コマースを使用してパワーアップの購入回数をトラッキングしています。次に、どの強さのパワーアップが最も購入されているかを把握します。
レポートは次のようになります。
パワーアップの強さ | 商品の収益 |
---|---|
weak | |
medium | |
strong |
カスタム ディメンションを使用する前でも、開発者はパワーアップによる商品の総収益を確認できますが、パワーアップの強さ別に収益を分類することはできません。
商品レベルのカスタム ディメンションを使用することにより、パワーアップの強さを各商品に関連付けることができるため、最も多く購入された強さのデータ(および表示回数、クリック数など、その他拡張 e コマースで使用できるアクション)をレポートに追加できます。
商品レベルのスコープを使う理由
ユーザーは、複数のパワーアップをまとめて購入することがあります。この場合、商品レベルのスコープを使えば、強さの値を伴って送られた商品だけにこの値が付加されるため、ユーザーが購入した各パワーアップに強さの値を個別に設定できます。
設定
パワーアップの強さのカスタム ディメンションは、アナリティクスの [管理] の [プロパティ設定] セクションで次のように定義します。
インデックス | 4 |
名前 | Powerup Strength |
範囲 | Product |
有効 | true |
収集
ゲーム開発者は、すでに各パワーアップの購入をトラッキングしています。個々のパワーアップに強さを付加するには、カスタム ディメンションの値を商品データとともに設定する必要があります。
このディメンションを商品に追加すると、次のようになります。
ga('ec:addProduct', { // 商品の詳細を productFieldObject に指定します。 'id': 'P12345', // 商品 ID(文字列)。 'name': 'Powerup', // 商品名(文字列)。 'category': 'Extras', // 商品カテゴリ(文字列)。 'variant': 'red', // 商品バリエーション(文字列)。 'price': '10.00', // 商品価格(通貨)。 'quantity': 2, // 商品の数量(数字)。 'dimension4': 'strong' // 商品スコープのカスタム ディメンション(文字列)。 }); ga('ec:setAction', 'purchase', { 'id': 'T12345', 'revenue': '20.00' }); ga('send', 'pageview'); // トランザクション データを最初のページビューとともに送信します。
この例では、カスタム ディメンションが商品情報とともに設定されることにより、パワーアップに強さの値が付加されます。
処理
これまでの例と同じように、ヒットが収集されてアナリティクスに送られた後に、データが処理され、カスタム ディメンションの値が設定された商品に適用されます。
たとえば、ユーザーが 1 回のセッションで 3 つのパワーアップを購入した場合、収集されたデータは次のようになります。
userId = 5555 セッション 1: H1: product_name=powerup cd4_value=weak product_name=powerup cd4_value=strong H2: product_name=powerup cd4_value=weak
商品レベルのスコープを使用すると、パワーアップの値は、それぞれが設定されている商品のみに付加されます。
レポート
処理が完了すると、各商品に強さの値が個別に付加されるため、開発者はカスタム レポートを作成して、パワーアップの強さ別に収益を確認できます。
パワーアップの強さ | 商品の収益 |
---|---|
weak | 20.00 |
strong | 10.00 |
このレポートでは、強さが弱のパワーアップの収益が多くなりました。
カスタム指標
範囲
カスタム ディメンションと同様に、カスタム指標にもいくつかのスコープがあります。ヒットレベルのカスタム指標は、その指標を付けて送られたすべてのヒットレベルのディメンションに付加されます。同様に、商品レベルのカスタム指標は、その指標を付けて送られた商品のみに付加されます。次の例では、2 種類のカスタム指標を示します。
ヒットスコープのカスタム指標の例
これまでの例で、このゲーム開発者は各レベルで発生した個々のプレイを 1 回のスクリーン ビューとしてトラッキングしていました。したがって、レポートに表示されるスクリーン ビュー数の指標は、レベルのクリアを目指してプレイされた回数を表します。
しかし、この開発者は各レベルがクリアされた完了率も知りたいと考えています。
そこで、レベルの完了率を把握するため、「レベル完了数」という新しいカスタム ディメンションを使用して、この数と各レベルのスクリーン ビュー数を比較することにしました。
この場合、確認したいデータは次のようなものになります。
スクリーン名 | スクリーン ビュー数 | レベル完了数 |
---|---|---|
/level_1/ | ||
/level_2/ | ||
/level_3/ |
カスタム指標を使う理由
ほとんどの場合、重要な指標をトラッキングする際にはイベント、スクリーン ビュー、カスタム指標を自由に選んで使用できます。中でもカスタム指標は特に柔軟性が高く、カスタム レポートが分析しやすくなるため、重要な指標のトラッキングに便利です。
レベル完了数をスクリーン ビューとしてトラッキングするとレベルごとにスクリーン ビューを重複カウントしてしまうため、この例では他の方法を見つけるとよいでしょう。
また、イベントだけを使って 1 つのディメンションにスクリーン ビュー数とレベル完了率を組み込んだ上記のような階層的なレポートを作成することは困難です。
こうした点を考慮して、この開発者にとって重要なレベル完了率をトラッキングするには、レベル完了率をカスタム指標としてトラッキングするのが最も簡単です。
設定
レベル完了率のカスタム指標は、管理画面の管理セクションで次のように定義します。
インデックス | 1 |
名前 | Level Completions |
範囲 | Hit |
フォーマット タイプ | Integer |
有効 | true |
収集
この開発者はすでにスクリーン ビューを使って各レベルの始まりをトラッキングしており、次は新しいカスタム指標を使ってレベルの完了をトラッキングしたいと考えています。
カスタム ディメンションと同じように、カスタム指標も他のヒットにパラメータとして付加されてアナリティクスに送られます。このためカスタム指標の値を送るには、レベルの完了を記録するための別のヒットも送る必要があります。この例では、レベルの完了時にイベントを呼び出し、このイベントにカスタム指標を付加します。
トラッキング コードは次のようになります。
ga('create', 'UA-XXXX-Y', 'auto'); // レベル完了の指標を 1 つずつ増やします。 ga('set', 'metric1', 1 ); // カスタム指標値をイベントヒットとともに送信します。 ga('send', 'event', 'Level', 'completion');
処理
このゲームで 1 人のプレーヤーが 1 回のセッションで 3 レベルをプレイした場合、処理前のデータは次のようになります。
userId = 5555 セッション 1 H1: type=screen_view screen_name=/level_1/ H2: type=event screen_name=/level_1/ cm1_value=1 H3: type=screen_view screen_name=/level_2/ H4: type=screen_view screen_name=/level_2/ H5: type=screen_view screen_name=/level_2/ H6: type=event screen_name=/level_2/ cm1_value=1 H7: type=screen_view screen_name=/level_3/ H8: type=event screen_name=/level_3/ cm1_value=1
レポート
データの処理が終わると、ディメンションとしてスクリーン名、指標としてスクリーン ビュー数、合計イベント数、レベル完了数を使って次のようなレポートを作成できます。
スクリーン名 | スクリーン ビュー数 | 合計イベント数 | レベル完了数 |
---|---|---|---|
/level_1/ | 1 | 1 | 1 |
/level_2/ | 3 | 1 | 1 |
/level_3/ | 1 | 1 | 1 |
この例ではレベル完了数をカスタム指標としてトラッキングしたため、合計イベント数から完了イベント数をフィルタする手間を省くことができます。
そして、レベル完了数の指標を使って、次のようなカスタム レポートを簡単に作成できます。
スクリーン名 | スクリーン ビュー数 | レベル完了数 |
---|---|---|
/level_1/ | 1 | 1 |
/level_2/ | 3 | 1 |
/level_3/ | 1 | 1 |
このデータから、スクリーン ビュー数に基づくレベル完了率がレベル 2 では 33% に留まり、レベル 1 やレベル 3 に比べてレベル 2 のクリアが難しい実態がわかります。このようにレベル完了数をカスタム指標としてトラッキングすれば、重要な指標を簡単に把握し、簡潔なレポートを作成して同僚と情報を共有できます。
商品スコープのカスタム指標の例
先ほどの例では、ゲーム開発者はパワーアップの購入を個別にトラッキングしていました。個々の購入には、数量や商品の収益など、さまざまな指標を付加できます。
最近、このゲーム開発者はあるプロモーションを実施し、すべてのユーザーに 100 ドルのクレジットを付与しました。そして、ユーザーがこのクレジットを利用してどのパワーアップを購入するかを測定したいと考えています。
ユーザーが商品を購入するときに使用されるクレジットを把握するために、この開発者は「使用されたクレジット」という新しいカスタム指標を使用します。
この場合、確認したいデータは次のようなものになります。
パワーアップの強さ | 商品の収益 | 使用されたクレジット |
---|---|---|
strong | ||
medium | ||
weak |
設定
「使用されたクレジット」のカスタム指標は、[アナリティクス設定] セクションで次のように定義します。
インデックス | 2 |
名前 | Credits Used |
範囲 | Product |
フォーマット タイプ | Integer |
有効 | true |
収集
商品レベルのカスタム ディメンションと同様に、商品レベルのカスタム指標は、商品データに付加されたパラメータとしてアナリティクスに送られます。
トラッキング コードは次のようになります。
ga('ec:addProduct', { // 商品の詳細を productFieldObject に指定します。 'id': 'P12345', // 商品 ID(文字列)。 'name': 'Powerup', // 商品名(文字列)。 'category': 'Extras', // 商品カテゴリ(文字列)。 'variant': 'red', // 商品バリエーション(文字列)。 'price': '10.00', // 商品価格(通貨)。 'quantity': 2, // 商品の数量(数字)。 'dimension4': 'strong', // 商品スコープのカスタム ディメンション(文字列)。 'metric2': 5 // 商品スコープのカスタム指標(整数)。 }); ga('ec:setAction', 'purchase', { 'id': 'T12345', 'revenue': '20.00' }); ga('send', 'pageview'); // トランザクション データを最初のページビューとともに送信します。
処理
1 人のプレーヤーが複数のパワーアップを購入した場合、処理前のデータは次のようになります。
userId = 5555 セッション 1 H1: type=screen_view screen_name=/level_1/ H2: type=screen_view screen_name=/level_2/ product_name=powerup cd4_value=weak cm2_value=5 product_name=powerup cd4_value=strong cm2_value=5 H4: type=screen_view screen_name=/level_2/ product_name=powerup cd4_value=medium cm2_value=1 product_name=powerup cd4_value=weak cm2_value=10
レポート
処理が完了すると、開発者は、ディメンションとしてパワーアップの強さを、指標として商品の収益と使用されたクレジットを使ったレポートを作成できます。
パワーアップの強さ | 商品の収益 | 使用されたクレジット |
---|---|---|
weak | 20 | 15 |
strong | 10 | 5 |
medium | 10 | 1 |
このデータは、プレーヤーが強さが弱のパワーアップにクレジットを多く使用していることを示しています。また、開発者が中の強さのパワーアップで最も高い収益を得ていることがわかります。
実装に関する注意事項
カスタム ディメンションまたはカスタム指標を実装する際には、次の点にご注意ください。
既存のディメンションまたは指標の編集について
既存のカスタム ディメンションやカスタム指標の名前またはスコープを編集すると、データに次のような影響があります。
- 名前の編集: すでに処理されたデータの名前も変更されます。古いデータは新しい名前でのみ参照できます。
- スコープの編集: すでに処理されたデータには影響しません。新しいデータだけが新しいスコープで処理されます。
- アクティブ状態の変更: アクティブ フィールドは、カスタム ディメンションまたはカスタム指標の値を実際に処理するかどうかを示すものです。アクティブ フィールドが「
false
」の場合でも、カスタム ディメンションまたはカスタム指標はレポートに表示されますが、その値は処理されていないため、関連するデータはありません。
スコープは検討してから設定
個々のカスタム ディメンションにスコープを設定する際には、値が変わると見込まれる頻度を考慮します。セッション中に何度も変わるような値であれば(ゲームのレベル名など)、ヒットスコープを使ってそれぞれのヒットを送る前に値を設定します。一方、性別などのカスタム ディメンションであれば、ユーザーレベルで 1 回設定すれば済みます。個々のヒットに性別の値を付けて送ると、オペレーションの量が無駄に増えてしまいます。また、値が頻繁に変わるカスタム ディメンションにユーザー スコープを設定すると、多くのヒットに不適切な値が付加されてしまいます。