第一部分 數(shù)據(jù)分類
在我目前接觸到的數(shù)據(jù)領(lǐng)域里面上匹耕,我跟小姬一樣聚请,也是將數(shù)據(jù)分為以下兩類,只是說法略有不同
1.日志數(shù)據(jù)稳其,記錄了用戶訪問驶赏、瀏覽湿故、點擊等發(fā)生了行為動作的埋點數(shù)據(jù)日志絮姆;
2.業(yè)務(wù)數(shù)據(jù)稼跳,記錄了用戶使用產(chǎn)品過程中發(fā)生的狀態(tài)變化的業(yè)務(wù)庫數(shù)據(jù)表舟扎,如用戶數(shù)據(jù)表悍募,商品詳情表修陡;
通俗的說硫麻,就是用戶發(fā)生的行為動作(動態(tài))和用戶的狀態(tài)(靜態(tài))的兩種類型數(shù)據(jù)
進行數(shù)據(jù)埋點弟断,就是為了記錄下用戶再什么場景下浑槽,做了什么動作蒋失,進而為后續(xù)的分析用戶意圖提供依據(jù)。
第二部分 埋點數(shù)據(jù)的組成和上報機制
一桐玻、埋點數(shù)據(jù)的3個組成部分
1.環(huán)境數(shù)據(jù):用戶使用環(huán)境信息篙挽,一般表示設(shè)備的信息,如用戶手機型號镊靴,系統(tǒng)版本铣卡,網(wǎng)絡(luò)狀態(tài)等以及和apk版本信息,如apk版本號偏竟,下載渠道煮落;
2.公共數(shù)據(jù):即所有用戶行為日志中的公共部分,如時間戳踊谋,會話id等
3.業(yè)務(wù)數(shù)據(jù):如上報一個點擊關(guān)注別人按鈕的事件蝉仇,需要知道關(guān)注者,被關(guān)注者殖蚕,關(guān)注成功或失敗等
舉個例子轿衔,以原生app為例,一般要記錄以下信息:
壞境數(shù)據(jù)
"Common":{
? ? "imei": "12222",//國際移動設(shè)備識別號
? ? "imsi": "12222",//國際移動設(shè)備識別碼
? ? "brand": "Huawei",//手機品牌
? ? "client_version_code": "12222",//apk版本號
? ? "channel": "google",//下載渠道
? ? "version_code": 2666,//apk包自增序號
? ? "os_version":"4.4.2",//手機系統(tǒng)版本號
? ? "Model":"Huawei P20",//手機型號
? ? "net_type":"2G",//網(wǎng)絡(luò)狀態(tài)
? ? "deviceid":"1038d96a-e615-4b1b-9fc3-a38cc427f927",//設(shè)備id
? ? "sp_code":"12333",//運營商編碼
? ? "platform":"android", //"android","iOS"
? ? "session_id":"111",//會話id
? ? "event_id":"111",//事件序號
? ? "system_language":"1222", //手機系統(tǒng)語言
? ? "client_ip":"111",//ip地址
? ? "country":"CN"http://國家
}
公共數(shù)據(jù):
"Common":{
? ? "user_id":"1222",//用戶id,也是該案例中的
? ? "client_time":"yyyy-mm-dd hh:mm:ss"睦疫,? //事件發(fā)生時間
? ? "session_id":"1222", //會話id
? ? "event_id":"1",//事件序號害驹,從1開始自增
? ? "event_name":"click_to_follow"http://事件名字
}
業(yè)務(wù)數(shù)據(jù):
{
? "be_followeder_id":"1222",
? "followe_results":"success"
}
二、數(shù)據(jù)上報機制
上報機制比較靈活選擇蛤育,但是由于客戶端數(shù)據(jù)有延遲的特性宛官,比較重要的數(shù)據(jù)可以選擇立即上報葫松,避免因為斷網(wǎng)、應(yīng)用關(guān)閉進程等原因丟失實時數(shù)據(jù)底洗;一般的數(shù)據(jù)可以選擇聚合上報腋么,幾十秒或者一分鐘一次聚合都行,因為頻繁上報可能會占用用戶的流量亥揖,影響用戶的正常的產(chǎn)品使用
第三部分 3個重要的數(shù)據(jù)埋點
1.PV事件
埋點需求:app所有頁面的訪問事件党晋,主要統(tǒng)計每個頁面的pv、uv和頁面停留時長
觸發(fā)機制: 頁面加載完成
上報機制:一分鐘一次聚合上報徐块;上報失敗,保存本地灾而,客戶端每次(斷網(wǎng)等原因)重新連接服務(wù)器時胡控,即時上報
{
? "Common":{"壞境數(shù)據(jù)"},
? "Common":{"公共數(shù)據(jù)"},
? "page_id":1,//頁面id或者頁面名稱
? "pre_page_id":2, //上個頁面的名稱
? "page_duration":1000 //單位:毫秒,
}
疑問1:在書阿里巴巴《大數(shù)據(jù)之路》中旁趟,分析頁面訪問路徑的時候會有頁面的回退行為干擾到分析昼激,故原書中講“所以針對這種場景,我們做了特殊的設(shè)計锡搜,利用頁面的生命周期橙困,識別頁面的復用,配合棧的深度來識別是否是回填行為”耕餐,此話怎講凡傅?
疑問2:原生app的頁面是怎么定義的?如通知欄是否可以定義為一個頁面
疑問3:session和一次啟動退出的區(qū)別是什么肠缔?以原生app為例夏跷,如抖音、微信等明未,session的過期時間設(shè)置為多長比較好槽华,
2.曝光事件
以今日頭條的信息流廣告位為例
埋點需求:上報信息流廣告曝光事件,用于后續(xù)的展示點擊(即CTR)計算
觸發(fā)機制: 1)整個消息高度的100%展示在用戶可見的屏幕就算曝光趟妥;
? ? ? ? ? ? ? ? ? 2)列表滑動不上報猫态,列表停止滑動時才算曝光 ;(即快速滑動不計曝光)
? ? ? ? ? ? ? ? ? 3)單次pv中披摄,同一廣告多次展示不做重復上報(即頁面加載一次僅上報一次)
上報機制:退出頁面時聚合上報亲雪;上報失敗,保存本地行疏,客戶端每次(斷網(wǎng)等原因)重新連接服務(wù)器時匆光,即時上報
統(tǒng)計數(shù)據(jù):不同廣告的曝光次數(shù)、人數(shù)/天
{
? "Common":{"壞境數(shù)據(jù)"},
? "Common":{"公共數(shù)據(jù)"},
? "extra json":
? [
? ? {"ads_id": "12345"}, //廣告id
? ? {"bid_id": "12345"}// 廣告素材id //一個頁面上可能有多個信息流廣告酿联,打包成數(shù)組結(jié)構(gòu)并聚合上報
? ]?
}
網(wǎng)上截圖:今日頭條信息流廣告
3.播放事件(即video_view终息,下文簡寫vv)
埋點需求:用戶觀看視頻事件夺巩,主要用戶統(tǒng)計vv分布、人均vv周崭,vv時長柳譬、卡頓比、完播率
觸發(fā)機制: 視頻拉出第一幀
上報機制:播放結(jié)束立即上報(上滑切換視頻)续镇;上報失敗美澳,保存本地,客戶端每次(斷網(wǎng)等原因)重新連接服務(wù)器時摸航,即時上報
{
? "Common":{"壞境數(shù)據(jù)"},
? "Common":{"公共數(shù)據(jù)"},
? "video_id":"1222",//視頻id
? "counter":222,//播放百分比
? "play_complete":11,//完整播放次數(shù)
? "play_duration":100,//播放時長制跟,單位毫秒
? "delay_time":2000,//表示首幀緩沖時長(一般無卡頓的視頻也會有解碼過程導致首幀延時)
? "buffer_time":2000,//總緩沖時長,不包括首幀緩沖時長
? "buffer_count":2,//總緩沖次數(shù)酱虎,不包括首幀緩沖次數(shù)
? "cdn_host":"1222"http:// cdn地址雨膨,如有不同cdn時可選
}