熱線電話:13121318867

登錄
首頁精彩閱讀掌握數據生命周期:初識數據埋點
掌握數據生命周期:初識數據埋點
2019-09-20
收藏
掌握數據生命周期:初識數據埋點

作者 | 秦路

來源 | tracykanc

談到數據驅動業務,離不開數據是怎么來的,數據收集是整個數據生命周期的初始環節。

數據生命周期的大體介紹,在過去的一篇文章中有提到。雖然文章的部分內容我準備重新構造,但是對于這部分的基礎環節,并沒有太多的變換。

掌握數據生命周期:初識數據埋點

文章會涉及到不少技術相關的知識,我會盡量減少這部分的細節。相信經過一系列的講解,你會明白埋點數據怎么成為驅動業務的指標,文章也會提供網上的公開數據,幫助你實際上手操作。

需要收集的數據主要能劃分成四個主要類型:行為數據、網站日志數據、業務數據、外部數據。


Web日志數據

網日志數據是Web時代的概念。

用戶瀏覽的每一個網頁,都會向服務器發送請求,具體的技術細節不用關注。只要知道,當服務器和用戶產生數據交互,服務器就會把這次交互記錄下來,我們稱之為日志。

127.0.0.1 - - [20/Jul/2017:22:04:08 +0800] "GET /news/index HTTP/1.1" 200 22262 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.66 Safari/537.36"

上圖就是一條服務器日志,它告訴了我們,什么樣的用戶who在什么時間段when進行了什么操作what。

127.0.0.1是用戶IP,即什么樣的用戶。不同用戶的IP并不一致,通過它能基本的區分并定位到人。 [20/Jul/2017:22:04:08 +0800] 是產生這條記錄的時間,可以理解為用戶訪問的時間戳。

"GET /news/index HTTP/1.1"是服務器處理請求的動作,在這里,姑且認為是用戶請求訪問了某個網站路徑,/news/index。這里省略了域名,如果域名是www.aaa.com,那么用戶訪問的完整地址就是www.aaa.com/news/index,從字面意思理解,是用戶瀏覽了新聞頁。也就是what。

who、when、what構成了用戶行為分析的基礎。Mozilla/5.0這個字段是用戶瀏覽時用的瀏覽器,它的分析意義不如前三者。

如果我們基于who分析,可以得知網站每天的PVUV;基于when分析,可以得知平均瀏覽時長,每日訪問高峰;what則能得知什么內容更吸引人、用戶訪問的頁面深度、轉化率等屬性。

上面的示例中,我們用IP數據指代用戶,但用戶的IP并不固定,這對數據口徑的統一和準確率不利。實際應用中還需要研發們通過cookie或token獲取到用戶ID,并且將用戶ID傳遞到日志中。它的形式就會變成:

127.0.0.1 - 123456 [20/Jul/2017:22:04:08 +0800]…

123456就是用戶ID,通過它就能和后臺的用戶標簽數據關聯,進行更豐富維度的分析。

案例的服務器日志,記錄了用戶的瀏覽數據,是標準的流量分析要素。但是網站上還會有其他功,即更豐富的what,譬如評論、收藏、點贊、下單等,要統計這些行為靠日志就力有未逮了。所以業內除了服務器日志,還會配合使用JS嵌入或者后臺采集的方式,針對各類業務場景收集數據。

在這里我提供一份網上公開的數據集,年代比較古老,是學生在校園網站的瀏覽行為數據集。數據原始格式是log,可以txt打開。需要的同學可以在后臺發送「日志下載」。

掌握數據生命周期:初識數據埋點

它是標準的服務器日志文件,對分析師來說,IP,時間、瀏覽了哪些網頁,這三個字段足夠做出一份完整的分析報告。后續的章節我將圍繞它進行演練,為了照顧新手,會同時用Excel和Python演示。

首先進行簡單的清洗。如果是Excel,直接將內容復制,文件開頭的內容只需要保留第四。

按空格進行分列,初步的數據格式就出來了。

掌握數據生命周期:初識數據埋點

我們仔細觀察cs-uri-stem,會發現有很多無用數據。比如/images/index_r2_c1.jpg,它是向服務器請求了圖片數據,對我們分析其實沒有多大幫助。用戶訪問的具體網頁,是/index.asp這類以.asp為結尾的。

利用過濾功能,將含有.asp字符串的內容提取出來,并且只保留date、time、c-ip、cs-uri-stem、cs-uri-stem。按c-ip和time按從小到大排序,這樣用戶在什么時間做了什么的行為序列就很清晰了。

掌握數據生命周期:初識數據埋點

像172.16.100.11這位游客,在凌晨30分的時候訪問了網站首頁,然后瀏覽了校園新聞和一周安排相關的內容,整個會話持續了半小時左右的時間

Python相關的清洗留待下一篇文章,這里就不多花時間講解了。感興趣,大家可以先自行練習一下。


APP行為數據

數據埋點,抽象理解便是記錄用戶在客戶端的關鍵操作行為,一行數據便等于一條行為操作記錄。點擊「立即搶購」是,在文章頁面停留5min是,發表文章評論是,進行退出登錄操作是,視頻網站首頁看到了10條新視頻的內容曝光也是...反必要的,我們都采集。

APP行為數據是在日志數據的基礎上發展和完善的。雖然數據的載體是在APP端,但它同樣可以抽象出幾個要素:who、when、where、what、how。

who即唯一標識用戶,在移動端,我們可以很方便地采集到user_id,一旦用戶注冊,就會生成新的user_id。

這里有一個問題,如果用戶處于未登錄狀態呢?如果用戶有多個賬號呢?為了更好地統一和識別唯一用戶,移動端還會采集device_id,通過手機設備自帶的唯一標識碼進行區分。

實際的生成邏輯要復雜的多,安卓和iOS不一樣,device_id只能趨近于唯一、用戶更換設備后怎么讓數據繼承,未登錄狀態的匿名賬戶怎么繼承到注冊賬戶,這些都會影響到分析的口徑,不同公司的判斷邏輯不一致,此處注意踩坑。

回到用戶行為:

when依舊是行為發生的時間。

where即行為發生的地點,手機上,通過GPS定位權限,獲取用戶比IP更詳細的經緯度數據并不難。

what是具體的行為,瀏覽、點贊、評論、分享、關注、下單、舉報、打賞,均是行為,如何統計取決于分析的維度。

如果我們想知道用戶的點贊行為,那么在用戶點贊的時候要求客戶端上報一條like信息即可。

如果只是到這里,還稱不上埋點,因為點贊本身也會寫入到數據庫中,并不需要客戶端額外采集和上報,這里就引入了全新的維度:how。

如何點贊,拿微信朋友圈舉例。絕大部分的點贊都是在朋友圈timeline中發送,但是小部分場景,是允許用戶進入到好友的個人頁面,對發布內容單獨點贊的。服務端/后臺并不知道這個點贊在哪里發生,得iOS或安卓的客戶端告訴它,這便是how這個維度的用處。

換一種思考角度,如果很多點贊或留言的發生場景不在朋友圈,而是在好友個人頁。這是不是能討論一下某些產品需求?畢竟朋友圈信息流內的內容越來越多,很容易錯過好友的生活百態,所以就會有那么一批用戶,有需要去好友頁看內容的需求。這里無意深入展開產品問題,只是想說明,哪怕同樣是點贊,場景發生的不同,數據描述的角度就不同了:朋友圈的點贊之交/好友頁的點贊至交。

除了場景,交互行為方式也是需要客戶端完成的。例如點擊內容放大圖片、雙擊點贊、視頻自動播放、觸屏右滑回退頁面...產品量級小,這些細節無足輕重,產品變大了以后,產品們多少會有這些細節型需求。

行為埋點,通常用json格式描述和存儲,按點贊舉例:

掌握數據生命周期:初識數據埋點

params是嵌套的json,是描述行為的how,業內通常稱為行為參數,event則是事件。action_type指的是怎么觸發點贊,page是點贊發生的頁面,page_type是頁面的類型,現在產品設計,在推薦為主的信息流中,除了首頁,還會在頂欄劃分子頻道,所以page=feed,page_type=game,可以理解成是首頁的游戲子頻道。item_id指對哪篇具體的內容點贊,item_type是內容類型為視頻。

上述幾個字段,就構成了APP端行為采集的how和what了。如果我們再考慮的齊全一些,who、when及其他輔助字段都能加上。

掌握數據生命周期:初識數據埋點

埋點怎么設計,不是本篇文章的重點(實際上也復雜的多,它需要很多討論和文檔and so on,有機會再講),因為各家公司都有自己的設計思路和方法,有些更是按控件統計的無痕埋點。如果大家感興趣,可以網絡上搜索文章,不少賣用戶分析平臺的SaaS公司都有文章詳細介紹。

除了行為「點」,埋點統計中還包含「段」的邏輯,即用戶在頁面上停留了多久,這塊也是客戶端處理的優勢所在,就不多做介紹了。

這里提供一份來源于網上的我也不知道是啥內容產品的行為數據源,雖然它的本意是用作推薦模型的算法競賽,不過用作用戶行為分析也是可以的。

掌握數據生命周期:初識數據埋點

這幾個字段便是用戶行為的基礎字段,像deep_view,雖然沒有明確說明是什么含義,但也猜測是描述了用戶瀏覽的深度,比如看了50%+的文章內容,它只能以客戶端的形式統計,實際業務場景往往都需要這種有更深刻含義的數據。

具體的分析實操留待下一篇文章講解,感興趣的同學可以自行下載,和網頁日志放一起了。

行為數據不是百分百準確的,采集用戶行為,也會有丟失和缺漏的情況發生。這里不建議重要的統計口徑走埋點邏輯,比如支付,口徑缺失問題會讓人很抓狂的,相關統計還是依賴支付接口計算。支付相關的埋點僅做分析就行。

APP行為數據往往涉及到大數據架構,哪怕10萬DAU的一款產品,用戶在產品上的操作,也會包含數十個乃至上百的操作行為,這些行為都需要準確上報并落到報表,對技術架構是一個較大的挑戰。而行為數據的加工處理,也并不是mysql就能應付,往往需要分布式計算。

對數據源的使用方,產品運營及分析師,會帶來一個取舍問題。如果我只想知道點贊和分享數,那么通過api或者生產庫也能知道,是否需要細致到行為層面?這便是一個收益的考量。

當然啦,我個人還是挺建議對分析有興趣的同學,去能接觸到用戶行為數據的公司去學習。


業務數據

業務數據是生產環境提供的,我們在APP端獲得了用戶user_id,文章或商品的item_id,乃至支付order_id,但它們只和用戶的行為有關。換句話說,我并不知道user_id是什么樣的用戶。

是男是女,芳齡幾何?出生籍貫,從哪里來?這些人口統計學的信息必然不會在行為埋點中包含。商品內容訂單也是同理。

單依靠埋點的行為數據,我們并不能準確描述什么樣的用戶做了事情,也不知道對什么樣的內容做了行為。描述性質的數據/維度是分析的價值所在。男女的行為差異,不同城市的用戶群體購買習慣,這才構成了分析和精細化的基礎。

業務數據和行為數據的結合,在數據層面上可以簡單理解為join。比如把用戶行為數據的user_id和存放用戶信息的user_id進行關聯起來。形成如下:

掌握數據生命周期:初識數據埋點

上圖是簡化后的字段。user_name和sex就是取自業務數據的用戶信息,item_tag也是取自內容信息表中的字段,而event則來源于行為埋點。三者共同構成了,什么樣的用戶who在什么時候when對什么樣的內容做了什么事what。

簡單說,很多用戶行為的建模,就是拿各種數據組合在一起計算。用user_id的粒度聚合,你算得是這些用戶喜歡哪些文章,用item_id的粒度聚合,你算得是這篇文章被哪類用戶喜歡。它們都是你看待/分析事物的角度。

從更深的層面上說,行為數據也是可以再加工和利用的,它是構成用戶標簽的基礎。拿瀏覽行為數據說,我們設計了埋點,知道王二狗看了哪些類型的文章,

掌握數據生命周期:初識數據埋點

item_tag是文章類型,游戲、娛樂、科技這類。有些用戶可能各種各樣的類型都喜歡,有些用戶的口味偏好則比較集中,產品上可以拿用戶偏好來代稱,這里專指興趣的集中度。

現在取所有用戶的瀏覽數據,算它們在不同類型tag下的瀏覽分布(上文提供的行為數據就可以計算,cate_id便是內容類型)。比如王二狗可能90%的瀏覽都是游戲,10%是其他,那么就可以認為王二狗的興趣集中度高。

這里有一個很簡易的公式,1-sum(p^2),將所有內容類別的瀏覽占比平方后相加,最終拿1減去,就算出了用戶興趣的集中程度了。我們拿案例簡單看下。

掌握數據生命周期:初識數據埋點

上圖的李二狗,他的興趣90%集中在游戲,所以興趣集中度= 1 - (0.9*0.9+0.1*0.1)=0.18,李三妞的興趣稍微平均點,所以1-(0.5*0.5+0.5*0.5)=0.5,興趣集中度比王二狗高。趙四有三個興趣點,所以比李三妞稍微高一些,王五是均衡的,所以是四人中最高的??赡苡型瑢W疑問,興趣程度為什么不用標準差算呢?它也是算波動偏離的呀,這是一個思考題,大家可以新加一個tag類別再算一下。

1-sum(p^2)是趨近于1的,有四個類別,一位均衡的用戶(四個都是0.25)是0.75的集中度,當有十個類型,一位均衡的用戶(四個都是0.1)是0.9的集中度。這種公式的好處就是興趣類別越多,集中度的上限越接近1,這是標準差比不了的。

這里并沒有涉及太高深的數學模型,只是用了加減乘除,就能快速的計算出興趣的集中程度了。通過行為數據算出用戶興趣集中度,便能在分析場景中發揮自己的用武之地了,它是用戶畫像的基礎,以后有機會再深入講解。

外部數據可以分為兩個部分,一個是行業市場調研類的,一個是爬蟲抓取的,它們也能作為數據源分析,比如站外熱點內容和站內熱點內容、競品對手商家表現和自己產品的商家,大家有機會應用的不多,就不多講了,我也不怎么熟。

到這里為止,文章主要講了用戶行為層面的數據是怎么來的,更多是基礎概念的講解,下一篇文章會通過具體的數據教大家用戶行為分析的技巧。不過,因為數據來源于網上,數據的豐富程度還是欠缺了不少,說白了,業務場景比較弱,希望大家自己在工作中多思考。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢