安卓view曝光统计实现方案
安卓端有效曝光统计步骤
- 1 ,要确定什么样的算有效曝光(在屏幕停留时间超过一个值如2秒)
- 2,监听到每个view移入和移出屏幕的事件
- 3,把数据绑定到view(包括组件和组件中的每个子view都要绑定数据)
- 4,根据监听事件拿到view里的数据
- 5,根据曝光字典挑选出经营想要的有效数据
1,什么算有效曝光
需要和经营同学一起确认下,一个view在屏幕停留的时长大于多少秒时算有效曝光。目前安卓这边是可以拿到view从进屏幕到移出屏幕的时间差,暂时以view进入屏幕到离开屏幕的时差大于2秒算一次有效曝光。
image.png
2,监听view的移入和移出事件
安卓这边有具体的监听事件可以监听到view进入和移出屏幕的事件。
image.png
在监听到view进入屏幕这一事件的同时,我们记录下当前时间戳,而后在view移出屏幕时,再获取下时间戳,用这个时间戳减去进入屏幕的时间戳,即可以求出view在屏幕的停留时间。
这里有一个特殊的情况。当客户进入商城,切换tab或者者进入商品介绍页时,view并没有从屏幕移出,而是隐藏不可见了。这种特殊情况的统计,就要用到另外一个监听事件了。
监听当前view能否可见
image.png
同样,安卓有提供监测view能否可见的监听事件。这种情况下我们来监听以下几种情况(要确认下那些客户行为算有效曝光)。
客户行为 | 怎样监听 |
---|---|
进入商城->切换tab | 计算当前屏幕里所有view从客户进入商城到切换tab的时间差 |
进入商城->进入介绍页 | 计算当前屏幕里所有view从客户进入商城到进介绍的时间差 |
进入商城->点home键 | 计算当前屏幕里所有view从客户进入商城到点home键的时间差 |
进入商城->熄屏 | 计算当前屏幕里所有view从客户进入商城到点home键的时间差 |
3,怎样把数据绑定到view
把数据绑定到view里,需要自己设置系统view,给系统view增加存储数据的功能。
这里以组件view和组件里的元素view为例
组件view
image.png
我们这里以LinearLayout为例,我们自己写个ExLinearLayout继承系统的LinearLayout,而后给我们的ExLinearLayout增加设置数据的方法。
而后在需要统计的组件view的根布局使用我们自己设置的ExLinearLayout,如下:image.png
元素view
image.png
这里以AppCompatTextView为例,我们自己设置ExTextView继承系统AppCompatTextView,而后给我们的AppCompatTextView增加设置数据的方法。
而后在我们的布局里使用,如在商品组件的标题和形容view里使用如下:image.png
上面把自己设置view写到布局里以后,就需要在代码里设置数据了。设置数据的方法如下:
image.png
图中的itemView就是我们的ExLinearLayout,
tvName和tvIntroduction就是我们的ExTextView。这样即可以把数据绑定到view里了。
4,怎样拿到view里的数据
上面第三步已经把数据绑定到view里了,我们拿数据就比较方便了。
我们只要要在view移出屏幕,或者者view进入后端不可见时获取当前时间戳和view刚进入屏幕时的时间戳求差,大于2秒时,就取view里的数据。
image.png
image.png
我们这里收集数据是还要判断view从进屏幕到出屏幕这个过程中,有没有显示超过50%,没有超过50%的也不算有效曝光的。这样我们即可以拿到所有的组件及组件里元素的数据。
image.png
如我们拿到商品组件的数据如下
{ "micro_page_name": "我是主页", "micro_page_id": "3", "micro_cindex": 3, "component_name": "", "micro_component_type": "groupbuyBargainList", "micro_component_sindex": 1, "exposure_content": "为全文", "exposure_content_link": "http:\/\/m.ngmm001.com\/goods\/32702?componentName=groupbuyBargin-list", "exposure_id": "32702"}
商品组件中的标题元素和形容元素数据如下
//商品标题元素的数据{ "micro_page_name": "我是主页", "micro_page_id": "3", "micro_cindex": 3, "component_name": "", "micro_component_type": "groupbuyBargainList", "micro_component_sindex": 1, "exposure_content": "为全文", "exposure_content_link": "http:\/\/m.ngmm001.com\/goods\/32702?componentName=groupbuyBargin-list", "exposure_id": "32702", "childe_str": "为全文"}//形容元素的数据{ "micro_page_name": "我是主页", "micro_page_id": "3", "micro_cindex": 3, "component_name": "", "micro_component_type": "groupbuyBargainList", "micro_component_sindex": 1, "exposure_content": "为全文", "exposure_content_link": "http:\/\/m.ngmm001.com\/goods\/32702?componentName=groupbuyBargin-list", "exposure_id": "32702", "childe_str": "baby"}
5,怎样挑选出经营想要的有效数据
这里我们就要定义一个曝光策略字典了,这个字典通过以下几个步骤来告知我们需要统计那些数据
- 统计那个页面(如商城页)
- 统计那些组件view(如商品组件,banner组件,音频组件)
- 统计组件里的那些元素view(如商品的标题,商品的价格)
如我们想统计
- 首页:
- 商品组件:商品组件的标题1,商品组件的标题2
- banner组件:banner组件的标题1,banner组件的图片url
- 商城页:
- 商品组件:商品组件的标题1,商品组件的标题2
- 图片列表组件:图片url
就要定义如下曝光字典
[{ "Page": "home", "element": [{ "groupbuyBargainList ": ["title1 ", "title1 "] }, { "banner ": ["title1 ", "imgurl "] } ]}, { "Page": "mall", "element": [{ "groupbuyBargainList ": ["title1 ", "title1 "] }, { "imageList ": ["imgurl "] } ]}]
而后我根据上面的曝光字典去过滤出经营所需要的数据,这个曝光字典是可以动态配置的。统计那些数据一律由曝光字典来定义。
安卓开发使用步骤
- 1,使用自己设置的组件view替换根布局
- 2,用自定的ExTextview,ExImageview等替换布局中的对应的子view
- 3,绑定数据到view
- 4,获取符合条件的view并取数据
- 5,根据曝光字典上传数据
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 安卓view曝光统计实现方案