大数据之路 读书笔记 Day3

回顾:Day 2 总结了浏览器日志采集的过程 回看点击:大数据之路 读书笔记 Day 2

无线端客户的日志采集

无线端客户日志采集名为UserTrack(UT)的SDK来采集,UT将采集称为事件,常用的包括页面事件(即页面浏览)、控件点击事件(即页面交互),下面会给大家讲到。

SDK、UK是什么?

  • SDK 是 “Software Development Kit” 的缩写,中文意译为“软件开发工具包”。它是由软件、硬件、操作系统或编程语言的制造商提供的一套开发工具,旨在帮助软件开发者为特定的平台、系统或语言创建应用程序。
  • 在阿里巴巴的大数据实践中,UT通常指的是UserTrack, UserTrack主要用于收集用户行为数据,包括页面浏览、页面交互、控件点击等事件,这些数据对于后续的数据分析、用户行为理解、产品优化和个性化推荐等都至关重要。UT就是阿里巴巴内部用于日志采集的一种软件开发工具包,也就是SDK。

1. 页面事件

1)日志采集内容

页面事件日志 1.设备及用户的基本信息 2.被访问页面的信息,如商品详情页的商品ID、所属店铺 3.访问基本路径,如页面来源、来源的来源

2)日志采集时间

接口方法调用
页面展现接口,记录进入页面时的状态,但不发送日志
页面退出接口,可以是退出淘宝,也可以是返回上一页,发送日志
添加页面扩展信息接口,离开前给页面添加相关参数,比如添加店铺ID,店铺类别等

思考:为什么要在调用退出接口时才发送日志?

  • 确保日志完整性:在用户离开页面时发送日志,可以确保所有相关的用户行为和页面状态信息都被完整记录下来。如果在页面加载时立即发送日志,可能会遗漏后续发生的用户互动或其他重要事件。
  • 减少无效或部分日志:如果在页面刚加载时就发送日志,可能会产生很多无效的日志条目,特别是对于那些用户快速浏览后离开的页面。在退出时发送日志可以避免这种情况,确保每条日志都代表了完整的用户会话。
  • 方便分析师计算用户停留时间
  • 处理异常和错误:在用户离开页面时发送日志,还可以捕捉到可能发生的异常或错误,这些信息对诊断问题和改进系统至关重要

3)特别的,UT还有一个透传参数功能

UserTrack的透传参数功能允许将当前页面的某些信息传递到下一个或后续多个页面的日志记录中。例如,如果一个用户在电商网站上搜索了"连衣裙",进入有很多商品的页面后,点击某个商品A进入商品详情页,那么这个搜索词’'连衣裙’的信息可以被透传至用户接下来访问的所有页面的日志中,包括商品A详情页,这样即使用户浏览多个页面,系统也能持续跟踪最初的搜索意图。

2. 控件点击及其他事件

  • 控件点击事件的逻辑比较简单,就是操作页面上的某个控件,因此只需要把相关基础信息告诉采集SDK就可以了
  • 其他事件:用户可以根据业务场景需求,自定义采集相关信息。UT提供了一个自定义埋点类,包含(1)事件名称(2)事件时长(3)事件所携带的属性(4)事件对应的页面

埋点是什么意思
"埋点"是指在应用程序或网站中设定的特定位置,用于收集用户行为或系统状态数据的技术。埋点可以捕捉用户的各种操作,如点击、滑动、购买等,以及页面加载、错误报告等事件。
自定义埋点是什么意思
允许开发者根据自身需求定义新的事件或指标,比如特定的用户操作、业务流程中的特定步骤等。自定义埋点类就是指开发者自己定义的一系列数据采集点,用于收集特定业务场景下的数据。
自定义埋点类的使用,意味着开发者可以更灵活地监控和分析特定的业务逻辑或用户行为,而不仅仅是通用的预设事件。

3. 特殊场景

一次浏览,一个点击就会产生一条日志,用来处理普通业务是足够的,但阿里业务体量巨大,为了平衡日志大小,减少流量消耗、采集服务器压力、网络传输压力等,采集SDK提供了聚合功能。

例如曝光日志。如果一个商品的一次曝光就对应一条日志的话,在搜索结果页的一次滚屏浏览过程中将产生几十条甚至上百条日志。从下游使用及分析的角度来说,其实只是想知道哪些内容被曝光。此时为了平衡业务需求及减少全链路资源消耗,采集SDK提供了本地聚合功能。在客户端端对这类日志进行聚合,上传聚合后的日志到采集服务器即可。同时对于一些只需要计数,而不需要知道具体内容的场景,如需要分析某些接口的调用次数,此功能就更加凸显出其作用了。

又例如,在无线客户端用户的访问行为路径存在明显的回退行为(如点击回退按钮、各种滑屏等)
“双11”主会场页>女装分会场>女装店铺A>回退到女装分会场>女装店铺B,在这个访问路径中,若只是按照普通的路径来处理,则认为第二次浏览的女装分会场来源为店铺A,就会把女装分会场的一次浏览效果记为女装店铺A带来的。倘若这样处理,就会发现类似的活动承接页其来源有一大部分均为各类详情页(店辅详情页/商品详情页),这必然干扰到分析。所以针对这种场景,阿里开发人员利用页面的生命周期,识别页面的复用,配合栈的深度来识别是否是回退行为。

上述举了两个特殊场景下日志采集的处理,实际生产中会面临更多具体问题,在这里不再赘述。

4. H5(HTML5)&Native 日志统一

H5和Native的区别是什么?
Native应用和H5(Web应用)的主要区别在于它们的开发方式、运行环境和性能表现:

  1. 开发方式
  • Native:使用特定平台的编程语言和工具开发,如iOS上的Swift或Objective-C,Android上的Java或Kotlin。
  • H5 (Web):使用Web技术栈开发,主要包括HTML5、CSS和JavaScript。
  1. 运行环境
  • Native:直接运行在设备的操作系统上,充分利用硬件资源。
  • H5 (Web):运行在设备的浏览器内,依赖于浏览器引擎的渲染和执行能力。
  1. 性能
  • Native:通常提供更流畅的用户体验和更高的性能,因为它们可以直接访问设备的硬件和系统资源。
  • H5 (Web):性能可能略逊于Native应用,尤其是在复杂的交互和图形处理方面,但随着Web技术的发展,差距正在逐渐缩小。
  1. 跨平台性
  • Native:需要为每个平台单独开发和维护。
  • H5 (Web):可以一次开发,多平台部署,具有良好的跨平台特性。
  1. 功能访问
  • Native:可以访问设备的所有功能,如相机、GPS、文件系统等。
  • H5 (Web):受限于浏览器的安全策略,访问设备功能可能需要额外的权限或通过插件/桥接实现。
  1. 更新和分发
  • Native:需要通过应用商店审核,更新可能需要用户手动下载新版本。
  • H5 (Web):可以即时更新,用户访问时自动获取最新版本,无需额外的安装步骤。
    简而言之,Native应用更适合追求高性能和深度集成的场景,而H5应用则在跨平台和快速迭代方面更有优势。

是统一到native里还是h5里呢?

阿里选择统一到native当中,原因有二:

  • 这样采集SDK可以采集到更多设备相关的数据,这在移动端的分析尤为重要
  • 采集SDK处理日志,会先在本地缓存,然后借机上传,然后在网络状况不佳时延迟上报,保证数据不丢失

5. 设备标识

  • 需要设备标识的原因:很多日志行为不要求登录,这就导致采集日志没有用户ID,PC端可以用cookie信息作为唯一标识,但是app我们就要另想办法。
  • 单app公司对设备唯一标识的需求不那么紧迫

单APP公司较少考虑设备唯一标识,因为:

  • 用户群体区分:
    单一APP公司主要关注的是其APP的用户群,而不是跨多个APP的用户识别。设备唯一标识在单一APP环境下主要用于统计和分析目的,如用户活跃度、留存率、转化率等,而不涉及跨APP用户身份的统一识别。
  • 营销和广告定位:
    多APP公司可能需要在不同APP间共享用户数据,以便进行更精准的营销和广告投放。单一APP公司则主要在其自身平台上进行这些活动,因此对跨平台用户标识的需求较低。
  • 数据孤岛:
    对于单一APP公司,数据通常集中在单一的数据库或分析系统中,不需要特别处理跨平台数据融合的问题。这减少了数据管理的复杂性和成本。
  • 苹果之前使用UDID作为设备唯一识别,但现在因为涉及数据隐私等问题已被禁用,阿里用的是UTDID。

UTDID 是一种用于移动设备的唯一标识符,它在阿里云的移动推送服务和其他场景中扮演着重要角色。UTDID 全称是 Unique Terminal Device IDentifier,它是一种软件级别的设备ID,由应用在首次调用时根据特定算法生成,并持久化存储在移动设备的存储组件中。这意味着每当同一应用再次使用 UTDID 时,它将从系统存储组件中获取先前生成的值,以保持标识符的唯一性和一致性。
UTDID 的主要用途包括:

  • 推送消息识别:在推送通知服务中,UTDID 被用来区分不同的终端设备,确保消息能够准确地推送到指定的设备上。
  • 数据统计与分析:UTDID 可用于收集和分析设备的使用情况,帮助开发者和运营者更好地理解用户行为。
  • 个性化服务:通过 UTDID,服务提供商可以提供更加个性化的体验,比如推送定制化的内容或广告。
  • 设备绑定与认证:在一些安全敏感的应用场景中,UTDID 可用于设备的绑定和认证过程。

6. 日志传输

先储存在客户端本地,然后再伺机上传。考虑日志大小及合理性(如单条日志太大可能是错误日志),同时还要考虑上传时网络耗时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/753780.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

并发编程基础概念

相关概念 并行 并行是指同一个时刻,多个任务同时进行。只有在多核CPU下才会发生。 并发 并发是指单个CPU在不同任务之间来换切换工作,但是同一时刻只有一个任务在工作。由于CPU的切换速度很快,给人的感受是多个任务在一起运行。 串行 串行…

破解对LabVIEW的偏见

LabVIEW被广泛应用于科学研究、工程测试和自动化控制领域,具有专业性和高效的开发能力。尽管有人对其存在偏见,认为不如C语言,但LabVIEW的图形化编程、强大集成能力、丰富社区支持和专业功能,使其在许多实际应用中表现出色。通过多…

山东大学-科技文献阅读与翻译(期末复习)(选择题+翻译)

目录 选择题 Chapter1 1.which of the following is not categorized as scientific literature 2.Which of the followings is defined as tertiary(三级文献) literature? 3.Which type of the following international conferences is listed as Number one conference…

jeecg启动微服务并注册到本地nacos

1、maven勾选环境和微服务模式,并刷新 2、pom文件修改nacos注册地址 3、本地启nacos gateway 和自己想要的cloud下面的模块pos sys 4、打断点测试接口,访问gateway端口和想要测试的地址

Java-记一次Springboot版本升级导致的问题

前言 根据相关情况,需要将SpringBoot的版本由原来的2.1.8.RELEASE版本升级至2.3.8.RELEASE。 启动项目后报错: 具体报错信息如下: Description: An attempt was made to call a method that does not exist. The attempt was made from the…

互联网信任危机:Perplexity搜索引擎如何破坏内容创作者的权益

前段时间,Perplexity搜索引擎还是一颗冉冉升起的明日之星,手握巨额投资,有很美好的未来前景,这时,如果不出意外的话,要出意外。 喜好儿网 Perplexity这家公司,它正试图通过创建一个新型的“答…

UI设计必备的6个网站,赶紧收藏!

6个UI设计必备网站,找素材、找灵感一步到位,赶紧收藏起来吧! 1、菜鸟图库 UI图片素材-UI图片模板免费下载 - 菜鸟图库 菜鸟图库提供了超多免费设计素材,在这里你可以找到平面、UI、电商等设计类素材,还有大量的高清背…

数字信号处理实验四(FIR数字滤波器设计)

FIR数字滤波器设计(2学时) 要求: 设计一个最小阶次的低通FIR数字滤波器,性能指标为:通带0Hz~1500Hz,阻带截止频率2000Hz,通带波动不大于1%,阻带波动不大于1%,采样频率为8…

杂谈咋说-事业编与公务员建议收藏!

杂谈咋说-事业编与公务员建议收藏! 什么是铁饭碗 在中国,「铁饭碗」这个词常常被用来形容那些稳定、有保障的工作。 当我们谈论"铁饭碗"时,人们往往会将公务员和事业编制人员进行比较。 尽管这两者都是相对稳定的工作&#xff…

Cesium 在加载 3dTiles 如何如何获取ID

文章目录 问题分析问题 加载的 3dTiles 打印content.getFeature(i)出来后如图所示,想获取到id值 分析 var tileset = mapLayer.init3dTileLayer({url:it.url,maximumMemoryUsage: it.maximumMemoryUsage,

golang使用RSA加密和解密

目录 前提 生成RSA公钥和密钥 读取文件 加密 解密 前提 本文章我们是先读取的RSA文件,所以需要先生成RSA,并且保存在文件中,再进行加密 生成RSA公钥和密钥 如果没有公钥和密钥,可以先看看我上一篇文章 生成RSA公钥和密钥h…

一个AI图片生成工具导航网站

上周末上线了一个AI图片生成工具导航网站,主要是面向AI图片工具这个垂直领域。 https://chatgpt-image-generator.com/ 目标是通过收集当下的一些工具,然后进行分类管理,一方面方便大家发现新的工具,另一方面能够更加有针对性、…

Kotlin vs Java:深入解析两者之间的最新差异与优劣(全面指南)

文章目录 1. 概述2. 语法简洁性3. 空安全4. 扩展函数5. 协程6. 数据类7. 智能类型转换8. 默认参数与命名参数9. 无 checked exceptions10. 单例模式总结 🎉欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨…

python CSSE7030

1 Introduction In this assignment, you will implement a (heavily) simplified version of the video game ”Into The Breach”. In this game players defend a set of civilian buildings from giant monsters. In order to achieve this goal, the player commands a s…

上位机图像处理和嵌入式模块部署(mcu之静态库生成和使用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 很多同学做了很长时间的mcu和keil开发,都认为keil工程中必须包含所有的源代码,其实这是不对的。如果有一些代码我们不希望别…

游戏AI的创造思路-技术基础-深度学习(7)TF

重头戏TF,汽车人,变形~~~~ 现在广泛应用的GPT中,数据处理的关键点就是Transformer算法,多次多层的映射“变形”造就了其对自然语言处理能力的提升,但本篇介绍的内容中,Transformer算法是用来构建游戏AI的“…

深度学习经典检测方法概述

一、深度学习经典检测方法 two-stage(两阶段):Faster-rcnn Mask-Rcnn系列 one-stage(单阶段):YOLO系列 1. one-stage 最核心的优势:速度非常快,适合做实时检测任务! 但是…

【知识图谱系列】(实例)python操作neo4j构建企业间的业务往来的知识图谱

本章节通过聚焦于"金额"这一核心属性,构建了一幅知识图谱,旨在揭示"销售方"与"购买方"间的商业互动网。在这张图谱中,绿色节点象征着购买方,而红色节点则代表了销售方。这两类节点间的紧密连线,不仅映射了双方在市场活动中的合作桥梁,还特…

8个成功的原型设计案例分享

原型设计在整个产品设计过程中非常的重要,定下了整个产品的基调,想要做好原型设计,需要不断的经验的积累,新手入门最快的方式就是学习一些优秀的原型设计案例,今天就为大家分享一些可以直接使用源文件进行编辑和修改的…

Linux高级编程——线程

pthread 线程 概念 :线程是轻量级进程,一般是一个进程中的多个任务。 进程是系统中最小的资源分配单位. 线程是系统中最小的执行单位。 优点: 比多进程节省资源,可以共享变量 进程会占用&am…