Log Serviceは、ウィンドウファンネル機能を提供します。 この機能を使用して、ユーザーの行動、アプリケーショントラフィック、製品プロモーションのコンバージョン率などのデータを分析できます。 このトピックでは、ウィンドウファネル関数の構文について説明します。 このトピックでは、ウィンドウファンネル関数の使用方法の例も示します。
次の表に、Log Serviceでサポートされているウィンドウファネル機能を示します。
機能 | 構文 | 説明 |
---|---|---|
window_funnel関数 | window_funnel( sliding_window, timestamp, event_id, ARRAY[ event_list01, event_list02 ...])) | スライディングタイムウィンドウでイベントチェーンを検索し、イベントチェーンで発生した連続イベントの最大数をカウントします。 event_idパラメーターの値がイベントチェーンで指定されている場合は、この構文を使用できます。 |
window_funnel( sliding_window, timestamp, ARRAY[ event_id=event_list01, event_id=event_list02 ...])) | スライディングタイムウィンドウでイベントチェーンを検索し、イベントチェーンで発生した連続イベントの最大数をカウントします。 event_idパラメーターの値がイベントチェーンで指定されておらず、event_idパラメーターにカスタム値を使用する場合は、この構文を使用して柔軟性を高めることができます。 |
原則
ウィンドウファネル関数は、スライディングタイムウィンドウ内のイベントチェーンを検索し、イベントチェーン内の連続イベントの最大数をカウントするために使用されます。 ウィンドウファネル関数は、指定したイベントチェーンの最初のイベントからカウントを開始し、イベントを順番にチェックしてから、連続イベントの最大数を返します。
- この関数は、イベントチェーンの最初のイベントからカウントを開始し、イベントカウンタの初期値を1に設定します。 次いで、スライディング時間ウィンドウが開始する。
- スライディングタイムウィンドウでは、イベントチェーン内のイベントが順番に発生すると、イベントカウンタがインクリメントされます。
- スライディングタイムウィンドウでは、イベントチェーン内のイベントのシーケンスが中断されると、イベントカウンタが停止します。 検索が停止し、新しい検索が開始されます。 前回の検索で連続したイベントの最大数がカウントされます。
- 前回の検索で連続するイベントの値が複数存在する場合、関数は最大値を返します。 最大値は、連続するイベントの最大数を示します。
- 関数は、イベントチェーンの最初のイベントからカウントを開始する必要があります。 たとえば、関数がイベント2、イベント3、およびイベント4のシーケンスでカウントを開始する場合、関数は0を返します。
- この関数は、イベントチェーンで発生するすべてのイベントをカウントする必要があります。 例えば、イベント4がスライディングタイムウィンドウで発生し、イベント3がスライディングタイムウィンドウで発生しない場合、この検索は、連続するイベントの最大数から除外される。
構文
window funnel関数は、次の2つの構文をサポートします。
- event_idパラメーターの値がイベントチェーンで指定されている場合は、次の構文を使用できます。
window_funnel( sliding_window, timestamp, event_id, ARRAY[ event_list01, event_list02 ...]))
- event_idパラメーターの値がイベントチェーンで指定されておらず、event_idパラメーターにカスタム値を使用する場合は、次の構文を使用して柔軟性を高めることができます。
window_funnel( sliding_window, timestamp, ARRAY[ event_id=event_list01, event_id=event_list02 ...]))
パラメーター
パラメーター | 説明 |
---|---|
sliding_window | スライド時間ウィンドウ。 単位:秒。 このパラメーターの値はbigint型です。 |
timestamp | タイムスタンプ。 単位:秒。 このパラメーターの値はbigint型です。 Log Serviceの組み込み __time__ フィールドを使用することを推奨します。 |
event_id | ログフィールドの名前。 このパラメーターの値は、イベントの名前です。 例: イベントA、イベントB、またはイベントC。このパラメーターの値はvarchar型です。 |
event_list | カスタムイベントチェーン。 イベントチェーンには最大32個のイベントを含めることができます。 このパラメーターの値は配列型です。 例:
|
例
eコマースストアは、プロモーション活動を開催し、ウィンドウファンネル機能を使用して活動の変換効果を分析しました。 変換プロセスは、商品の情報を閲覧し、商品をオンラインショッピングカートに追加してから、商品を購入するという3つのステップで構成されています。 次の図は、log Serviceによって収集されるサンプルログを示しています。
ログフィールド | 説明 |
---|---|
behavior_type | ユーザーの行動のタイプ。 有効な値:
|
カテゴリ_id | 商品のカテゴリID。 |
iteme_id | 商品のID。 |
timestamp | ユーザーの動作が発生した時点。 |
ユーザー_id | ユーザーの ID。 |
例 1
24時間以内のユーザーの購入行動を分析します。
- クエリ文
* | 選択 user_id, window_funnel ( 86400, timestamp, ARRAY [behavior_type='pv', behavior_type='cart',behavior_type='buy'] ) ASレベル グループ化 user_id 注文によって user_id リミット 1000
- クエリと分析結果
- ユーザ24のレベルフィールドの値は3である。 ユーザは、順番に購入を完了する。 ユーザは、商品の情報を閲覧し、オンラインショッピングカートに商品を追加した後、商品を購入する。
- ユーザ14のレベルフィールドの値は2である。 ユーザは、商品の情報を閲覧してオンラインショッピングカートに商品を追加する。 しかし、ユーザは商品を購入しない。
例 2
ユーザーの行動の種類ごとにユーザー数を計算します。
- クエリ文
* | 選択 レベル, カウント、 合計 (カウント) オーバー ( ORDER BY レベルDESC ) 合計として から ( SELECT レベル, カウント (1) ASカウント から ( SELECT user_id, window_funnel ( 86400, timestamp, ARRAY [behavior_type='pv', behavior_type='cart',behavior_type='buy'] ) ASレベル ログから GROUP BY user_id ) GROUP BY レベル ORDER BY レベル )
- クエリと分析結果
- 商品の情報を閲覧するユーザの数は513,194人である。 商品の情報を閲覧した後に購入処理を継続しないユーザの数は138,491である。
- オンラインショッピングカートに商品を追加するユーザーの数は374,703です。 オンラインショッピングカートに商品を追加した後に購入プロセスを続行しないユーザーの数は198,642です。
- 商品を購入するユーザーの数は176,061です。
例 3
- 絶対コンバージョン率: ユーザーの総数に対するユーザーの行動の種類を実行するユーザーの数の比率。
- 相対コンバージョン率: 以前のタイプのユーザー行動を実行したユーザーの数に対する、あるタイプのユーザー行動を実行したユーザーの数の比率。
- クエリ文
* | 選択 *, 100.0 * 合計 /(合計 (カウント) オーバー ()) AS「絶対コンバージョン率」、 if ( lag(total, 1, 0) over() = 0, 100, (100.0 * total / lag(total, 1, 0) over()) ) AS「相対コンバージョン率」 から ( SELECT レベル, カウント、 合計 (カウント) オーバー ( ORDER BY レベルDESC ) 合計として から ( SELECT レベル, カウント (1) ASカウント から ( SELECT user_id, window_funnel ( 86400, timestamp, ARRAY [behavior_type='pv', behavior_type='cart',behavior_type='buy'] ) ASレベル ログから GROUP BY user_id ) GROUP BY レベル ) ORDER BY レベル )
- クエリと分析結果
- テーブル
- じょうごグラフ