一、用户活跃度分析:
需求1:最近一个月内,每个用户的最大连续活跃天数
解释:这个需求旨在找出每个用户在最近一个月内连续活跃的最长天数。这有助于识别高度活跃的用户群体。
为什么做:
用户分层:根据连续活跃天数,可以将用户分为不同的活跃层级,从而可以更好的实施精准的用户运营策略。
活跃度监测:了解用户的最大连续活跃天数变化,可以监测用户活跃度的变化趋势,及时发现并应对可能的用户活跃度下降。
怎么做:调整start_dt和end_dt以确保它们都在查询的最近一个月范围内。
如果start_dt早于这个范围,则将其设置为范围的开始(即查询日期向前推30天);
如果end_dt是'9999-12-31',则将其替换为查询的当前日期('2022-11-23')。
然后,它计算从调整后的start_dt到end_dt的连续天数差(加1以包含起始和结束日期),并将这个值命名为x1,再求x1的最大值
需求2:最近一个月内,连续活跃[1-10)天的人数,[10-20)天的人数,[20+ 天的人数
解释:这个需求将用户按照连续活跃天数划分为不同的区间,并统计每个区间内的人数。
为什么做:
用户活跃度分布:了解不同活跃度区间的用户分布情况,有助于评估用户整体的活跃度水平。
运营策略制定:针对不同活跃度的用户群体,可以制定不同的运营策略,如激励低活跃度用户提高活跃度,或维护高活跃度用户的持续使用。
怎么做:调整start_dt和end_dt以确保它们都在查询的最近一个月范围内。
如果start_dt早于这个范围,则将其设置为范围的开始(即查询日期向前推30天);
如果end_dt是'9999-12-31',则将其替换为查询的当前日期('2022-11-23')。
然后,它计算从调整后的start_dt到end_dt的连续天数差(加1以包含起始和结束日期),并将这个值命名为x1。
根据CASE表达式将每个设备的deviceid根据其x1值分配到相应的范围内(1-10天、10-20天、20天以上),
并使用COUNT(DISTINCT ...)来统计每个范围内不同设备的数量。
需求3:最近一个月内,沉默天数超过3天的有多少人,超过5天有多少人
解释:这个需求统计了在最近一个月内,沉默(未活跃)天数超过特定值(如3天、5天)的用户数量。
为什么做:
用户流失预警:沉默天数较长的用户可能面临流失风险,通过统计这些数据,可以及时发现并采取措施挽回这些用户。
运营效果评估:如果某项运营活动或产品更新后,沉默天数超过特定阈值的用户数量显著增加,可能说明该活动或更新并未达到预期效果,需要进一步优化。
怎么做:
二、流量多维分析
流量分析-session会话聚合信息表构建:
解释:根据业务需求,将用户的会话数据按照一定规则进行聚合,形成会话聚合信息表。
为什么这么做:通过构建会话聚合信息表,可以全面记录和分析这些互动行为,从而洞察用户的兴趣、偏好和行为模式。
怎么做:使用了collect_list函数收集所有符合条件的timestamp和url组合(仅当eventid为pageView时),
然后使用sort_array排序这些组合(只取第一个元素),
最后通过split函数分割字符串以获取URL部分
流量分析-cube(多维数据立方体)
解释:将原始数据加载到数据仓库中,并按照多维数据立方体模型进行转换和聚合
为什么做:多维数据立方体允许从多个维度对流量数据进行深入分析,如时间、地域、设备类型、用户属性等。
这种多维分析有助于发现隐藏在数据背后的规律和趋势。
怎么做:通过各种维度分组,然后进行group by分组,将不同维度分组的结果union all合并在一张表中
三、用户新增、留存指标分析
新增用户统计
解释:新增用户数量是衡量产品市场吸引力的直接指标
为什么这么做:跟踪新增用户数量可以揭示用户增长的趋势,这对于制定长期规划和预算至关重要
留存用户统计
解释:留存用户是那些继续使用产品并可能在未来产生更多价值的用户。留存率的高低直接反映了用户对产品的忠诚度和满意度。
为什么做:通过分析不同时间段或不同用户群体的留存率,可以识别出产品中的问题区域,
如用户流失的高发期、特定功能或版本的接受度低等,从而针对性地进行改进。
四、漏斗主题dws层表设计
解释:用于分析用户在完成某个目标(如购买商品、注册账号等)过程中,从起始步骤到最终完成步骤的转化情况。
为什么做:DWS层通常用于对DWD层的数据进行进一步的汇总和聚合,以支持更高效的查询和分析。
对于漏斗分析,这包括按步骤对用户行为进行分类和计数,计算每一步的转化率等。
怎么做:根据设备编号分组,将时间戳和事件名称拼接
将一个设备的多个行为存储到数组中,并且排序
将数组中元素按照:分隔符拼接成一个字符串
在ads层创建漏斗转化率表
解释:ADS层是数据仓库中最接近应用层的一层,它主要用于支持各种分析需求,包括报表生成、可视化展示等。
将漏斗转化率表放在ADS层,可以更方便地直接为各种应用提供数据支持。
为什么做:ADS层可以根据具体的应用需求,对DWS层的数据进行进一步的加工和优化,以适应特定的查询模式。
对于漏斗分析来说,这可能包括预计算某些关键指标、创建索引等,以提高查询性能。
怎么做:指标口径:转化率=当前步骤转化人数/上一步转化人数
总转化率=当前步骤转化人数/第一步转化人数
使用FIRST_VALUE函数获取每个漏斗的第一步的user_count,然后计算当前步骤的user_count与第一步user_count的百分比。
五、事件归因分析
首次触点归因
解释:待归因事件中,最早发生的事件,被认为是导致业务结果的唯一因素
指标口径【规则】
目标转化总次数 = 待归因事件出现次数 * 权重
贡献度 = 当前待归因事件转化总次数/所有待归因事件转化总次数
为什么做:首次触点通常是用户首次了解产品或品牌的渠道,它对于建立用户对品牌的初步认知和兴趣至关重要。
怎么做:按model_name(模型名称)、attribution_strategy(归因策略)、target_event(目标事件)、wait_attribution(等待归因期)进行分组。
计算每个分组内weight(权重)的总和,并将这个总和命名为x1
使用了窗口函数sum(x1) over(partition by model_name,attribution_strategy)来计算每个model_name和attribution_strategy分组内所有x1的总和。
计算x1(即每个分组内weight的总和)占其所属model_name和attribution_strategy分组内所有x1总和的百分比,作为contribution(贡献百分比)