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

相關文章
相關標籤/搜索