來源| tracykanc
說到數據驅動的業務,就離不開數據是怎麽來的。數據采集是整個數據生命周期的初始環節。
在過去的壹篇文章中提到了數據生命周期的壹般介紹。雖然我準備對文章的壹部分進行重構,但是這壹部分的基本環節並沒有太多變化。
文章會涉及很多技術知識,我會盡量減少這部分的細節。相信經過壹系列的講解,妳會明白被埋沒的數據如何成為驅動業務的指標,文章還會提供線上公開數據,幫助妳實際入門。
要收集的數據主要分為四種:行為數據、網站日誌數據、業務數據和外部數據。
Web日誌數據
博客數據是網絡時代的概念。
用戶瀏覽的每壹個網頁都會向服務器發送壹個請求,具體的技術細節不用關心。只要我們知道,當服務器與用戶交互時,服務器會記錄下這個交互,我們稱之為日誌。
127 . 0 . 0 . 1---[20/Jul/2017:22:04:08+0800]" GET/news/index HTTP/1.1 " 200 22262 "-" Mozilla/5.0(Macintosh;英特爾Mac OS X 10 _ 12 _ 5)apple WebKit/537.36(KHTML,像壁虎壹樣)Chrome/60 . 0 . 3112.66 Safari/537.36 "
上圖是壹個服務器日誌,它告訴我們什麽樣的用戶在什麽時間做了什麽。
127.0.0.1是用戶IP,即什麽樣的用戶。不同用戶的IP並不壹致,通過這個基本可以區分和定位人。[20/Jul/2065 438+07:22:04:08+0800]是該記錄生成的時間,可以理解為用戶訪問的時間戳。
“Get/news/index http/1.1”是服務器處理請求的動作。這裏,假設用戶請求訪問某個網站路徑。/新聞/索引。此處省略域名。如果域名是www.aaa.com,那麽用戶訪問的完整地址是www.aaa.com/news/index.,這意味著用戶瀏覽了新聞頁面。這就是。
誰,什麽時候,什麽東西構成了用戶行為分析的基礎。Mozilla/5.0是用戶瀏覽時使用的瀏覽器,分析意義不如前三者。
如果我們基於who分析,可以知道每日的PVUV的網站;基於when分析,我們可以知道平均瀏覽時間和每日訪問峰值;什麽能知道什麽內容更吸引人,用戶訪問的頁面深度,轉化率等屬性。
上例中,我們用IP數據指代用戶,但用戶的IP並不固定,不利於數據口徑的統壹和準確。在實際應用中,開發者還需要通過cookie或token獲取用戶ID,並將用戶ID傳遞給日誌。它的形式將變成:
127 . 0 . 0 . 1-123456
123456是用戶ID,通過它可以在後臺關聯用戶標簽數據,進行更豐富的維度分析。
案例的服務器日誌記錄了用戶的瀏覽數據,是壹個標準的流量分析元素。不過網站上還會有其他功能,就是更豐富的什麽,比如評論、收藏、喜歡、訂單等。很難通過記錄來統計這些行為。所以除了服務器日誌,業界還會配合JS嵌入或者後臺采集,為各種業務場景收集數據。
這裏我提供壹個網上公開的數據集,比較老,是學生在校園網站瀏覽行為的數據集。數據的原始格式是log,可以用txt打開。有需要的同學可以後臺發壹個“日誌下載”。
這是壹個標準的服務器日誌文件。對於分析師來說,IP、時間、訪問了哪些網頁就足以做出壹份完整的分析報告。我將在後面的章節中實踐它。為了照顧新手,我會同時用Excel和Python演示。
首先,進行簡單的清潔。如果是Excel,直接復制內容,文件開頭的內容只需要保存為第四個即可。
除以空格,初步的數據格式就出來了。
如果我們仔細觀察cs-uri-stem,會發現其中有大量無用的數據。比如向服務器請求圖像數據的/images/index_r2_c1.jpg,對我們的分析幫助不是很大。用戶訪問的具體網頁是/index.asp,以。asp。
使用過濾功能,包含。提取asp字符串,只保留日期、時間、c-ip、cs-uri-stem和cs-uri-stem。按c-ip和時間從小到大排序,讓用戶在什麽時間做了什麽的行為序列非常清晰。
壹個像172.16.100.11這樣的遊客,上午30點訪問網站首頁,然後瀏覽校園新聞和壹周安排相關的內容。整個談話持續了大約半個小時。
Python相關的清理留到下壹篇,這裏就不多花時間解釋了。有興趣的,可以先自己練習壹下。
應用行為數據
數據嵌入點,抽象理解就是記錄用戶在客戶端的關鍵操作行為,壹行數據等於壹條行為操作記錄。點擊“立即搶購”在文章頁面停留5分鐘,發表文章評論,註銷,在視頻網站首頁看到10新視頻的內容曝光也是...沒必要,所以我們都收藏。
APP行為數據是在日誌數據的基礎上開發和完善的。雖然數據的載體在APP端,但也可以抽象出幾個要素:誰、什麽時候、在哪裏、做什麽、怎麽做。
唯壹標識用戶的人。在移動端,我們可以很容易地收集user_id。壹旦用戶註冊,就會生成壹個新的user_id。
這裏有壹個問題。如果用戶沒有登錄怎麽辦?用戶有多個賬號怎麽辦?為了更好的統壹和識別唯壹用戶,移動終端還會收集device_id,通過手機設備的唯壹識別碼來區分。
實際的生成邏輯要復雜得多。Android和iOS不壹樣。設備標識只能是唯壹的。用戶更換設備後如何繼承數據?未登錄的匿名賬號如何繼承註冊賬號?這些都會影響分析的口徑。不同公司的判斷邏輯不壹致。這裏註意踩坑。
回到用戶行為:
當仍然是行為發生的時間。
哪裏是行為發生的地方。在手機上,通過GPS定位權限獲取比IP更詳細的用戶經緯度數據並不難。
什麽是具體行為,瀏覽、贊、評論、分享、關註、下單、舉報、打賞都是行為,如何統計要看分析的維度。
如果我們想知道用戶的贊行為,那麽我們可以讓客戶端在用戶喜歡的時候報壹個喜歡的消息。
如果只是在這裏,那就不是埋點了,因為喜歡的人本身也會被寫入數據庫,不需要客戶端額外的收集和上報。這裏引入了壹個新的維度:如何。
如何喜歡,以微信朋友圈為例。大部分的贊都是在朋友圈時間軸裏發的,但也有少部分場景允許用戶進入好友的個人頁面,單獨對發布的內容進行贊。服務器/後臺不知道這個贊是哪裏來的,iOS或者Android的客戶端要告訴它,這是how dimension的使用。
換個角度說,如果很多贊或者消息不是發生在朋友圈,而是發生在朋友的個人頁面。有可能討論壹些產品要求嗎?畢竟朋友圈信息流裏的內容越來越多,很容易錯過好友的生活,所以會有壹批用戶需要去好友頁面看內容。這裏不想深入探討產品問題,只想說明即使是同樣的贊,場景不同時數據描述的角度也會不壹樣:朋友圈喜歡/好友頁面喜歡。
除了場景之外,交互行為也需要客戶端來完成。比如點擊內容放大圖片,雙擊喜歡,自動播放視頻,觸摸屏向右滑動回到頁面...產品是小數量級的,這些細節無關緊要。產品做大後,產品會有這些細節需求。
行為嵌入通常以json格式描述和存儲,例如:
Params是嵌套的json,就是這樣描述行為的。業內通常稱之為行為參數,事件就是事件。Action_type是指如何觸發喜歡,page是發生喜歡的頁面,page_type是頁面的類型。現在在產品設計上,除了首頁,在頂欄還會劃分子頻道,所以page=feed和page_type=game可以理解為首頁的遊戲子頻道。Item_id指的是哪些具體內容被贊,item_type指的是視頻的內容類型。
以上字段構成了APP端行為采集的方式和內容。如果考慮的更全面,可以加上誰,什麽時候等輔助字段。
如何設計嵌入點不是本文的重點(其實要復雜得多,需要大量的討論和文檔,後面會講到),因為每個公司都有自己的設計思路和方法,有些是根據控制統計的無痕嵌入點。有興趣的話可以在網上搜索壹下文章。很多賣用戶分析平臺的SaaS公司都有詳細的文章。
埋點的統計除了行為“點”,還包括“段”的邏輯,即用戶在頁面停留的時間,這也是客戶端處理的優勢,就不多介紹了。
這裏有壹個來自互聯網的行為數據源,不知道是什麽內容產品。雖然意在作為推薦模型的算法競賽,但也可以用於用戶行為分析。
這些字段是用戶行為的基礎字段,比如deep_view。雖然沒有具體說明是什麽意思,但是也描述了用戶瀏覽的深度。比如看了50%+的文章,只能以客戶端的形式統計,而實際的業務場景往往需要這種有更深層次含義的數據。
具體的分析和做法會在下壹篇文章中講解。有興趣的同學可以自己下載,和網頁日誌放在壹起。
行為數據不是100%準確的,在收集用戶行為時,會有損失和遺漏。不建議在這裏埋沒重要的統計口徑邏輯,比如支付。口徑缺失的問題會讓人抓狂,相關統計還是靠支付接口計算。只分析與支付相關的埋葬點。
APP行為數據往往涉及大數據架構。即使壹個產品是654.38+1億DAU,用戶在產品上的操作也會包含幾十甚至上百次的操作,需要精準上報並落入報表,這對技術架構是很大的挑戰。行為數據的處理不是由mysql來處理,而是經常需要分布式計算。
會給數據源、產品運營、分析師的用戶帶來壹個取舍問題。如果只是想知道點贊數和分享數,也可以通過api或者制作庫了解。有必要細致到行為層面嗎?這是對收入的考慮。
當然,我個人建議對分析感興趣的同學去有獲取用戶行為數據的公司學習。
商業數據
業務數據由生產環境提供。我們在APP端獲得了user_id,物品或商品的item_id,甚至支付訂單_id,但它們只與用戶的行為相關。換句話說,我不知道user_id是壹個什麽樣的用戶。
是男是女,年齡多少?妳從哪裏來的?這些人口統計信息必然不會被納入行為埋點。商品內容訂單也是如此。
僅僅依靠埋點的行為數據,我們無法準確描述用戶做過什麽樣的事,或者做過什麽樣的內容。描述性質的數據/維度就是分析的價值。男女行為差異和不同城市用戶群體的購買習慣構成了分析和提煉的基礎。
業務數據和行為數據的組合可以簡單理解為數據級的join。例如,用戶行為數據的user_id與存儲用戶信息的user_id相關聯。形成如下:
上圖顯示了簡化的字段。User_name和sex是取自業務數據的用戶信息,item_tag也取自內容信息表中的字段,event來自行為埋點。這三個* * *是同構的,什麽樣的用戶在什麽時候對什麽樣的內容做了什麽。
簡單來說,很多用戶行為的建模就是把各種數據結合起來計算。用user_id的粒度,可以計算出這些用戶喜歡哪些文章,用item_id的粒度,可以計算出哪類用戶喜歡這篇文章。都是妳的視角/分析角度。
在更深層次上,行為數據也可以被再加工和利用,這是用戶標簽的基礎。以瀏覽行為數據為例。我們設計了壹個埋葬點,以了解王二狗讀什麽類型的文章。
Item_tag是文章類型,比如遊戲、娛樂、科技。壹些用戶可能喜歡各種產品,而另壹些用戶則有集中的口味偏好。產品可以稱為用戶偏好,特指興趣的集中程度。
現在取所有用戶的瀏覽數據,計算他們在不同類型標簽下的瀏覽分布(上面提供的行為數據可以計算,cate_id為內容類型)。例如,如果王的瀏覽90%是遊戲,10%是其他,則可以認為王的興趣集中度高。
這裏有壹個很簡單的公式,1-sum (P 2),將所有內容類別的瀏覽比例平方後相加,最後減去1,從而計算出用戶興趣的集中程度。讓我們簡單看壹下這個案例。
上圖中,李的興趣90%集中在遊戲上,所以興趣集中度= 1-(0.9 * 0.9+0.1)= 0.18,李三牛興趣略壹般,所以1-(。趙四有三點興趣,所以她略高於李三牛,而王五是平衡的,所以她是四個人中最高的。有些同學可能會想,為什麽不用標準差來計算感興趣程度呢?也是波動偏差。這是壹個思考問題。您可以添加壹個新的標簽類別並再次計算它。
1-sum (P 2)接近1,有四類。壹個平衡用戶(四個都是0.25)的集中度為0.75,當有十種類型時,壹個平衡用戶(四個都是0.1)的集中度為0.9。這個公式的好處是,興趣類別越多,集中度上限越接近1,超出標準差。
這裏不涉及太高級的數學模型,只需要加減乘除就可以快速計算出感興趣的濃度。通過行為數據計算用戶興趣的集中度,可以在分析場景中發揮我們的作用,這是用戶畫像的基礎,以後會深入講解。
外部數據可以分為兩部分,壹是行業市場調研,二是抓取。也可以作為分析的數據源,比如站外熱點內容和站內熱點內容,競爭對手的表現,自己產品的商家。大家應用的機會很少,就不多說了,也不熟悉。
到目前為止,文章主要講的是用戶行為的數據是怎麽來的,更多的是基本概念的解釋。下篇文章將通過具體數據教妳用戶行為分析的技巧。但由於數據來源於互聯網,數據的豐富性還是有所欠缺。說白了就是業務場景弱。希望大家在工作中能多想想。