00:00
好在上节课啊,我们说了一下这个上报时机,目前企业当中呢有两种,一种呢是离开页面是上报,还有一种呢,是每一个动作或者事件产生之后立即的一个发送。那本次项目当中啊,我们采用的是方式一这种买点,就是离开页面之后,统一的批次的一个上传。那我们来看一下那真正的这个买点数据的格式。长什么样呢?啊,来看一下。那这里面呢,一共分为两大类啊,第一类呢,叫普通页面的买点日志,还有一类呢是启动日志,也就是说把页面相关的这种事件诶。归拢到一起,然后统一进行发送,那还有一类呢,是启动日志,比如说你刚启动的时候之后,然后我把这一类日志发过来。OK吧,哎,好,分成了两大类哈,两大类,那下面我们来看第一类叫普通的页面。那这里面包含哪些信息呢?哎,包含的信息有,首先是当前页面的信息,你说你在你这个APP页面上,哎,有哪些静态要展示的一些信息。
01:07
OK吧,当然还有在这个页面上发生了哪些操作。啊,那比如说点击了某一个按钮,对吧,点击了收藏哎,点击了加入购物车哎等等这些按钮。那就叫动作,那还有呢,在这个页面上的曝光信息,比如说你把哪些。哎,内容进行曝光展示。那这个呢啊,也会通过这个啊页面日志的形式啊进行发送,那还有呢,对应的就是错误信息,在这个页面上发生的任何的故障信息,我都会统一的一个发送。对吧,啊好,那除此之外。它还会包括一些公共的信息。那为什么要有一些公共的信息呢?其实这样的哈,你看这个每一条日志信息里面,我们都希望它能够包含这个设备信息,地理位置信息,还有应用相关的一些信息,比如说手机什么型号的,什么牌子的,你在什么地区发送的这条信息。
02:04
这些呢,无论你是页面还是动作,还是曝光,我都希望包含。那这时候怎么设计这个日志格式呢?对吧,那很简单,哎,我们呢,是要把它抽取出来一部分叫公共信息模块。那这样设计的好处是什么呢?大家思考一下。其实啊,我们就是哎,抽取出来公共的信息,比如说公共的。对吧,然后呢,我后面拼接上你是页面了,那我就发页面了。然后呢,你还有对应的像呃这个事件。还有曝光。那这样的好处是什么?我是不是就节省了每一条日志,正常情况下你都需要,哎,都需要发送一个公共的模块或者公共的信息。那么如果说我发送的这些条日志一共有十条。那我是不是只发送了一个公共信息?
03:02
那我说我节省了九份公共信息的网络上的一个传输啊,哎,其实本质的目的就是减少你网络上数据量的一个传输,哎,是这样设计的哈,好,那把公共信息提出来,我们先从整体上看啊,然后接下来下面呢,就是在这个页面上发生的动作。那你看这里面单词叫埃克森斯。是不是有多个动作呀,哎,你可以在这个页面上进行多次的一个操作。那这里面我们采用的是这个接身数组的方式进行嵌套,那这个第一个呢,相当于是数组零,其实你在这个数组里面还可以存储多个动作。那好,那下面是曝光,那曝光呢也是啊,Display对吧,那说明在这个页面上我可以曝光多项内容。对吧,你看我这里面还是杰森对用输入对吧,来杰森输入。是吧,哎,第一个item,第二个item,第三个第四个啊类似个。那下面在这条日志当中,还有这个配置也是页面,哎,页面的一些精准信息,那就一个就可以了。
04:05
对吧,按你的这个持续时间,目标ID,目标类型上页类型啊等等。好,那再往下呢,就是在这个页面上如果发生了故障。对吧,按照故障的编码以及故障的信息啊,也可以发送。啊,那最后呢,还有一个TS什么意思啊,哎,跳入的时间戳,比如说这一条日志,哎什么时候打包好,统一往出发送,什么时候发的,就包含上面所有的这些日志。OK吧?那大家再思考一下,那你有可能在这个封装这个日志的时候啊,我有可能没有什么呢,没有这个动作。对吧。那可不可以呢?当然可以,你说你这一条日志里面没有这个动作,我也可以发送,那确实我就在这个页面上没有做任何的操作。对吧,哎,还有呢,像这个下面我这个没有这个故障信息能不能发也可以。那也可以啊啊,像这个页面的信息那肯定得有对吧?哎,只不过呢,这个像这个曝光这个,哎我只比如说我只曝光了一条,可不可以呢?可以啊没问题啊,所以说这个日志呢,封装呢是比较灵活的啊,正常情况下呢,它是包含哎公共信息,但是后续呢啊,你包含哪些信息,不一定说非得都有。
05:16
OK吧,那好,那大家再思考一下哈,那这里面说这个离开页面之后,然后我统一将这个页面上产生的动作,事件曝光等等都统一往外发送。那万一我这个时间一直也没这个页面,我一直没有离开。比如说我就打开这个京东网站页面。我打开之后啊,我就没动啊。我就一直在这停留,停留了两个多小时,我也没有动,那这怎么办呢?哎,这没打开啊,我先不打它了,那我没动的话,那怎么办?哎,其实呢,那我们还可以设置一个时间,超时时间,比如说啊,你没有到这个没有离开页面,那我们可以来了一个,诶超时一分钟啊,就一分钟我就发一次。哎,不管你有没有这个离开页面啊,这也是可以的哈,啊,相当于是一个呃,叠加的一个使用哈。
06:05
啊,那下面还有一个是对应的这个启动日志的一个格式,那启动日志当中,当然它也有对应的像这个com模块对吧,I模块,然后下面呢,是对应的这个启动信息。哎,在启动日志里面包含的一些信息,当然了在这个页面上还有一些故障些息,那它这里面没有谁啊,哎,没有这个像那个曝光啊事件呢,哎,相关的其他的一些信息。那这么着分,从整体上分这么两大类,那接下来呢,给大家详细介绍一下对应的这个common字段里面有哪些含义,我们抽取出来的到底是哪些内容呢?那第一个比如说哎,这个地区编码。对吧,地区编码其实啊,就是方便我们后续去统计说这条日志是,哎,或者说这个用户在哪个地区进行的一个网上的访问。对吧,比如说我现在在这个北京。在这地方操作了一个京东这个页面。那我后期就能统计说,哎,北京地区多少人在访问这个京东这个网站。
07:03
对吧,诶带着这个,那还有呢,对应的像手机品牌,那你说多少人啊,多少个这个品牌的手机在操作这页面,比如说有华为的啊,有这个魅族的,有VIVO的OPPO的。哎,等等,分门别类的可以去统计,那还有个叫渠道,那渠道是什么含义呢。哎,渠道啊,其实就是哎,他从哪一个渠道来的,比如说也可以从百度竞价对吧,百度上一些广告,还有抖音上的一些广告啊,还有呢,像呃这个叫今日头条对吧?哎,这里面通通过广告哎,然后给客户推送,然后客户呢,点击了对应的这个相关商品啊,这是从不同渠道啊进行一个。啊,统计哈,那这里面还有一个标记叫is new,那这是什么含义呢。啊,说这个它是否是首日使用,如果首次使用或者当日使用,它标记为一,比如说你第一次使用的时候,我这个知道是一。那七四呢,过了24小时之后啊,到了24点啊之后,它就会设置为零。
08:03
哎,表示呢,它是第一次使用,哎这个呢,其实为了统计我们这个用户是不是哎第一次操作。那这个准不准呢?其实不太准啊,不太准啊,比如说你这个卸载了再重新安装,那这个标记呢,啊,其实它是没法进行处理的,那我们后面呢,还有专门的呃,处理对应的这个啊,是否判断它是一个新的用户啊,对应的手段,那只不过呢,这个标记呢,是一个辅助的一个手段,那后面我们具体怎么处理啊,会有详细的一个说明啊,啊先有个印象好。那接下来呢,是手机型号。那手机型号的话,那就对应的是,哎,跟你这个手机这个屏幕这个宽高有关系。没转机,主流的一些手机的苹果宽高,如果我在开发某一个产品的时候,我时间紧,任务重。我适配不了所有的手机,那我就要适配最主流的手机型号,比如说像咱们电脑里面有这个1366乘768,还有什么1920对吧,啊,乘以1080,这是这这些,那这些主流的这个屏幕我肯定优先适配。
09:04
那这样节省我开发成本啊。好,那下一个呢,叫设备ID,什么叫设备ID啊。哎,所谓的设备ID啊,它就是你对应的这个,呃,手机的一个唯一标识。相当于我们的一个身份证是一样的啊,不管你是安卓手机还是iOS手机啊,它都有一个唯一的一个标识,那我们就能够识别出来它是一个新的设备。那好,那下面呢,是对应的操作系统,那操作系统呢,你是iOS的还是安卓的啊,是安卓五的,安卓六的,安卓七的安卓八的啊到底是哪一个,那其实还是我日后再进行升级啊,或者维护的时候,我重点优先维护哪一个类型的操作系统。那下面还有个会员ID,那会员ID跟这个设备ID有什么区别呢?我举个例子啊,你来到这个京东这个网站页面,我没有进行登录。那它只会给你产生一个设备ID相关的。对吧,我不知道我是谁登录的,反正就是这个设备是唯一标识,那好,那你在这个网站上我进行登录了自己的账号,那其实这个呢,就叫会员。
10:06
啊叫会员对吧?哎,那这里面要注意什么呢?有可能是没有会员ID的,我就是来这里面浏览观看了一下,我并没有登录,那这个叫一们一般叫访客。啊叫访客,后面我们有一个专门的访客主题,那如果登录注册的呢,那就叫用户主题。啊,这个呢,是有一个概念上的一个区分啊,先有个印象。啊,下面呢,是这个APP版本,也是当前你的程序是哪一个版本的啊,有的用户啊,他不是说一直使用这个官方推荐的啊,最新的版本对吧?啊,他用习惯了这个老的这个版本之后,他不愿意升级啊,也不愿意浪费手机那个流量啊,所以说呢,这里面有一些这个框架这个版本啊。呃,他用的用户比较多,那你后续在优化升级的时候,你会考虑说为什么这个版本的这个,呃用户这么多,那一定是他有一些优势的地方,那我们肯定要吸取这个版本的优势,哎,同时呢啊,避开这个版本的一些劣势啊,是这样一个好处啊,像这是相应的这个公共信息的一个啊描述啊,从整体上有一个啊印象哈。
11:08
啊,这是我们买点日志的一个格式,后续呢,我们还会用到,那那个时候我们在解析的时候,再给大家详细的一个分析哈。
我来说两句