Android 曝光采集(商品view曝光量的统计)第二弹

安卓端有效曝光统计步骤

  • 1 ,要肯定什么样的算有效曝光(在屏幕停留时间超过一个值如2秒)
  • 2,监听到每一个view移入和移出屏幕的事件
  • 3,把数据绑定到view(view至关于数据的载体)
  • 4,根据监听事件拿到view里的数据
  • 5,根据曝光字典筛选出运营想要的有效数据

1,什么算有效曝光

  • 须要和运营同窗一块儿确认下,一个view在屏幕停留的时长大于多少秒时算有效曝光。目前安卓这边是能够拿到view从进屏幕到移出屏幕的时间差,暂时以view进入屏幕到离开屏幕的时差大于2秒算一次有效曝光。
    image.png

2,监听view的移入和移出事件

安卓这边有具体的监听事件能够监听到view进入和移出屏幕的事件。 bash

image.png

在监听到view进入屏幕这一事件的同时,咱们记录下当前时间戳,而后在view移出屏幕时,再获取下时间戳,用这个时间戳减去进入屏幕的时间戳,就能够求出view在屏幕的停留时间。ide

这里有一个特殊的状况。当用户进入商城,切换tab或者进入商品详情页时,view并无从屏幕移出,而是隐藏不可见了。这种特殊状况的统计,就要用到另一个监听事件了。布局

  • 监听当前view是否可见
    image.png
    一样,安卓有提供监测view是否可见的监听事件。这种状况下咱们来监听如下几种状况(要确认下那些用户行为算有效曝光)。
用户行为 怎么监听
进入商城->切换tab 计算当前屏幕里全部view从用户进入商城到切换tab的时间差
进入商城->进入详情页 计算当前屏幕里全部view从用户进入商城到进详情的时间差
进入商城->点home键 计算当前屏幕里全部view从用户进入商城到点home键的时间差
进入商城->熄屏 计算当前屏幕里全部view从用户进入商城到点home键的时间差

3,怎么把数据绑定到view

把数据绑定到view里,须要自定义系统view,给系统view添加存储数据的功能。 这里以组件view和组件里的元素view为例spa

  • 组件view 3d

    image.png
    咱们这里以LinearLayout为例,咱们本身写个ExLinearLayout继承系统的LinearLayout,而后给咱们的ExLinearLayout添加设置数据的方法。 而后在须要统计的组件view的根布局使用咱们自定义的ExLinearLayout,以下:
    image.png

  • 元素view code

    image.png
    这里以AppCompatTextView为例,咱们自定义ExTextView继承系统AppCompatTextView,而后给咱们的AppCompatTextView添加设置数据的方法。 而后在咱们的布局里使用,如在商品组件的标题和描述view里使用以下:
    image.png

上面把自定义view写到布局里之后,就须要在代码里设置数据了。设置数据的方法以下:component

把数据绑定到view-1

图中的holder.itemView就是咱们的ExLinearLayout, knowledge就是咱们当前条目所显示的数据。这样就能够把数据绑定到view里了。cdn

再看下recordExposure方法具体作了什么 blog

把数据绑定到view-2
咱们这里作的就是把组件里的数据,封装成咱们运营想要的数据。而后把封装好的数据绑定到view里。
绑定数据到view-3
咱们这里在作数据绑定以前,须要经过曝光字典过滤下,当前组件类型是否是咱们想要统计的。若是是咱们想要统计的类型,才作数据绑定。

到这里咱们绑定数据这一步就完成了。这也是最重要的一步。由于只有把数据成功绑定到view里,后面才能从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"
}
复制代码

拿到这些数据后,咱们再作下有效曝光时间判断。好比view从进入屏幕绑定数据到移出屏幕的时间差大于2秒,才算有效曝光,才作数据上传。

时间过滤

如咱们把有效的曝光数据上传到神策数据后台。

上传的有效数据
神策收集
能够看到咱们的数据就能成功上传到神策了。

5,怎么筛选出运营想要的有效数据

这里咱们就要定义一个曝光策略字典了,这个字典经过如下几个步骤来告知咱们须要统计那些数据

  • 统计那个页面(如商城页)
  • 统计那些组件view(如商品组件,banner组件,音频组件)
  • 统计组件里的那些元素view(如商品的标题,商品的价格)

如咱们想统计

  • 首页:
    • 轮播图组件,banner组件,知识付费组件,商品组件

就要定义以下曝光字典

{
    "page": ["*"],
    "event": [{
      "eventName": "exposure",
      "time": 2,
      "area": 0.5
    }, {
      "eventName": "click"
    }],
    "component": ["slider", "banner","knowledgeList", "goodsList"]
  }
复制代码

简单说下上面数据格式。 page字段:表明咱们要统计那些页面,若是是 * 表明全部页面都统计 event字段:表明咱们要统计那些事件,如曝光事件,点击事件。 component字段:表明咱们要统计那些组件,若是是 * 就统计全部组件。

而后我根据上面的曝光字典去过滤出运营所须要的数据,这个曝光字典是能够动态配置的。统计那些数据所有由曝光字典来定义。

安卓开发使用步骤

  • 1,使用自定义的组件view替换根布局
  • 2,用自定的ExLinearLayout,ExRelativeLayout等替换布局中的对应的view
  • 3,绑定数据到view
  • 4,获取符合条件的view并取数据
  • 5,根据曝光字典上传数据

咱们以搜索页的曝光统计为例。

如咱们想统计知识结果下每一个条目的曝光数据

曝光条目

  • 1,用自定义ExLinearLayout替换咱们的根布局LinearLayout

    替换布局

  • 2,到知识对应的viewholder,就是能获取到数据的地方,把数据绑定到view

    绑定数据到view

咱们只须要作这两步,就能够轻松实现曝光的统计了。

数据上传成功

后面还会有结合曝光的点击数据上传。就是用来统计从曝光到点击的转化率用的。 点击统计是基于上面两步的基础上作的。咱们要统计曝光组件点击统计只须要在点击的地方写入下面代码便可。

曝光组件的点击统计
原理就是把咱们存储数据的view传进去,当用户点击时,就能够从这个view上拿到想要的数据了。

by 年糕妈妈:qcl

相关文章
相关标签/搜索