规则圈选中所使用的画像标签数据是离线计算出来的,大部分在计算过程中剔除了很多明细信息,仅保留了最关键的画像内容,即某日某用户的标签值。虽然画像数据是浓缩精简后的核心数据,但在很多人群圈选场景中依赖行为明细数据,比如运营人员希望找出2022-08-15 10:00:00到2022-08-15 12:00:00之间通过手机客户端点赞了某篇文章的用户,此时只有使用行为明细数据才能找到满足条件的用户。行为明细数据主要包含五大要素:
- WHO: 行为涉及的用户,比如UserId或者DeviceId。
- WHEN: 行为发生的时间,一般存储的是毫秒时间戳。
- WHERE: 行为发生的具体页面、功能模块。
- HOW: 行为发生的方式,比如点击、分享、评论等操作,还包括当时使用的操作系统、网络类型等。
- WHAT: 行为关联的相关内容,比如点赞的文章ID,评论的视频ID,分享的直播ID等。
以该五要素为例,可以构建如图5-24所示的行为明细数据表,其中user_id对应了WHO, action_time对应了WHEN, operation_page对应WHERE, action_type对应了HOW, action_content对应了WHAT。其中action_type和action_content只简单记录了行为类型和关联到的文章ID,其也可以通过JSON字符串的方式存储更多相关信息,比如操作时的网络类型、操作系统、App版本,文章的分类、文章作者、文章发布时间等。
基于图5-24中的行为明细数据表可以解决上文提到的运营需求,其SQL语句如下所示。其中通过action_time严格限制了行为发生时间,通过operation_page限定了通过客户端操作。
代码语言:javascript复制SELECT
DISTINCT user_id
FROM
userprofile_demo.userprofile_action_detail_table_ch
WHERE
p_date = '2022-08-15'
AND action_time >= 1660528800000
AND action_time <= 1660536000000
AND (
operation_page = 'APP_NEWS'
OR operation_page = 'APP_PROFILE'
)
AND action_type = 'LIKE'
AND action_content = '101'
上述示例中的行为明细数据存储在ClickHouse表中,其数据生产方式主要有两种。第一种使用Hive表导入,首先需要找到离线行为明细数据,然后将数据整理后写入到ClickHouse中;第二种直接消费实时行为数据并写入ClickHouse中,其圈选结果也更具时效性。之前章节已经介绍过如何将数据写入到ClickHouse中,此处不再赘述。在消费实时数据过程中需要进行数据整理,如果业务需求中需要关联其他属性(比如文章的类型),需要在落盘ClickHouse前进行补充完善。图5-25展示了基于两种方式生成行为明细数据的主要流程。
行为明细数据包含时间属性,可以计算出每一个用户按时间排序后的行为序列,基于该序列可以实现行为序列圈选。比如圈选出点赞文章后又分享文章的用户,找到收藏商品后最终购买了商品的用户。在行为明细圈选时可以结合画像标签数据一起使用,比如找到在某时间段通过手机客户端点赞了某篇文章的北京市男性用户,可以直接关联画像宽表进行计算。
本文节选自《用户画像:平台构建与业务实践》,转载请注明出处。