New Users
のコーホートに対して有用なアクティビティ メトリック (個別カウント値、新しい値の個別カウント、リテンション率、チャーン レート) を計算します。 New Users
(時間枠に最初に表示されたすべてのユーザー) の各コーホートは、以前のすべてのコーホートと比較されます。
比較では、以前のすべての時間枠が考慮されます。 たとえば、T2 から T3 のレコードの場合、ユーザーの個別カウントは、T1 と T2 の両方に表示されなかった T3 のすべてのユーザーになります。
このプラグインは、evaluate
演算子を使用して呼び出されます。
構文
TabularExpression | evaluate
new_activity_metrics(
IdColumn,
TimelineColumn,
Start,
End,
Window [,
Cohort] [,
dim1,
dim2,
...] [,
Lookback] )
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
TabularExpression | string |
✔️ | アクティビティ メトリックを計算する表形式の式。 |
IdColumn | string |
✔️ | ユーザー アクティビティを表す ID 値を持つ列の名前。 |
TimelineColumn | string |
✔️ | タイムラインを表す列の名前。 |
Start | スカラー型 | ✔️ | 分析開始期間の値。 |
End | スカラー型 | ✔️ | 分析の終了期間の値。 |
ウィンドウ | スカラー型 | ✔️ | 分析ウィンドウ期間の値。 数値、datetime、timespan 値、または week 、 month 、または year のいずれかである文字列を指定できます。その場合、すべての期間はそれに応じて startofweek/startofmonth/startofyear になります。 startofweek を使用する場合は、開始時刻が日曜日であることを確認します。それ以外の場合、最初のコーホートは空になります (startofweek 以降は日曜日と見なされます)。 |
グループ | スカラー型 | 特定のコーホートを示します。 指定しない場合、分析の時間枠に対応するすべてのコーホートが計算され、返されます。 | |
dim1, dim2, ... | dynamic |
アクティビティ メトリックの計算をスライスするディメンション列の配列。 | |
ルックバック | string |
"ルックバック" 期間に属する ID のセットを含む表形式の式。 |
返品
'from' と 'to' のタイムライン期間の組み合わせごと、および既存の列 (ディメンション) の組み合わせごとに、以下を含むテーブルを返します。
- 個別カウント値
- 新しい値の個別カウント
- リテンション率
- チャーン レート
出力テーブル スキーマは次のとおりです。
from_TimelineColumn | to_TimelineColumn | dcount_new_values | dcount_retained_values | dcount_churn_values | retention_rate | churn_rate | dim1 | .. | dim_n |
---|---|---|---|---|---|---|---|---|---|
型: TimelineColumn 現在 | 同じ | long | long | 倍精度浮動小数点 | double | 倍精度浮動小数点 | .. | .. | .. |
from_TimelineColumn
- 新しいユーザーのコーホート。 このレコードのメトリックは、この期間に最初に表示されたすべてのユーザーを示しています。 最初の表示に対する決定では、分析期間内の以前のすべての期間が考慮されます。to_TimelineColumn
- 比較対象の期間。dcount_new_values
-from_TimelineColumn
以前のすべての期間に表示されていないto_TimelineColumn
の個別ユーザーの数。dcount_retained_values
-from_TimelineColumn
に最初に表示されたすべての新規ユーザーのうち、to_TimelineCoumn
に表示された個別ユーザーの数。dcount_churn_values
-from_TimelineColumn
に最初に表示されたすべての新規ユーザーのうち、to_TimelineCoumn
に表示されていない個別ユーザーの数。retention_rate
- コーホート外のdcount_retained_values
の割合 (最初にfrom_TimelineColumn
に表示されたユーザー)。churn_rate
- コーホート外のdcount_churn_values
の割合 (最初にfrom_TimelineColumn
に表示されたユーザー)。
Note
Retention Rate
と Churn Rate
の定義については、activity_metrics プラグインのドキュメントの「メモ」セクションを参照してください。
例
次のサンプル データセットは、どのユーザーがどの日に表示されたかを示しています。 テーブルは、次のようにソースの Users
テーブルに基づいて生成されました。
Users | summarize tostring(make_set(user)) by bin(Timestamp, 1d) | order by Timestamp asc;
出力
タイムスタンプ | set_user |
---|---|
2019-11-01 00:00:00.0000000 | [0,2,3,4] |
2019-11-02 00:00:00.0000000 | [0,1,3,4,5] |
2019-11-03 00:00:00.0000000 | [0,2,4,5] |
2019-11-04 00:00:00.0000000 | [0,1,2,3] |
2019-11-05 00:00:00.0000000 | [0,1,2,3,4] |
元のテーブルのプラグインの出力は次のとおりです。
let StartDate = datetime(2019-11-01 00:00:00);
let EndDate = datetime(2019-11-07 00:00:00);
Users
| evaluate new_activity_metrics(user, Timestamp, StartDate, EndDate-1tick, 1d)
| where from_Timestamp < datetime(2019-11-03 00:00:00.0000000)
出力
R | from_Timestamp | to_Timestamp | dcount_new_values | dcount_retained_values | dcount_churn_values | retention_rate | churn_rate |
---|---|---|---|---|---|---|---|
1 | 2019-11-01 00:00:00.0000000 | 2019-11-01 00:00:00.0000000 | 4 | 4 | 0 | 1 | 0 |
2 | 2019-11-01 00:00:00.0000000 | 2019-11-02 00:00:00.0000000 | 2 | 3 | 1 | 0.75 | 0.25 |
3 | 2019-11-01 00:00:00.0000000 | 2019-11-03 00:00:00.0000000 | 1 | 3 | 1 | 0.75 | 0.25 |
4 | 2019-11-01 00:00:00.0000000 | 2019-11-04 00:00:00.0000000 | 1 | 3 | 1 | 0.75 | 0.25 |
5 | 2019-11-01 00:00:00.0000000 | 2019-11-05 00:00:00.0000000 | 1 | 4 | 0 | 1 | 0 |
6 | 2019-11-01 00:00:00.0000000 | 2019-11-06 00:00:00.0000000 | 0 | 0 | 4 | 0 | 1 |
7 | 2019-11-02 00:00:00.0000000 | 2019-11-02 00:00:00.0000000 | 2 | 2 | 0 | 1 | 0 |
8 | 2019-11-02 00:00:00.0000000 | 2019-11-03 00:00:00.0000000 | 0 | 1 | 1 | 0.5 | 0.5 |
9 | 2019-11-02 00:00:00.0000000 | 2019-11-04 00:00:00.0000000 | 0 | 1 | 1 | 0.5 | 0.5 |
10 | 2019-11-02 00:00:00.0000000 | 2019-11-05 00:00:00.0000000 | 0 | 1 | 1 | 0.5 | 0.5 |
11 | 2019-11-02 00:00:00.0000000 | 2019-11-06 00:00:00.0000000 | 0 | 0 | 2 | 0 | 1 |
出力のいくつかのレコードの分析を次に示します。
レコード
R=3
、from_TimelineColumn
=2019-11-01
、to_TimelineColumn
=2019-11-03
:- このレコードで考慮されるユーザーはすべて、11/1 に表示される新しいユーザーです。 これは最初の期間であるため、これらはそのビン内のすべてのユーザーです - [0,2,3,4]
dcount_new_values
– 11/1 に表示されていない 11/3 のユーザーの数。 これには、1 人のユーザー (5
) が含まれます。dcount_retained_values
– 11/1 のすべての新規ユーザーのうち、11/3 まで保持されたユーザー数は何人ですか? 3 つの値 ([0,2,4]
) がありますが、count_churn_values
は 1 (ユーザー3
) です。retention_rate
= 0.75 – 11/1 で最初に表示された 4 人の新規ユーザーのうち 3 人の保持されたユーザー。
レコード
R=9
、from_TimelineColumn
=2019-11-02
、to_TimelineColumn
=2019-11-04
:- このレコードは、11/2 に最初に表示された新規ユーザー (ユーザー
1
と5
) に焦点を当てています。 dcount_new_values
– すべての期間T0 .. from_Timestamp
を通じて表示されていない 11/4 のユーザーの数。 つまり、11/4 に表示されたが、11/1 または 11/2 のどちらにも表示されていないユーザー (そのようなユーザーは存在しません) です。dcount_retained_values
– 11/2 ([1,5]
) のすべての新規ユーザーのうち、11/4 まで保持されたユーザー数は何人ですか? そのようなユーザーは 1 人 ([1]
) で、while count_churn_values
は 1 (ユーザー5
) です。retention_rate
は 0.5 - 11/2 の 2 人の新規ユーザーのうち 11/4 に保持された 1 人のユーザー。
- このレコードは、11/2 に最初に表示された新規ユーザー (ユーザー
週単位のリテンション率とチャーン レート (1 週間)
次のクエリでは、New Users
のコーホート (最初の週に表示されたユーザー) を対象に、前週比のリテンション率とチャーン レートが計算されます。
// Generate random data of user activities
let _start = datetime(2017-05-01);
let _end = datetime(2017-05-31);
range Day from _start to _end step 1d
| extend d = tolong((Day - _start) / 1d)
| extend r = rand() + 1
| extend _users=range(tolong(d * 50 * r), tolong(d * 50 * r + 200 * r - 1), 1)
| mv-expand id=_users to typeof(long) limit 1000000
// Take only the first week cohort (last parameter)
| evaluate new_activity_metrics(['id'], Day, _start, _end, 7d, _start)
| project from_Day, to_Day, retention_rate, churn_rate
出力
from_Day | to_Day | retention_rate | churn_rate |
---|---|---|---|
2017-05-01 00:00:00.0000000 | 2017-05-01 00:00:00.0000000 | 1 | 0 |
2017-05-01 00:00:00.0000000 | 2017-05-08 00:00:00.0000000 | 0.544632768361582 | 0.455367231638418 |
2017-05-01 00:00:00.0000000 | 2017-05-15 00:00:00.0000000 | 0.031638418079096 | 0.968361581920904 |
2017-05-01 00:00:00.0000000 | 2017-05-22 00:00:00.0000000 | 0 | 1 |
2017-05-01 00:00:00.0000000 | 2017-05-29 00:00:00.0000000 | 0 | 1 |
週単位のリテンション率とチャーン率 (完全なマトリックス)
次のクエリでは、New Users
のコーホートの前週比のリテンション率とチャーン レートが計算されます。 前の例で 1 週間の統計を計算した場合、次のクエリでは、from と to の組み合わせごとに NxN テーブルが生成されます。
// Generate random data of user activities
let _start = datetime(2017-05-01);
let _end = datetime(2017-05-31);
range Day from _start to _end step 1d
| extend d = tolong((Day - _start) / 1d)
| extend r = rand() + 1
| extend _users=range(tolong(d * 50 * r), tolong(d * 50 * r + 200 * r - 1), 1)
| mv-expand id=_users to typeof(long) limit 1000000
// Last parameter is omitted -
| evaluate new_activity_metrics(['id'], Day, _start, _end, 7d)
| project from_Day, to_Day, retention_rate, churn_rate
出力
from_Day | to_Day | retention_rate | churn_rate |
---|---|---|---|
2017-05-01 00:00:00.0000000 | 2017-05-01 00:00:00.0000000 | 1 | 0 |
2017-05-01 00:00:00.0000000 | 2017-05-08 00:00:00.0000000 | 0.190397350993377 | 0.809602649006622 |
2017-05-01 00:00:00.0000000 | 2017-05-15 00:00:00.0000000 | 0 | 1 |
2017-05-01 00:00:00.0000000 | 2017-05-22 00:00:00.0000000 | 0 | 1 |
2017-05-01 00:00:00.0000000 | 2017-05-29 00:00:00.0000000 | 0 | 1 |
2017-05-08 00:00:00.0000000 | 2017-05-08 00:00:00.0000000 | 1 | 0 |
2017-05-08 00:00:00.0000000 | 2017-05-15 00:00:00.0000000 | 0.405263157894737 | 0.594736842105263 |
2017-05-08 00:00:00.0000000 | 2017-05-22 00:00:00.0000000 | 0.227631578947368 | 0.772368421052632 |
2017-05-08 00:00:00.0000000 | 2017-05-29 00:00:00.0000000 | 0 | 1 |
2017-05-15 00:00:00.0000000 | 2017-05-15 00:00:00.0000000 | 1 | 0 |
2017-05-15 00:00:00.0000000 | 2017-05-22 00:00:00.0000000 | 0.785488958990536 | 0.214511041009464 |
2017-05-15 00:00:00.0000000 | 2017-05-29 00:00:00.0000000 | 0.237644584647739 | 0.762355415352261 |
2017-05-22 00:00:00.0000000 | 2017-05-22 00:00:00.0000000 | 1 | 0 |
2017-05-22 00:00:00.0000000 | 2017-05-29 00:00:00.0000000 | 0.621835443037975 | 0.378164556962025 |
2017-05-29 00:00:00.0000000 | 2017-05-29 00:00:00.0000000 | 1 | 0 |
週単位のリテンション率とルックバック期間
次のクエリでは、lookback
期間を考慮した場合の New Users
のコーホートのリテンション率を計算します。New Users
のコーホートを定義するために使用される ID のセットを含む表形式のクエリです (このセット内の表示されないすべての ID は New Users
です)。 このクエリでは、分析期間中の New Users
のリテンション動作が調べられます。
// Generate random data of user activities
let _lookback = datetime(2017-02-01);
let _start = datetime(2017-05-01);
let _end = datetime(2017-05-31);
let _data = range Day from _lookback to _end step 1d
| extend d = tolong((Day - _lookback) / 1d)
| extend r = rand() + 1
| extend _users=range(tolong(d * 50 * r), tolong(d * 50 * r + 200 * r - 1), 1)
| mv-expand id=_users to typeof(long) limit 1000000;
//
let lookback_data = _data | where Day < _start | project Day, id;
_data
| evaluate new_activity_metrics(id, Day, _start, _end, 7d, _start, lookback_data)
| project from_Day, to_Day, retention_rate
出力
from_Day | to_Day | retention_rate |
---|---|---|
2017-05-01 00:00:00.0000000 | 2017-05-01 00:00:00.0000000 | 1 |
2017-05-01 00:00:00.0000000 | 2017-05-08 00:00:00.0000000 | 0.404081632653061 |
2017-05-01 00:00:00.0000000 | 2017-05-15 00:00:00.0000000 | 0.257142857142857 |
2017-05-01 00:00:00.0000000 | 2017-05-22 00:00:00.0000000 | 0.296326530612245 |
2017-05-01 00:00:00.0000000 | 2017-05-29 00:00:00.0000000 | 0.0587755102040816 |