產(chǎn)品經(jīng)理數(shù)據(jù)埋點(diǎn)文檔指南(進(jìn)階)
編輯導(dǎo)語:在產(chǎn)品規(guī)劃的過程中,產(chǎn)品經(jīng)理的工作往往需要使用數(shù)據(jù)來進(jìn)行輔助,這些數(shù)據(jù)要通過埋點(diǎn)文檔獲取的數(shù)據(jù)來實(shí)現(xiàn);本文作者分享了關(guān)于進(jìn)階的產(chǎn)品經(jīng)理數(shù)據(jù)埋點(diǎn)文檔指南,我們一起來學(xué)習(xí)一下。
本篇無論是埋點(diǎn)的新手還是老手都可以進(jìn)行參考,不會(huì)浪費(fèi)大家太多時(shí)間;如果對(duì)于數(shù)據(jù)埋點(diǎn)還沒有概念的同學(xué),可以先閱讀本文的前篇《產(chǎn)品經(jīng)理數(shù)據(jù)埋點(diǎn)文檔指南(入門)》后再回來。
通過對(duì)本篇的簡單學(xué)習(xí),將會(huì)讓你比目前90%以上的產(chǎn)品經(jīng)理更了解如何有效的獲得自己的產(chǎn)品的真實(shí)數(shù)據(jù),為之后通過數(shù)據(jù)來驅(qū)動(dòng)產(chǎn)品發(fā)展打下基礎(chǔ)。
文章分別為幾個(gè)小主題,可以逐步滿足你日益復(fù)雜的埋點(diǎn)需求:
- 點(diǎn)的主次;
- 點(diǎn)的名字;
- 點(diǎn)的抽象;
- 點(diǎn)的管理;
一、點(diǎn)的主次
1. 目標(biāo)與優(yōu)先級(jí)
筆者最近接手了一些公司的老項(xiàng)目,為了能夠更好弄清項(xiàng)目現(xiàn)狀,用于對(duì)未來產(chǎn)品進(jìn)行迭代,在項(xiàng)目交接時(shí)讓前端研發(fā)同學(xué)重新進(jìn)行了埋點(diǎn)。
產(chǎn)品功能不算復(fù)雜,但也有八個(gè)頁面,筆者根據(jù)產(chǎn)品經(jīng)驗(yàn)和項(xiàng)目的輕重緩急,只把其中最主要的三個(gè)頁面進(jìn)行比較詳細(xì)的埋點(diǎn),剩余的頁面則只是進(jìn)行了頁面訪問計(jì)數(shù);這樣能夠讓獲得的數(shù)據(jù)更聚焦,將注意力放在主要流程上,次級(jí)頁面我們先對(duì)頁面的訪問量保有基本的感知即可;等主體環(huán)節(jié)優(yōu)化好后,再根據(jù)情況進(jìn)行埋點(diǎn)優(yōu)化。
寫文檔+溝通確認(rèn)+埋點(diǎn)+測(cè)試,其實(shí)也蠻花時(shí)間的,少一點(diǎn)是一點(diǎn)。
2. 反饋事件的記錄
本文的埋點(diǎn)一直都在說的是用戶的行為,但通常還有一類行為也需要我們關(guān)注,即用戶行為的反饋。
第一次聽這個(gè)說法可能會(huì)比較抽象,但舉幾個(gè)例子大家很快就能理解:
- 用戶點(diǎn)擊支付后,服務(wù)器返回商品支付結(jié)果;
- 練習(xí)題目,選擇完選項(xiàng)后,結(jié)果的正確與錯(cuò)誤;
- 用戶的不當(dāng)操作,給出的錯(cuò)誤提醒反饋…;
如果把用戶的行為理解為過程,那么上面這些所說的這些就是結(jié)果。
通常這些結(jié)果都會(huì)在服務(wù)器進(jìn)行了存儲(chǔ),比如支付結(jié)果會(huì)生成訂單,做題的結(jié)果會(huì)計(jì)算分?jǐn)?shù)等;而這些結(jié)果是否需要直接從服務(wù)器返回后又通過埋點(diǎn)方式傳入數(shù)據(jù)庫,則可以根據(jù)個(gè)人的需求來。
如果你每天都需要觀察數(shù)據(jù),或者沒有人幫你處理數(shù)據(jù),則盡量把數(shù)據(jù)放一起,保證用戶數(shù)據(jù)流的連續(xù)性;相反則可以少埋或者不埋,提升安全和性能。
二、點(diǎn)的名字
埋點(diǎn)文檔中,每個(gè)點(diǎn)其實(shí)都有自己的名字;起一個(gè)好名字能讓你采集到的數(shù)據(jù)更直觀、實(shí)用。
1. 簡短
這一點(diǎn)是很多新手都會(huì)犯的誤區(qū),特別是在入門篇沒有學(xué)習(xí)私有屬性之前。
取一個(gè)好名字,能夠快速的讓你定位到你要查詢的事件數(shù)據(jù),不好的事件會(huì)把各種信息揉在一起,把why、what、where、when、who等信息一股腦全放在名字里。
就像我們偉大的龍母,每次的開場(chǎng)白一樣——丹妮莉絲 坦格利安,舊瓦雷利亞的后裔,安達(dá)爾人先民的女王,維斯特洛的統(tǒng)治者暨全境守護(hù)者,大草原多斯拉克人卡麗熙,不焚者,彌林的女王,鐐拷打破者,龍之母,阿斯塔波的解放者,羅伊拿人和先民的女王,龍石島公主。
如果把上面的介紹比作一個(gè)數(shù)據(jù)埋點(diǎn)的話,名字可以只是丹妮莉絲 坦格利安,其它的都是補(bǔ)充屬性,比如:
- 名稱:丹妮莉絲 坦格利安;
- 血統(tǒng):舊瓦雷利亞的后裔;
- 領(lǐng)地:維斯特洛,彌林,大草原多斯拉克人;
- 臣民:安達(dá)爾人先民,羅伊拿人和先民;
- 頭銜:龍之母,女王,公主,解放者;
- …
擅用私有屬性,能夠讓最終產(chǎn)生的數(shù)據(jù)更清晰,也能夠讓數(shù)據(jù)分析起來更容易。
2. 命名的關(guān)系
以app和web舉例,這里先以頁面訪問和頁面點(diǎn)擊事件這兩種最基礎(chǔ)的事件類型進(jìn)行說明,頁面會(huì)承載用戶的用戶的行為,或者所有的用戶行為都要以頁面作為載體;則點(diǎn)的命名上,也推薦讓行為與地點(diǎn)進(jìn)行一定關(guān)聯(lián)。
頁面命名,頁面的主要功能+類型后綴,類型后綴主要是為了增加辨識(shí)度,舉例:
- HomePage_View
- NovellDetailPage_View
- ReadingPage_View
這里Page_View是筆者偏好的名字類型后綴,覺得不舒服的可以不加,或者只加Page。
接下來再聊一下在頁面上發(fā)生的事件,如前圖所示,每個(gè)動(dòng)作都會(huì)承載于某個(gè)頁面之上,所以頁面點(diǎn)擊事件會(huì)以 頁面名稱前綴+動(dòng)作+類型后綴,三個(gè)模塊來組合:
- homepage_item_click
- homepage_login_click
- readingpage_share_click
如此,當(dāng)我們的拿到數(shù)據(jù)時(shí),只看數(shù)據(jù)本身,也可以看到一條非常清晰的數(shù)據(jù)鏈。
這里筆者展示一個(gè)用戶訪問頁面的真實(shí)案例:
只用掃一眼,就能立即知道:
以此來感知,用戶對(duì)我們的產(chǎn)品的一個(gè)真實(shí)反饋。
3. 正確
最后,請(qǐng)務(wù)必保證點(diǎn)名稱的單詞拼寫正確——這是一個(gè)產(chǎn)品經(jīng)理基本的態(tài)度問題,拼寫錯(cuò)誤會(huì)讓你的合作伙伴對(duì)你的信任度降低。
錯(cuò)誤的埋點(diǎn)一但進(jìn)入數(shù)據(jù)庫,一般也是不可變更,隨意的變更同一個(gè)點(diǎn)的名稱則很容易造成分析上的斷層;但不改又會(huì)讓人很難堪,陷入一個(gè)兩難的局面。
三、點(diǎn)的抽象
1. 同類合并
學(xué)會(huì)了給點(diǎn)起名字,一個(gè)名字對(duì)應(yīng)一個(gè)點(diǎn),那我們回到之前小說大全的原型圖,請(qǐng)讀者思考一下,這一塊的四個(gè)按鈕需要幾個(gè)點(diǎn)來描述?4個(gè),3個(gè)還是1個(gè)?
這個(gè)原型畫得比較粗糙,需要根據(jù)大家的需求和實(shí)際情況來結(jié)合。
如果這個(gè)原型畫的只是固定的四個(gè)按鈕,則直接將四個(gè)點(diǎn)分別起名字也不失為一種高效的方法;但如果是個(gè)列表,表中有數(shù)量可變、內(nèi)容可變、排序可變的選擇,則強(qiáng)烈推薦通過私有屬性來對(duì)事件多維度的補(bǔ)充區(qū)分。
這里也給大家留一個(gè)小作業(yè),知道入門篇最后那個(gè)埋點(diǎn)文檔中,有一個(gè)什么樣的優(yōu)化點(diǎn)了嘛?
2. 頁面私有屬性
前面也提到了,盡量使用私有屬性。
但在一些情況下,局部的私有屬性也可以單獨(dú)抽離出來,形成頁面的私有屬性;比如,用戶進(jìn)入一些次級(jí)頁面時(shí),會(huì)帶一些狀態(tài),或者用戶的每個(gè)行為都與當(dāng)前所處的頁面內(nèi)容有關(guān)。
以前面的小說產(chǎn)品為例,所有的閱讀頁面上面的操作,除了頁面位置這個(gè)信息外,還有頁面內(nèi)容的信息需要記錄。
這時(shí),可以在文檔上做一個(gè)頁面級(jí)的抽象,形成頁面私有屬性:
對(duì)比一下,是不是又清爽了很多呢?
3. 通用組件
再近一步,產(chǎn)品中有一些組件是不屬于任何一個(gè)頁面,卻又可能隨時(shí)出現(xiàn)在產(chǎn)品中的任何地方,比如彈窗提醒、支付、登錄失效等;這種組件所產(chǎn)生的行為則可以單獨(dú)的寫在一起,這個(gè)比較好理解就不單獨(dú)展示了。
四、點(diǎn)的管理
埋點(diǎn)文檔其實(shí)程序員們寫的代碼一樣,是有版本管理,且要可以追溯。
但相比他們,我們并沒有很好的文檔管理工具情況下,筆者通過以下三個(gè)方法來對(duì)埋點(diǎn)文檔進(jìn)行管理與歸檔操作:
1. 產(chǎn)品版本與埋點(diǎn)文檔版本
- 筆者在入門篇就已經(jīng)申明,產(chǎn)品不埋點(diǎn)不能上線。同樣的,產(chǎn)品的每次需求發(fā)版,埋點(diǎn)文檔也要發(fā)更新;
- 埋點(diǎn)文檔也是有版本的,筆者會(huì)習(xí)慣將埋文檔的版本號(hào)與產(chǎn)品版本號(hào)保持一致,且每次都簡單記錄了產(chǎn)品迭代的內(nèi)容;
- 不同版本間的埋點(diǎn)文檔,新增和修改的內(nèi)容要及時(shí)更新,但刪除的點(diǎn)則要備注后,多經(jīng)過幾個(gè)版本后再刪除,這樣追查起來會(huì)比較方便;
- 埋點(diǎn)文檔只做新增,不做覆蓋,即如果產(chǎn)品發(fā)了十次版本,則會(huì)有十份埋點(diǎn)文檔;且最新版本的埋點(diǎn)文檔,一定是最新、最全的版本。
這樣,筆者在整理過去一年時(shí)間中,產(chǎn)品各個(gè)迭代所產(chǎn)生的數(shù)據(jù)結(jié)果,及相應(yīng)的事件分類都可以輕松快速的找到。
2. 埋點(diǎn)文檔版本與點(diǎn)版本
除了每份埋點(diǎn)文檔有版本,筆者的每個(gè)點(diǎn)都有版本號(hào)。
是不是聽上去很復(fù)雜?其實(shí)這也是融合之前筆者程序員的經(jīng)歷,相當(dāng)于git中,每一行代碼可以不斷的融合與迭代,但又能追溯到每一行代碼的來源。
我們倒不用記錄得那么詳細(xì),在埋點(diǎn)文檔中,每一個(gè)點(diǎn)把出現(xiàn)的產(chǎn)品版本號(hào)記錄上就好了;一般情況下,點(diǎn)的版本號(hào)不會(huì)高于當(dāng)前產(chǎn)品的版本號(hào)。
除非是這個(gè)點(diǎn)當(dāng)前版本條件技術(shù)條件不滿足,提醒自己下個(gè)版本需要實(shí)現(xiàn)
一般文檔中的點(diǎn)版本號(hào)會(huì)有以下幾種情況:
- 如果點(diǎn)的版本號(hào)低于文檔版本號(hào),則此點(diǎn)是一個(gè)更早期的數(shù)據(jù)埋點(diǎn),可以提示研發(fā)同學(xué)如果沒有修改則可以不需要做任何修改;
- 如果點(diǎn)的版本號(hào)與當(dāng)前產(chǎn)品版本號(hào)相同,且沒有人進(jìn)行埋點(diǎn),則此點(diǎn)是一個(gè)新點(diǎn),需要在當(dāng)前版本中加上;
- 如果在新的版本中,如果對(duì)老的點(diǎn)要進(jìn)行修改,比如添加修改屬性等,則會(huì)把原來的老版本號(hào)和埋點(diǎn)人刪除,換上新的版本號(hào);
如此,研發(fā)同學(xué)能夠快速的找到所有當(dāng)前版本中需要埋的新點(diǎn):
如果之前大家看到的埋點(diǎn)文檔是1.0,這個(gè)2.0版本發(fā)布時(shí),哪些點(diǎn)要添加、哪些點(diǎn)要修改、哪些點(diǎn)要?jiǎng)h除,基本上一目了然。
3. 點(diǎn)版本與埋點(diǎn)記錄
跟著前面的案例繼續(xù),每一個(gè)埋點(diǎn)文檔都需要在研發(fā)完成埋點(diǎn)后進(jìn)行簽名記錄。
- 這樣一是提醒研發(fā)同學(xué)哪些點(diǎn)埋了,哪些點(diǎn)沒有埋;
- 雖然埋點(diǎn)之前都會(huì)溝通,但實(shí)際數(shù)據(jù)采集還是有多種實(shí)現(xiàn)手段,特別是讀者不太了解技術(shù)的情況下;一旦出現(xiàn)第三方引用時(shí),還可以第一時(shí)間找到相應(yīng)的負(fù)責(zé)人;
- 結(jié)合埋點(diǎn)版本,則可以知道最早這個(gè)點(diǎn)是什么時(shí)候埋下去的,即從哪一個(gè)版本開始有數(shù)據(jù);
如下圖所示,我們會(huì)發(fā)現(xiàn)2.0版本的埋點(diǎn)還沒有埋,趕快督促一下研發(fā)吧。
通過這種方法,即使是數(shù)十個(gè)版本之前的埋點(diǎn),只要不出現(xiàn)大的遷移或者重構(gòu),還是可以穩(wěn)定的工作,提供數(shù)據(jù)。
五、總結(jié)
如果大家對(duì)份案例還有解讀上的困難,可以加筆者微信留言。
但埋點(diǎn)和埋點(diǎn)文檔多嘗試,筆者的這套埋點(diǎn)文檔從思考到實(shí)戰(zhàn)也就經(jīng)過大約半年后就基本穩(wěn)定;取得了比較好的效果,得到了公司的數(shù)據(jù)團(tuán)隊(duì)的認(rèn)可(可惜他們沒有能力推廣);筆者的團(tuán)隊(duì)的埋點(diǎn)規(guī)范就按照筆者的這套規(guī)范來進(jìn)行編寫,相信大家能夠有所收獲。
最后,就是不要沉迷于數(shù)據(jù),數(shù)據(jù)只是當(dāng)前和曾經(jīng)發(fā)生的事情的反饋,只能作為大家在決策和思考時(shí)的輔助,人不能兩次踏進(jìn)同一條河流,產(chǎn)品也是。
作者:核桃殼,微信:walnutshell911
本文由 @?核桃殼 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議
感謝作者,有模板嗎
請(qǐng)問事件結(jié)果反饋記錄是不是就是文檔中的私有屬性取值范圍?
埋點(diǎn)是手段,收集數(shù)據(jù)才是目標(biāo)。需要收集的數(shù)據(jù)指標(biāo)及其存儲(chǔ)格式、相關(guān)數(shù)據(jù)與埋點(diǎn)之間的映射關(guān)系(相關(guān)數(shù)據(jù)與埋點(diǎn)之間理論上是多對(duì)多的關(guān)系)都會(huì)影響前端的埋點(diǎn)數(shù)量,也就是說前面的規(guī)則不一樣,埋點(diǎn)數(shù)量就不一樣,需要取得名字自然就不一樣。比如文中小說大全那個(gè)圖示,后臺(tái)存儲(chǔ)數(shù)據(jù)的字段可以設(shè)置為:“①實(shí)體名:小說點(diǎn)擊率;實(shí)體字段:小說名、點(diǎn)擊用戶信息、操作時(shí)間、操作渠道、操作終端巴拉巴拉;②實(shí)體名:水滸傳/三國演義小說點(diǎn)擊率(不同小說的數(shù)據(jù)分開存儲(chǔ));實(shí)體字段:點(diǎn)擊用戶信息、操作時(shí)間、操作渠道、操作終端巴拉巴拉。”等多種;映射關(guān)系可以是上述①對(duì)應(yīng)4個(gè)埋點(diǎn)或者對(duì)應(yīng)1、2、3、4個(gè)埋點(diǎn),也可以是上述②對(duì)應(yīng)1、2、3、4個(gè)埋點(diǎn)。真正實(shí)現(xiàn)的時(shí)候還要看小說是不是可以后臺(tái)上下架的,如果是支持上下架的,因?yàn)樾≌f為動(dòng)態(tài)數(shù)據(jù),枚舉值范圍不定,一般數(shù)據(jù)會(huì)存儲(chǔ)會(huì)按照①來存,埋點(diǎn)也就一個(gè)就行。不過在現(xiàn)實(shí)案例中是怎么操作的都有,很多時(shí)候即便后臺(tái)支持小說的上下架,也有很多人會(huì)因?yàn)楦鞣N原因按照②來存儲(chǔ)數(shù)據(jù)。
????
感謝分享,倒回去看了下關(guān)于小程序運(yùn)營部分的,受益匪淺,感謝。
寫得很好,受益匪淺。有數(shù)據(jù)埋點(diǎn)文檔模板嘛,希望可以學(xué)習(xí)一下。
上一篇有例子,不知道算不算文檔