埋点事件属性设计方案

本文详细解释了事件分类,包括预制事件(如应用启动和页面动作)、页面事件(page_view和page_leave)以及元素事件的特点。强调了公共属性的重要性,如event_type和page_id,并提到第三方埋点系统的角色。此外,还讨论了如何控制事件属性和提供示例属性列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事件分类

按事件的作用对象来给事件分为三大类

事件类型作用对象描述示例
预制事件应用程序

作用于整个应用程序本身,通常由埋点采集系统自身上报,不需要额外埋点;

每个端的预制事件都不一样,比如小程序、Android、iOS、H5等都有自己特定的预制事件

app_launch 应用启动;

页面事件页面页面的进入和离开page_view 页面浏览
元素事件元素元素的点击和曝光,自定义事件

公共属性

所有自定义事件都需要上报的公共属性

属性是否在火山里设置成公共属性描述
event_type事件类型:click 点击,exposure 曝光,access 访问
page_id页面ID
page_url页面地址

1. 预制事件

预制事件通常由第三方的埋点系统自己上报,市面上有比较多的第三方埋点系统,例如神策、GrowingIO、火山引擎Finder、阿里云Quick Audience等

2. 页面事件

2.1 页面打开事件 page_view

每一个页面进入的时候,需要上报 page_view 事件,事件名称为 页面浏览

page_view 包含的属性

属性ID属性名
site_id站点ID
event_type事件类型,固定为 access
page_id页面ID
page_url页面地址
pre_page_id前向页面ID
pre_page_url前向页面地址

2.2 页面离开事件 page_leave

每一个页面离开的时候,需要上报 page_leave 事件,事件名称为 页面离开

page_leave 包含的属性

属性ID属性名
event_type事件类型,固定为 access
page_id页面ID
page_url页面地址
duration页面停留时长(毫秒)

3. 元素事件

事件的通用属性,每个元素事件都需要上传

属性描述示例值
event_type事件类型:click 点击,exposure 曝光,access 访问click
page_id页面ID,每个页面有一个唯一ID(多平台的同一个页面应该是同一个ID)P103
page_url页面完整URL,带参数
area_id区域位置ID,每个区域位置都有一个唯一ID,是一组元素的集合P100_A02
item_position元素相对区域中的下标位置,从左到右,从上到下,从0开始0
item_id元素ID, 每个元素都有一个唯一ID,是最小单元,静态元素以FI_开头,在系统里面维护,如果为动态元素,则值为 DI_{area_id}_{position}FI_3975
item_name元素名称,和元素ID一一对应,动态元素则根据业务需求传入和元素ID对应的名称搜索框

除了通用属性外,通常根据不同的业务,或操作展现性质,会有不同的属性,为了让事件属性不要膨胀,建议在埋点管理系统中将事件和事件属性进行严格管控。

可以规定事件创建的时候,属性必须是从现有的属性池中选择,而不是随意添加。

如果列表中没有,则需要先维护属性列表,才能上报该属性。

下表是一个常见的属性列表例子供产考

属性数据类型描述示例值
show_textstring显示的文本内容搜索
input_textstring输入的文本内容
is_checkedint是否选中 :1 是,0 否1
is_successint是否成功 :1 是,0 否1
medium_idstring素材id100031
medium_urlstring素材文件urlhttps://www.xxx.com/aaa.jpg
target_urlstring素材跳转目标urlhttps://www.xxx.com
extensionstring扩展信息Json值
longitudestring经度30.17911
latitudestring维度120.560645
order_nostring订单号203010102020

其他关于埋点的文章:用户行为埋点采集方案架构概览-优快云博客

### 如何在代码中实现埋点事件设置的最佳实践 #### 基于可视化埋点的技术特点 通过使用易观方舟的可视化埋点技术,可以利用位置、属性等方式精确定位到事件触发元素,并能够灵活地获取与该事件相关的信息。这种技术不仅适用于安卓/IOS/JS等不同平台,还支持多种架构形式,如原生页面、Hybrid模式(App内嵌入网页),以及mPaaS/React Native等复杂场景[^1]。 #### 实现按钮点击事件埋点 对于具体的埋点实现,可以通过JavaScript来捕获特定UI组件的行为。例如,在HTML文档中定义一个按钮,并为其绑定`click`事件监听器。当用户点击此按钮时,调用自定义函数`trackEvent`记录事件类型、按钮ID和时间戳: ```javascript // 跟踪按钮点击事件 const button = document.getElementById('myButton'); // 获取按钮元素 button.addEventListener('click', function() { trackEvent('button_click', { buttonId: 'myButton', timestamp: Date.now() }); // 记录点击事件并添加按钮ID和时间戳 }); ``` 上述代码展示了如何手动为单个DOM节点配置埋点逻辑[^2]。 #### 自动化工具的支持 如果项目规模较大或者希望减少人工干预,则可引入自动化解决方案,比如OpenTelemetry框架。一旦集成完成,它能够在后台自动收集诸如Spring MVC请求处理流程或数据库交互之类的性能指标数据而无需额外编码努力[^3]。 #### 完整生命周期管理策略 为了更高效地管理和维护整个系统的埋点功能,建议采用覆盖全生命周期的方法论来进行治理。这通常涉及以下几个方面: - **埋点设计**: 明确哪些业务动作需要被监测; - **埋点审核**: 确保新增加的数据采集不会影响现有系统稳定性; - **埋点开发&测试**: 开发相应接口并将其实现在应用程序里同时验证其准确性; - **埋点监控**: 长期观察实际运行状况以便及时调整优化[^4]。 以上各阶段紧密配合才能构建起一套健全有效的埋点体系。 ```python def example_track_event(event_type, properties): """ A Python-based mockup of a tracking event. Args: event_type (str): The type of the tracked event e.g., "page_view", "purchase". properties (dict): Additional information about this specific instance of an event. Returns: None """ import datetime log_entry = f"{datetime.datetime.utcnow().isoformat()} - Event Type:{event_type} Properties:{properties}" with open("/path/to/logfile.txt", mode='a') as file_handler: file_handler.write(log_entry + "\n") example_track_event("form_submit", {"userId": 12345}) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五只鸭子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值