一.什么是數(shù)據(jù)需求文檔
數(shù)據(jù)需求文檔簡稱DRD捞蛋,英文全稱Data Raquirements Document,工作中一般稱之為“埋點(diǎn)文檔”。
二.為什么要寫數(shù)據(jù)需求文檔
相信大家都做過埋點(diǎn)相關(guān)的工作饲嗽,有此時(shí)候,當(dāng)面對(duì)一些埋點(diǎn)需求時(shí)奈嘿,我們往往不知道需要哪些數(shù)據(jù)貌虾,也不清楚這些數(shù)據(jù)有什么屬性,有時(shí)候能梳理出來一些裙犹,但還是缺這缺那的尽狠,最后跟研發(fā)溝通時(shí),研發(fā)根本聽不懂我們?cè)谡f什么叶圃,反過來我們還會(huì)被研發(fā)問住袄膏,而數(shù)據(jù)需求文檔能很好的明確我們的需求及需求的要求和細(xì)節(jié),讓研發(fā)明確實(shí)現(xiàn)的結(jié)果掺冠。在后續(xù)的工作中也方便有據(jù)可查沉馆,如果有一天我們要離職,在交接上更容易德崭,也顯得更職業(yè)斥黑,也方便跟進(jìn)者很清楚的了解之前的做法和過程。
三.一份出色的數(shù)據(jù)需求文檔包括哪些內(nèi)容眉厨?
一分出色的數(shù)據(jù)需求文檔一般包括兩部分內(nèi)容:
part1.明確埋點(diǎn)需求
做埋點(diǎn)的最終目的是有能力觀察及分析數(shù)據(jù)锌奴,在這之前,我們要先歸納需求憾股,這個(gè)需求是產(chǎn)品自身的指標(biāo)建模還是業(yè)務(wù)部門的分析需求呢鹿蜀,然后根據(jù)歸類選擇適當(dāng)?shù)穆顸c(diǎn)屬性。
我們給事件添加屬性時(shí)是有些方法的服球,有時(shí)候說不定我們還沒想好以后怎么分析耻姥,我們就可以用4W1H這個(gè)方法去設(shè)計(jì)一條埋點(diǎn)中所需要添加的屬性。
4W1H方法論
4W1H是指Who When?Where How?What有咨,即某個(gè)用戶在某個(gè)時(shí)間點(diǎn)琐簇、某個(gè)地方以某種方式完成了某個(gè)具體的事情,一個(gè)出色的埋點(diǎn)應(yīng)該包括以上五種信息。
首先婉商,我們來聊聊Who(某個(gè)用戶)
1.Who
當(dāng)我們需求定義到人時(shí)有兩種方式:
第一似忧、認(rèn)設(shè)備
web:如果是網(wǎng)頁,我們用網(wǎng)頁上的一段cookie來定義丈秩,網(wǎng)頁在進(jìn)行任何操作上報(bào)埋點(diǎn)時(shí)把這段cookie帶上盯捌,后面做分析時(shí)就能把不同的人給區(qū)分開。
iOS:如果用的是iOS的移動(dòng)設(shè)備蘑秽,可以用UUID饺著、IDFV、IDFA這樣的標(biāo)識(shí)來進(jìn)行區(qū)分用戶肠牲。
Android:如果用的是Android的移動(dòng)設(shè)備幼衰,我們可以用UUID、Android ID這樣的標(biāo)識(shí)來進(jìn)行區(qū)分用戶缀雳。
第二渡嚣、認(rèn)人
線上:如果我們是線上的采集場景的話,像UID肥印、微信等第三方Union ID/ Open ID识椰、手機(jī)號(hào)、身份證都能作為唯一的身份標(biāo)識(shí)深碱。
線下:一般用的手機(jī)號(hào)腹鹉、身份證來作為唯一的身份標(biāo)識(shí)。
在Who這一塊兒我們的目的是:希望在埋點(diǎn)里面提供一個(gè)信息敷硅,這個(gè)信息可以幫助我們區(qū)分出來唯一的用戶功咒。
2.When
Where這一塊有兩個(gè)問題需要注意:
第一、哪個(gè)節(jié)點(diǎn)的時(shí)間
一個(gè)數(shù)據(jù)的產(chǎn)生是由事件發(fā)生-事件上報(bào)-事件接收-事件入庫是分成四部分的竞膳,這四個(gè)部分時(shí)間都不相同航瞭,如果有時(shí)候我們跟研發(fā)的溝通不是特別的密切,有的研發(fā)就會(huì)采用錯(cuò)誤的事件坦辟。
舉個(gè)栗子:某個(gè)事件是在上午12點(diǎn)12分12秒發(fā)生的 刊侯,在我們的理解了這個(gè)事件應(yīng)該被記為12點(diǎn)12分12秒。但是為了給用戶省電量或者節(jié)省流量锉走,一般不會(huì)每產(chǎn)生一條記錄上報(bào)一次滨彻,通常的策略是延遲上報(bào),比如每30秒集中的打包一次挪蹭,把這些30秒期間所有發(fā)生的埋點(diǎn)集中上報(bào)一次亭饵,如果研發(fā)實(shí)現(xiàn)的不太好,這個(gè)30秒內(nèi)所有的事件上報(bào)時(shí)被打成同一個(gè)時(shí)間梁厉,這在我們后續(xù)研究用戶行為序列時(shí)和做路徑時(shí)就會(huì)非常尷尬辜羊。
第二踏兜、哪個(gè)時(shí)區(qū)的時(shí)間
現(xiàn)在很多公司都布局海外市場,如果做海外市場就會(huì)有時(shí)區(qū)的問題八秃,比如都是12點(diǎn)12分12秒碱妆,但是全球各地關(guān)于12點(diǎn)12分12秒的定義不一樣,這里有兩種處理方式昔驱。
第一種:上報(bào)時(shí)間時(shí)疹尾,把時(shí)區(qū)直接帶上。這樣后面我們?nèi)ヌ幚砗头治鰯?shù)據(jù)時(shí)比較方便骤肛。
第二種:使用Unix時(shí)間戳纳本。這個(gè)時(shí)間戳有個(gè)特點(diǎn):全球統(tǒng)一,不管在哪個(gè)時(shí)區(qū)腋颠,取出來都是唯一的值繁成。因?yàn)闀r(shí)間戳運(yùn)作的原理是:從1970年1月1日零晨0點(diǎn)0分0秒開始計(jì)數(shù),每增加1秒加1秕豫,一直累加朴艰,直到現(xiàn)在观蓄。
3.Where
Where這一塊兒我們有三種方法可以采集
第一混移、GPS
GPS是通過衛(wèi)星去定位當(dāng)前的經(jīng)度和緯度,但我們做分析的時(shí)候一般不要經(jīng)緯度侮穿,我們需要用戶的詳細(xì)地址歌径,像國家/省/市/街道,這里我們可以運(yùn)用轉(zhuǎn)換工具亲茅,比如高德地圖或百度地圖回铛,它們就會(huì)給出這個(gè)經(jīng)緯度所處的國家/省/市/街道。
第二克锣、IP
IP地址通常針對(duì)的是網(wǎng)站用戶或者是移動(dòng)端不把地理位置授權(quán)給我們的用戶茵肃,但I(xiàn)P是統(tǒng)一分配給運(yùn)營商的,所以通常來說比較粗略袭祟,一般能取到市就不錯(cuò)了验残。這里我們可以通過第三方軟件去反查所屬地。
第三巾乳、自主填寫
有一種情況是用戶實(shí)際在哪對(duì)我們業(yè)務(wù)來說不重要您没,我們更關(guān)心用戶希望在哪兒,比如租房買房類的產(chǎn)品胆绊,這種情況我們更需要的是用戶想要在哪兒的位置氨鹏。像這種類型的產(chǎn)品呢我們可以讓用戶自主填寫。
4.How
比如压状,用戶用的是什么設(shè)備仆抵?裝的是哪個(gè)版本?操作系統(tǒng)是什么?用的哪個(gè)瀏覽器镣丑?現(xiàn)在是4G還是wifi还栓?從哪個(gè)頁面跳過來的?從哪個(gè)渠道來的传轰?這些信息我們都需要提前定義好剩盒,然后放在埋點(diǎn)里面準(zhǔn)備著。How 這部分是用戶在做這件事所處的環(huán)境慨蛙,所用的手段辽聊,就是用戶做這件事的所有環(huán)境盡可能多的全面的還原出來。
5.What
前面的某個(gè)用戶在某個(gè)時(shí)間點(diǎn)期贫、某個(gè)地方以某種方式這四步都是輔助的跟匆,最重要的在第五步,即完成了某個(gè)具體的事情通砍。
比如購買這個(gè)事件中商品的名稱玛臂、商品類型是什么,購買的數(shù)量是多少封孙,金額是什么迹冤,付款方式是哪一種。把這些信息都記錄下來之后虎忌,比如付款方式有三種:余額支付泡徙、支付寶支付、信用卡支付膜蠢,當(dāng)我們統(tǒng)計(jì)了足夠多的事件之后堪藐,比如說昨天的余額支付從500降到200,這時(shí)我們就可以去按照不同的支付方式去拆解挑围,發(fā)現(xiàn)這些支付情況的情況礁竞,我們就可以根據(jù)這些數(shù)據(jù)去分析原因。
我們?cè)谧雎顸c(diǎn)時(shí)能夠把埋點(diǎn)的這五個(gè)方面都補(bǔ)充完杉辙,那么這個(gè)埋點(diǎn)就是一個(gè)完整的埋點(diǎn)模捂,從而保證在后面分析時(shí)是有真正的東西可以分析的。而不是每次想分析時(shí)再去補(bǔ)奏瞬。
最后需要注意的是:像who when where這三個(gè)是公共屬性,公共屬性統(tǒng)一取值枫绅、維護(hù)。研發(fā)直接去讀公共屬性的值就行硼端。
part2.埋點(diǎn)實(shí)施過程中的細(xì)節(jié)
在跟研發(fā)溝通中最大的沖突時(shí)埋前端還是埋后端并淋,建議:除非某個(gè)行為只在前端發(fā)生,否則珍昨,建議永遠(yuǎn)在后端采集县耽。前端埋點(diǎn)是只有在前端才能采集到的數(shù)據(jù)句喷,一些偏業(yè)務(wù)流程的偏場景的建議在后端埋點(diǎn)。
1.前端埋點(diǎn)的弊端
某些屬性前端沒有
where(都不一定有)/ what/ how 的許多信息兔毙,往往只存于后端唾琼。
比如IP:有時(shí)候網(wǎng)頁是拿不到IP的,因?yàn)橛袝r(shí)候你是處于重重的防火墻和路由器后面澎剥,網(wǎng)頁不知道用戶的IP是什么锡溯,用戶請(qǐng)求到達(dá)服務(wù)器時(shí),服務(wù)器知道網(wǎng)絡(luò)IP是什么哑姚。
改動(dòng)依賴產(chǎn)品發(fā)版
APPStore需審核祭饭、web發(fā)版也有排期,響應(yīng)速度不如后端叙量,如果在后端做這個(gè)埋點(diǎn)那就簡單多了倡蝙,我們可以隨時(shí)改,隨時(shí)發(fā)布绞佩。
事件上報(bào)時(shí)機(jī)略尷尬
有時(shí)候我們需要給用戶省流量和省電量寺鸥,這時(shí)就不能及時(shí)的上傳事件,比如說30秒上報(bào)一次品山,那這就犧牲了數(shù)據(jù)的時(shí)效性胆建。
2.埋點(diǎn)屬性的來源
前端
調(diào)用API:從接口上取,比如:商品名谆奥、商品分類等眼坏。
取頁面上的值:就是當(dāng)前界面上我們能看到的文字和數(shù)值?
行為統(tǒng)計(jì):(e.g.前臺(tái)timer,自行觸發(fā)&記錄頁面時(shí)長):比如前端有計(jì)時(shí)器記錄用戶的使用時(shí)長拂玻。
后端
業(yè)務(wù)數(shù)據(jù):比如從前端發(fā)過來的業(yè)務(wù)請(qǐng)求數(shù)據(jù)酸些,
查關(guān)聯(lián)表:比如前端發(fā)過來的商品ID數(shù)據(jù),我想基于商品ID去查到這個(gè)商品的其他一些信息
前端送來的數(shù)據(jù):有些數(shù)據(jù)是后端取不到的檐蚜,前端把數(shù)據(jù)發(fā)送過來魄懂,后端存起來)
技術(shù)數(shù)據(jù):(e.g.單次事件響應(yīng)時(shí)間)比如發(fā)起一個(gè)搜索請(qǐng)求,那后端的邏輯是用戶發(fā)送搜索請(qǐng)之后闯第,多久把搜索結(jié)果反饋過去呢市栗,這里可以把用戶的搜索時(shí)間記錄下來
3.埋點(diǎn)有效性的校驗(yàn)
校驗(yàn)埋點(diǎn)有效性的手段有兩種:
第一、抓包:如果有web端我們就可以通過谷歌瀏覽器的開發(fā)者工具直接去看這個(gè)網(wǎng)頁跟服務(wù)器發(fā)送的通信請(qǐng)求咳短,埋點(diǎn)也都在里面填帽。如果APP的話抓包就比較麻煩一些,這時(shí)可以借助一些工具咙好。
第二篡腌、看數(shù)據(jù)平臺(tái)是否顯示對(duì)應(yīng)事件:從接收方那看,現(xiàn)在很多平臺(tái)都支持查看從用戶那發(fā)過來的原始的埋點(diǎn)數(shù)據(jù)勾效。
為什么要去做校驗(yàn)?zāi)剜诘浚恳驗(yàn)橛脩粜袨榈奶卣鞯臄?shù)據(jù)不具備回溯性叛甫,信息損失了,后續(xù)再也補(bǔ)不回來了杨伙。因此在埋點(diǎn)上線之前我們一定要做好查驗(yàn)的工作其监。
好啦,本篇文章到這里就結(jié)束了限匣,下面是一個(gè)簡單的數(shù)據(jù)需求文檔的樣板抖苦,供大家參考: