activity_metrics 插件

计算有用的指标,有用的指标包括非重复计数值、新值的非重复计数、保留率和流失率。 此插件与 activity_counts_metrics 插件的不同之处在于,每个时间窗口将与前面的所有时间窗口进行比较。

语法

T| evaluateactivity_metrics(IdColumn,TimelineColumn, [Start,End,] Window [,dim1,dim2, ...])

详细了解语法约定

参数

客户 类型​​ 必需 说明
T string 用于计算活动指标的输入。
IdCoumn string 列的名称,其 ID 值表示用户活动。
TimelineColumn string 表示时间线的列的名称。
Start datetime 分析开始时段。
End datetime 分析结束时段。
步骤 十进制、日期/时间或时间跨度 分析窗口时段。 该值也可以是 weekmonthyear 的字符串,在这种情况下,所有时段分别是 startofweekstartofmonthstartofyear
dim1, dim2, ... dynamic 维度列的数组,用于切分活动指标计算。

返回

该插件返回一个表,其中包含每个时间线时段和每个现有维度组合的非重复计数值、新值的非重复计数、保留率和流失率。

输出表架构如下:

TimelineColumn dcount_values dcount_newvalues retention_rate churn_rate dim1 .. dim_n
类型:自 TimelineColumn 起 long long double Double .. .. ..

说明

保留率定义

一段时间内 Retention Rate 的计算方法为:

在该时段回头的客户数 /(除以)该时段最初的客户数

其中的 # of customers returned during the period 定义为:

该时段结束时的客户数 -(减)在该时段赢得的新客户数

Retention Rate 可以在 0.0 到 1.0 之间变化。评分越高,表示回头用户数越多。

流失率定义

一段时间内 Churn Rate 的计算方法为:

该时段内丢失的客户数 /(除以)该时段最初的客户数

其中的 # of customer lost in the period 定义为:

该时段最初的客户数 -(减)该时段内返回的客户数

Churn Rate 可以在 0.0 到 1.0 的范围内变化。评分越高,表示未重新使用该服务的用户数越多。

流失率与保留率 流失率与保留率派生自 Churn RateRetention Rate 的定义。 以下计算始终正确:

[Retention Rate] = 100.0% - [Churn Rate]

示例

每周保留率和流失率

下一个查询计算每周保留率和流失率。

// Generate random data of user activities
let _start = datetime(2017-01-02);
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
//
| evaluate activity_metrics(['id'], _day, _start, _end, 7d)
| project _day, retention_rate, churn_rate
| render timechart

输出

_day retention_rate churn_rate
2017-01-02 00:00:00.0000000 NaN NaN
2017-01-09 00:00:00.0000000 0.179910044977511 0.820089955022489
2017-01-16 00:00:00.0000000 0.744374437443744 0.255625562556256
2017-01-23 00:00:00.0000000 0.612096774193548 0.387903225806452
2017-01-30 00:00:00.0000000 0.681141439205955 0.318858560794045
2017-02-06 00:00:00.0000000 0.278145695364238 0.721854304635762
2017-02-13 00:00:00.0000000 0.223172628304821 0.776827371695179
2017-02-20 00:00:00.0000000 0.38 0.62
2017-02-27 00:00:00.0000000 0.295519001701645 0.704480998298355
2017-03-06 00:00:00.0000000 0.280387770320656 0.719612229679344
2017-03-13 00:00:00.0000000 0.360628154795289 0.639371845204711
2017-03-20 00:00:00.0000000 0.288008028098344 0.711991971901656
2017-03-27 00:00:00.0000000 0.306134969325153 0.693865030674847
2017-04-03 00:00:00.0000000 0.356866537717602 0.643133462282398
2017-04-10 00:00:00.0000000 0.495098039215686 0.504901960784314
2017-04-17 00:00:00.0000000 0.198296836982968 0.801703163017032
2017-04-24 00:00:00.0000000 0.0618811881188119 0.938118811881188
2017-05-01 00:00:00.0000000 0.204657727593507 0.795342272406493
2017-05-08 00:00:00.0000000 0.517391304347826 0.482608695652174
2017-05-15 00:00:00.0000000 0.143667296786389 0.856332703213611
2017-05-22 00:00:00.0000000 0.199122325836533 0.800877674163467
2017-05-29 00:00:00.0000000 0.063468992248062 0.936531007751938

Table showing the calculated retention and churn rates per seven days as specified in the query.

不同的值和不同的“新”值

下一个查询计算每周的不同值和“新”值(上一个时间窗口中没有出现的 ID)。

// Generate random data of user activities
let _start = datetime(2017-01-02);
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
//
| evaluate activity_metrics(['id'], _day, _start, _end, 7d)
| project _day, dcount_values, dcount_newvalues
| render timechart

输出

_day dcount_values dcount_newvalues
2017-01-02 00:00:00.0000000 630 630
2017-01-09 00:00:00.0000000 738 575
2017-01-16 00:00:00.0000000 1187 841
2017-01-23 00:00:00.0000000 1092 465
2017-01-30 00:00:00.0000000 1261 647
2017-02-06 00:00:00.0000000 1744 1043
2017-02-13 00:00:00.0000000 1563 432
2017-02-20 00:00:00.0000000 1406 818
2017-02-27 00:00:00.0000000 1956 1429
2017-03-06 00:00:00.0000000 1593 848
2017-03-13 00:00:00.0000000 1801 1423
2017-03-20 00:00:00.0000000 1710 1017
2017-03-27 00:00:00.0000000 1796 1516
2017-04-03 00:00:00.0000000 1381 1008
2017-04-10 00:00:00.0000000 1756 1162
2017-04-17 00:00:00.0000000 1831 1409
2017-04-24 00:00:00.0000000 1823 1164
2017-05-01 00:00:00.0000000 1811 1353
2017-05-08 00:00:00.0000000 1691 1246
2017-05-15 00:00:00.0000000 1812 1608
2017-05-22 00:00:00.0000000 1740 1017
2017-05-29 00:00:00.0000000 960 756

Table showing the count of distinct values (dcount_values) and of new distinct values (dcount_newvalues) that didn't appear in previous time window as specified in the query.