大概一年前在簡書寫和大家分享了用戶行為埋點(diǎn)數(shù)據(jù)采集的相關(guān)內(nèi)容嘶摊,得到了很多贊和關(guān)注,很高興這些內(nèi)容可以幫助到大家窍仰。
在之后的一年里短条,團(tuán)隊(duì)部署了神策分析导匣,Thea 接觸學(xué)習(xí)到了目前主流的埋點(diǎn)模型--「事件模型」,有很多啟發(fā)慌烧,讓我開始重新思考埋點(diǎn)的本源逐抑。這是一篇關(guān)于埋點(diǎn)體系建設(shè)的文章,談?wù)撊齻€(gè)核心問題:1. 什么是埋點(diǎn)屹蚊?2. 什么是好的埋點(diǎn)體系厕氨?3. 如何著手搭建埋點(diǎn)體系?
如果沒有讀過《用戶行為采集》列表文章汹粤,請點(diǎn)擊閱讀命斧。
一. 什么是埋點(diǎn)?
當(dāng)我們要應(yīng)用數(shù)據(jù)時(shí)嘱兼,「巧婦難為無米之炊」這句話常常被提起国葬,這句話是在表達(dá),應(yīng)用數(shù)據(jù)的前提是先有數(shù)據(jù)芹壕。這可能聽起來是句廢話汇四,但在實(shí)際的工作場景中,數(shù)據(jù)團(tuán)隊(duì)常常會收到一些「奇怪」的需求踢涌。比如通孽,業(yè)務(wù)人員希望了解昨日使用搜索功能的用戶數(shù),而實(shí)際上數(shù)據(jù)庫里面并沒有存用戶點(diǎn)擊搜索按鈕這個(gè)行為的相關(guān)數(shù)據(jù)睁壁。又比如背苦,數(shù)據(jù)庫中記錄了打開小程序這一行為的相關(guān)數(shù)據(jù)互捌,而業(yè)務(wù)人員希望了解通過不同場景啟動(如,列表下拉打開行剂,單人聊天頁面分享打開等)打開小程序的用戶數(shù)秕噪,由于數(shù)據(jù)庫并沒有在用戶啟動小程序時(shí)記錄啟動的場景,這樣的需求也是無法被滿足的厚宰。這樣的情景都可以用「巧婦難為無米之炊」來比喻腌巾。
既然「先有數(shù)據(jù)」是一切數(shù)據(jù)應(yīng)用的前提,如何才能把業(yè)務(wù)關(guān)心的用戶行為數(shù)據(jù)都收集存儲下來呢固阁?答案就是 -- 埋點(diǎn)壤躲。
如何理解「埋點(diǎn)」?Thea 有一個(gè)比較直覺的理解:埋點(diǎn)就是部署在前端备燃,或服務(wù)端的一段代碼,當(dāng)用戶觸發(fā)了某種特定的操作凌唬,這段代碼就會生成一條數(shù)據(jù)發(fā)送到數(shù)據(jù)庫里并齐,這條數(shù)據(jù)會記錄哪個(gè)用戶在什么時(shí)候以什么樣的方式做了一件什么樣的事。于是客税,當(dāng)我們想要統(tǒng)計(jì)用戶操作某功能的次數(shù)况褪、瀏覽頁面的時(shí)長、某頁面的跳出率時(shí)更耻,就需要用埋點(diǎn)去采集這些信息测垛。
二. 什么是好的埋點(diǎn)體系?
埋點(diǎn)就埋點(diǎn)唄秧均,為什么還要在「埋點(diǎn)」兩個(gè)字后面加「體系」食侮,這是因?yàn)殡m然埋點(diǎn)本身技術(shù)實(shí)現(xiàn)的難度并不高,但是整個(gè)埋點(diǎn)的過程可以說十分的復(fù)雜繁瑣目胡,有非常多細(xì)節(jié)需要考慮锯七。不是某個(gè)角色能獨(dú)立完成的工作,需要數(shù)據(jù)團(tuán)隊(duì)誉己、研發(fā)團(tuán)隊(duì)眉尸、測試團(tuán)隊(duì)、業(yè)務(wù)團(tuán)隊(duì)多方參與巨双。如何讓各方高效地協(xié)作噪猾,采集到業(yè)務(wù)線真正所需要的數(shù)據(jù)?埋點(diǎn)上線之后筑累,BI 同學(xué)是否能清楚地知道埋點(diǎn)的元數(shù)據(jù)信息袱蜡,加工出業(yè)務(wù)需要的指標(biāo)?基本上疼阔,開發(fā)人員都不太愿意做「埋點(diǎn)」的工作戒劫,如何去說服他們半夷?這一系列問題都是埋點(diǎn)工作中需要考慮的,到最后迅细,埋點(diǎn)不僅僅是一串能采集用戶行為數(shù)據(jù)的代碼巫橄,而是一整套能實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)需求的復(fù)雜體系,其中包括埋點(diǎn)模型茵典、埋點(diǎn)SDK湘换、埋點(diǎn)流程規(guī)范、埋點(diǎn)工具统阿、用戶行為分析平臺等等這些內(nèi)容彩倚。
正由于埋點(diǎn)業(yè)務(wù)一套非常復(fù)雜的體系,需要投入很多的資源和人力去長期的運(yùn)營扶平,我們對埋點(diǎn)工作的要求就不止是解決采集數(shù)據(jù)的有無問題帆离,還要關(guān)注成本問題、質(zhì)量問題结澄,也就是說如何以較低的成本穩(wěn)定產(chǎn)出高質(zhì)量的埋點(diǎn)哥谷?我認(rèn)為一個(gè)好的埋點(diǎn)體系應(yīng)該同時(shí)滿足:
成本低,埋點(diǎn)從需求到開發(fā)上線麻献,再到數(shù)據(jù)分析们妥,各方的操作成本低。
效率高勉吻,埋點(diǎn)模型全面监婶、復(fù)用性高,不需要每個(gè)埋點(diǎn)需求都走一遍埋點(diǎn)流程齿桃。
質(zhì)量好惑惶,通過機(jī)制和上線化的工具保證埋點(diǎn)需求端到端的交付。
三. 如何著手搭建好的埋點(diǎn)體系源譬?
一般而言集惋,一條完整的埋點(diǎn)工作流長下面這個(gè)樣子。
我們把上面描述的三個(gè)目標(biāo)拆解到埋點(diǎn)工作流中去:
在埋點(diǎn)業(yè)務(wù)流程的每個(gè)步驟中 踩娘,我們可以做些什么讓能整個(gè)埋點(diǎn)體系實(shí)現(xiàn)成本更低刮刑、更高效、質(zhì)量更好:
需求溝通养渴,業(yè)務(wù)同學(xué)要把需求傳達(dá)給數(shù)據(jù)團(tuán)隊(duì)雷绢。我們都知道,溝通是一個(gè)時(shí)間黑洞理卑,應(yīng)最大程度地提升埋點(diǎn)需求的溝通效率翘紊,讓業(yè)務(wù)人員清楚有埋點(diǎn)需求應(yīng)該找誰對接、如何把需求描述得清楚藐唠。
埋點(diǎn)設(shè)計(jì)帆疟,重點(diǎn)在于埋點(diǎn)模型鹉究,好的埋點(diǎn)模型抽象能力強(qiáng),能夠更全面的覆蓋用戶行為踪宠,也有更好的復(fù)用性自赔,設(shè)計(jì)起來也更加簡單,可以極大的提升埋點(diǎn)工作流的效率柳琢。埋點(diǎn)模型設(shè)計(jì)得好還能提升后續(xù)數(shù)據(jù)計(jì)算的性能仅讽。另外银受,因?yàn)槲覀兛紤]的是企業(yè)級的埋點(diǎn)體系建設(shè)邢羔,需要統(tǒng)一的設(shè)計(jì)妄均。
需求評審:很必要把埋點(diǎn)當(dāng)作一條獨(dú)立的研發(fā)流程來看待,設(shè)置專門的埋點(diǎn)需求評審倒堕,這么做的好處灾测,一方面是讓大家重視埋點(diǎn)研發(fā),另一方面涩馆,因?yàn)閰⑴c埋點(diǎn)的團(tuán)隊(duì)比較多行施,可以在需求評審時(shí)把大家聚到一起,同步埋點(diǎn)方案魂那、業(yè)務(wù)價(jià)值、研發(fā)計(jì)劃等稠项,協(xié)同各方各司其職涯雅。
開發(fā)測試:研發(fā)和測試按照評審?fù)ㄟ^的 DRD 進(jìn)行開發(fā)測試。埋點(diǎn)的研發(fā)是一項(xiàng)瑣碎的工作展运,并且隨著埋點(diǎn)越來越多活逆,埋點(diǎn)代碼的管理任務(wù)很重,這也是很多研發(fā)不愿意埋點(diǎn)的原因拗胜,埋點(diǎn)的測試是一件比較困難的事件蔗候,很多測試人員之前沒有接觸過專項(xiàng)工作,需要提供一些線上的工具幫助研發(fā)和測試提升效率埂软。
埋點(diǎn)應(yīng)用:這個(gè)環(huán)節(jié)主要是要維護(hù)好埋點(diǎn)的元數(shù)據(jù)信息锈遥,知道埋點(diǎn)和業(yè)務(wù)是如何關(guān)聯(lián),方便 BI 同學(xué)加工出業(yè)務(wù)需要的指標(biāo)勘畔。
總結(jié)上面所灸,Thea 認(rèn)為建設(shè)一個(gè)好的企業(yè)級埋點(diǎn)體系,有三個(gè)要點(diǎn):
設(shè)計(jì)靈活炫七、全面爬立、復(fù)用性高的埋點(diǎn)模型,提升埋點(diǎn)設(shè)計(jì)的效率万哪,降低埋點(diǎn)應(yīng)用和管理的成本侠驯。
制定清晰可落地的端到端埋點(diǎn)采集規(guī)范抡秆,定義埋點(diǎn)工作流以及每個(gè)環(huán)節(jié)的輸入輸出,保證參與埋點(diǎn)的各方高質(zhì)量的產(chǎn)品吟策。
開發(fā)線上工具支持埋點(diǎn)的管理儒士、研發(fā)、測試驗(yàn)收等工作踊挠,提升效率乍桂。