NRQLを使用すると、ファネルを使用して関連するアクションのセットを評価できます。 通常、アクションはユーザー ID やセッション ID などの識別子を介して関係を共有します。
funnel
関数を使用すると、「ステップ A を完了した人のうち、ステップ B も完了した人は何人ですか。また、ステップ A と B を完了した人のうち、ステップ C も完了した人は何人ですか?」のような質問に答えることができます。
たとえば、New Relicではfunnel
を使用して、これらのステップを完了させたユーザーの数を追跡できます:
- New Relicマーケティングページを訪問した。
- アカウントのサインアップを行った。
- ダッシュボードを作成した。
ファネルのクエリ構造
以下は、単純なNRQLファネルクエリの構造です:
FROM DATA_TYPE SELECT funnel(AN_ATTRIBUTE, ACTION_A, ACTION_B) SINCE TIMEFRAME
ファネルクエリには、ファネルの属性であるfunnel
関数と、少なくとも2つのステップが必要となります:
- アンカー ステップから始めます。これは常に結果の 100% を表します。
- 追加のステップ (通常はアンカー ステップの 100% ではない) を完了したユーザーの数を示す追加のステップに進みます。 ただし、アクション (A) を完了したすべてのユーザーが、クエリしている追加のアクションも完了した場合は、100% になる可能性があります。
ファネルクエリの技術的な詳細
New Relic のサインアップの例のように、ファネル クエリを使用して、特定の期間におけるマルチステップの順序付けられたシーケンスの完了率を計算できます。 また、ファネルを使用して、互いに連続的な関係を持たない複数の個別のアクション間の重複を計算することもできます。 つまり、ステップの順序は計算に影響しません。
ファネルクエリでの結果の計算の方法は、データセットのサイズにより異なります:
- ファネルが 256 未満のファネル属性値を使用して処理している場合、値は正確に計算されます。
- ファネルが 256 以上のファネル属性値を処理する場合、MinHash と呼ばれるアルゴリズムを適用して、パフォーマンスを最適化するための近似結果を計算します。
これは、大規模なデータセットの場合、個々のデータ ポイントのレベルで時折「誤検知」が発生する可能性があることを意味します。 これらは、クエリ結果で提供される数値推定の精度を妨げません。
ファネルクエリの技術的な詳細と制約条件の詳細な内容は以下にあります。
Technical details | Comments |
---|---|
ステップの順序 | 完了したステップの順序は強制されず、結果に影響を与えません。 |
属性 | 1回に1つの属性でのみファネルクエリを実行できます。 |
ユニーク値 | 256以上の一意のファネル属性値が関連するファネルクエリについては、結果は概算となります。 |
最大ステップ数 | 単一のファネルクエリにおいて最大10のステップを設定できます。 |
ファネルの例
この例では、 PageView
イベントとその属性をクエリします。 製品の閲覧からカートへの追加、チェックアウトに至るまでのユーザー固有のbrowserセッションをクエリします。 これには、キーワードAS
で示される各ステップのラベルが含まれています。
FROM PageView SELECT funnel(session, WHERE pageUrl LIKE '%browse%' as 'Browse', WHERE pageUrl LIKE '%cart%' as 'Cart', WHERE pageUrl LIKE '%checkout%' as 'Checkout') SINCE 1 week AGO
このクエリは、以下を返します:
製品を閲覧し、カートに追加し、チェックアウトを開始したユーザー数を表示するNRQLファネルクエリの例。
ファネル関数の括弧内には、追加のアクションがカンマ区切りリストで含まれています:
SELECT funnel(session, WHERE name = 'Controller/about/main' AS 'Action A', WHERE name = 'Controller/about/careers' AS 'Action B', WHERE name = 'Controller/about/insights' AS 'Action C', WHERE name = 'Controller/about/apply' AS 'Action D') FROM PageView SINCE 1 week ago