1. 埋點(diǎn)事件的結(jié)構(gòu)化設(shè)計(jì)方法

        共 4483字,需瀏覽 9分鐘

         ·

        2021-02-19 23:32

        點(diǎn)擊上方“藍(lán)字”關(guān)注我吧!

        埋點(diǎn)事件的結(jié)構(gòu)化設(shè)計(jì)方法



        文|4339字

        估計(jì)閱讀|13分鐘



        埋點(diǎn)的坑



        近期負(fù)責(zé)了一款A(yù)PP的數(shù)據(jù)相關(guān)工作。該APP是一個自制游戲內(nèi)容產(chǎn)品,上架了很多個獨(dú)立主題的小游戲,并按游戲的類型,分為5個類型。為了解整體數(shù)據(jù)情況,我向數(shù)據(jù)開發(fā)提出了一個數(shù)據(jù)提取需求:以周為單位,統(tǒng)計(jì)最近一年每個類型的游戲累計(jì)被打開的次數(shù)。

        本以為幾分鐘就可以拿到數(shù)據(jù),但開發(fā)1個小時后才給我結(jié)果。經(jīng)過詳細(xì)了解,發(fā)現(xiàn)是因?yàn)閿?shù)據(jù)埋點(diǎn)存在極大的坑,導(dǎo)致的數(shù)據(jù)統(tǒng)計(jì)效率低下。埋點(diǎn)需求見下圖:

        ?

        通過這套方案采集到的數(shù)據(jù),要實(shí)現(xiàn)按類型統(tǒng)計(jì)的需求,有2個問題:

        1. 每一個游戲,都單獨(dú)定義了一個打開游戲事件。也就是說,打開不同的游戲時,觸發(fā)的是不同的事件。要想統(tǒng)計(jì)每個類型的游戲累計(jì)打開次數(shù),必須先按事件名逐個統(tǒng)計(jì)每個游戲的打開次數(shù)。

        2. 只采集了打開某個游戲,但游戲所屬分類是沒有采集的。要統(tǒng)計(jì)每個類型游戲累計(jì)被打開的次數(shù),就需要對照游戲信息表,查到每個游戲的所屬類型,再按游戲的所屬類型,對打開次數(shù)做一次累加。

        整個數(shù)據(jù)提取過程如下圖所示:

        ?

        每一個步驟都無法省略,因此,數(shù)據(jù)提取才耗費(fèi)了很長的時間。



        帶來的問題



        在這個埋點(diǎn)方案中,主要有兩個問題:相似行為未做聚類抽象、事件信息采集不完整。

        ??相似行為未做聚類抽象

        相似行為是指用戶操作過程和目標(biāo)高度相似的行為,如用戶分享一篇文章,有分享給微信好友、分享到朋友圈、分享到微博。

        將相似行為都定義為一個個獨(dú)立的事件,會導(dǎo)致以下2個問題:

        1. 埋點(diǎn)事件數(shù)量很多,開發(fā)和維護(hù)成本高。APP中有1000個游戲,就對應(yīng)了有1000個打開游戲事件。只要增加新的游戲,對應(yīng)的埋點(diǎn)代碼都需要單獨(dú)開發(fā),并在表格中進(jìn)行維護(hù),一旦沒有及時維護(hù),或因員工離職時交接不到位,可能導(dǎo)致事件管理出現(xiàn)混亂,如重復(fù)事件、無效事件等。

        2. 數(shù)據(jù)統(tǒng)計(jì)和分析效率低下。當(dāng)需要統(tǒng)計(jì)全部游戲的打開次數(shù)時,必須要先分別找到每個游戲點(diǎn)擊對應(yīng)的事件,然后逐個統(tǒng)計(jì)每個事件的觸發(fā)次數(shù),再做一次匯總。

        聚類抽象是指用一個抽象的主題來概括多個相似信息。如分享給微信好友、分享到朋友圈、分享到微博3個行為,都是在描述用戶分享文章的行為,可以聚類抽象為“分享文章”。

        將相似行為聚類抽象后,原本1000個游戲的打開事件減少為1個,事件數(shù)量大幅度降低。統(tǒng)計(jì)全部游戲的打開次數(shù)也能一步完成,數(shù)據(jù)統(tǒng)計(jì)和分析效率提升一倍。

        ??事件信息采集不完整

        一個用戶行為,往往可以從多個維度來描述,每一個描述維度,都是一個信息。這些信息,有些是有分析價值的,有些沒有。埋點(diǎn)采集到所有具備分析價值的信息,才是完整采集事件信息。

        如果我們在梳理埋點(diǎn)需求時,沒有完整采集信息的意識,或考慮不全面,就很容易遺漏,導(dǎo)致相應(yīng)的分析無法進(jìn)行。

        打開游戲時,所在頁面是事件相關(guān)的信息。統(tǒng)計(jì)用戶打開游戲時所在的頁面,可以分析不同頁面對游戲的引流效果,指導(dǎo)運(yùn)營工作方向。

        若沒有采集該信息,就無法統(tǒng)計(jì)在某個頁面打開游戲的次數(shù)。




        解決方案



        很明顯,為每個獨(dú)立的、最小顆粒度的用戶行為單獨(dú)定義一個事件,不是一個好方法。那么,我們應(yīng)該怎么設(shè)計(jì)埋點(diǎn)事件呢?

        答案是采用“事件-屬性-屬性值”的結(jié)構(gòu),對事件進(jìn)行多維度描述。

        結(jié)構(gòu)化是指一個完整的埋點(diǎn)事件,分為事件、屬性、屬性值三層,包含一個事件定義(用戶行為)和若干個屬性定義(描述用戶行為的屬性)。

        下圖是打開游戲事件的結(jié)構(gòu)化設(shè)計(jì)案例:

        ?

        點(diǎn)擊游戲圖標(biāo)打開游戲的行為,定義為“打開游戲”事件;該事件有2個屬性,分別為“游戲分類、游戲ID”;游戲分類指游戲所屬的類型,其屬性值為“A、B、C、D、E”;游戲ID是唯一識別游戲的編號,其屬性值為“001、002、003···999”。實(shí)際使用時,還可以增加更多屬性。

        游戲ID屬性,將相似行為聚類抽象為一個事件,即使有新的游戲上線,也只需要增加一個屬性值,事件數(shù)量從1000個減少到1個,開發(fā)和管理成本大幅度降低。

        增加的屬性,使采集到的行為信息更完整。通過“游戲分類”屬性的值,即可統(tǒng)計(jì)每個類型的游戲累計(jì)被打開的次數(shù),滿足更多數(shù)據(jù)分析需求。


        ??屬性的定義

        一個用戶行為,通??梢詮亩鄠€維度進(jìn)行描述。描述事件的維度,稱之為“事件屬性”,簡稱“屬性”。每個屬性,都有若干個值,為屬性值。

        用戶打開游戲,如果從玩家性別維度描述,分為男、女;從玩家年齡維度描述,有15、16、17、18等,從游戲分類維度描述,分為A類、B類···

        “玩家性別、玩家年齡、游戲分類”就是用來描述“打開游戲”事件的屬性。

        “男、女”是屬性“玩家性別”的屬性值,“15、16、17”是屬性“玩家年齡”的屬性值,“A類、B類”是屬性“游戲分類”的屬性值。


        從上一篇文章中,我們已經(jīng)知道,數(shù)據(jù)埋點(diǎn)能采集4w1h多個維度的信息。

        從不同的維度對事件進(jìn)行數(shù)據(jù)分析,要么能指導(dǎo)產(chǎn)品的迭代,獲得更高的用戶價值;要么能更好地達(dá)成業(yè)務(wù)目標(biāo),獲得更高的商業(yè)價值。

        因此,在數(shù)據(jù)采集時,不僅要采集事件本身,還要采集事件的屬性信息。

        游戲被打開次數(shù)的性別分布,體現(xiàn)了不同性別的用戶對該游戲的興趣高低。如游戲灰度發(fā)布的3天內(nèi),選取了男女用戶各1000人推送內(nèi)測邀請,其中900個男性用戶打開了游戲,而女性用戶僅10人,說明該男性用戶對該游戲更感興趣。

        為了在盡可能少消耗推送次數(shù)的條件下,讓該游戲獲得更高的打開率,游戲上線時,運(yùn)營只給男性用戶全量推送了游戲。


        ??設(shè)計(jì)方法

        結(jié)構(gòu)化事件設(shè)計(jì)的關(guān)鍵,是定義好事件、觸發(fā)機(jī)制、屬性、屬性值類型、屬性值5個要點(diǎn)。

        1.定義事件

        數(shù)據(jù)埋點(diǎn)是要采集對數(shù)據(jù)分析有價值的過程數(shù)據(jù),因此,需要先根據(jù)數(shù)據(jù)分析需求,找出對應(yīng)的用戶行為,再抽象出事件名。

        數(shù)據(jù)分析需求是目標(biāo),確定了目標(biāo),才能找到能達(dá)成該目標(biāo)的用戶行為。事件名是對該事件的概括,幫助相關(guān)同事統(tǒng)一溝通話術(shù)和名詞定義,提高溝通效率。

        需要分析用戶打開某個游戲或某類次數(shù)、人數(shù),對應(yīng)的用戶行為是用戶點(diǎn)擊并打開游戲,可以將該行為抽象為“打開游戲”事件,作為內(nèi)部溝通統(tǒng)一名稱。


        2.定義觸發(fā)機(jī)制

        埋點(diǎn)代碼被觸發(fā)執(zhí)行的條件,即為觸發(fā)機(jī)制,通常取決于事件的定義和目的。如點(diǎn)擊了某個元素、打開了某個頁面、展示了某個內(nèi)容等。

        “打開游戲”事件中,打開游戲的定義,是點(diǎn)擊游戲圖標(biāo),并進(jìn)入游戲界面,事件的目的是要準(zhǔn)確記錄打開游戲的行為。

        因此,當(dāng)用戶通過各種方式(點(diǎn)擊游戲圖標(biāo)、點(diǎn)擊推送消息、點(diǎn)擊進(jìn)入游戲按鈕等)進(jìn)入游戲界面時,才觸發(fā)事件。


        只有在正確的時機(jī)觸發(fā)埋點(diǎn)事件,才能準(zhǔn)確采集用戶行為。觸發(fā)時機(jī)錯誤,必然導(dǎo)致數(shù)據(jù)不可信,失去分析價值。

        若以“點(diǎn)擊游戲圖標(biāo)”為“打開游戲”事件的觸發(fā)機(jī)制,就遺漏了其他兩種打開游戲的方式帶來的行為記錄;同時,游戲被點(diǎn)擊時,可能未完成下載,此時點(diǎn)擊游戲圖標(biāo),并沒有打開游戲,但也被采集為一次打開游戲。

        最終無法分析幾種打開游戲方式的次數(shù)分布,也不能準(zhǔn)確評估游戲真實(shí)的消費(fèi)情況。


        3.定義屬性

        梳理事件的屬性,主要有兩種方法:梳理事件的分析需求、尋找事件內(nèi)部的分類維度。

        • 梳理事件的分析需求

        不同的事件,分析需求不同,需要采集的事件屬性也不同。因此,需要先梳理事件的分析需求,再針對性地尋找能滿足該需求的屬性。

        “打開游戲”事件中,需要分析不同游戲被打開的次數(shù),以驗(yàn)證游戲的受歡迎程度。如果在觸發(fā)“打開游戲”事件時,采集被打開的游戲ID,在分析該事件時,即可通過“游戲ID”統(tǒng)計(jì)不同游戲的打開次數(shù)。


        • 尋找事件的分類維度

        事件是對用戶行為的抽象,本身還可以從不同的維度來分類,這些分類維度,也可以作為屬性來描述事件。

        從游戲的獲取方式維度,可以將游戲分為付費(fèi)游戲和免費(fèi)游戲。為了統(tǒng)計(jì)付費(fèi)游戲和免費(fèi)游戲的打開次數(shù)差異,可以將“是否付費(fèi)游戲”作為一個屬性。


        4.明確屬性值類型

        找到需要的屬性后,還需要明確屬性的值類型,如枚舉型、字符串型、布爾型、數(shù)值型。

        游戲ID是一串?dāng)?shù)字,如008,是數(shù)值型;游戲分類是可以窮舉的選項(xiàng),是枚舉型;是否付費(fèi)游戲是只有2個選項(xiàng),是布爾型···


        不同類型的屬性值,取值來源和儲存形式都不同。定義屬性值類型,可以幫助相關(guān)同事理解埋點(diǎn)需求,并合理使用。

        枚舉型的屬性值,通常是事先窮舉的若干個值,存儲時通常用數(shù)字替代,使用時再轉(zhuǎn)化成真實(shí)的內(nèi)容。

        布爾型的屬性值,只有2個值,存儲內(nèi)容為0和1。


        5.給出屬性值

        定義好屬性值類型后,再根據(jù)不同的屬性值類型,給出對應(yīng)的屬性值或示例:

        • 枚舉型:窮舉所有值;

        • 字符串型:給出示例,并約定最大字符長度;

        • 布爾型:給出值名稱;

        • 數(shù)值型:給出示例,并約定最大字符長度。

        屬性值或示例是研發(fā)編寫埋點(diǎn)代碼和測試的標(biāo)準(zhǔn),幫助開發(fā)理解埋點(diǎn)需求。

        研發(fā)不理解業(yè)務(wù)的前提下,可能都不知道游戲分類是什么,也不清楚有哪些分類。但當(dāng)他看到窮舉出來的屬性值時,就能立刻理解。


        通過以上五個步驟,即可完成事件的結(jié)構(gòu)化設(shè)計(jì)。整理成表格后,如下所示:

        ?

        ??建議:整理公共屬性

        在梳理事件屬性時,我們會發(fā)現(xiàn)有一些屬性是大部分事件都需要采集的。如每一個事件都要采集發(fā)生時間、用戶ID、設(shè)備類型、APP版本···

        如果每一個事件都需要將這些屬性在數(shù)據(jù)需求文檔中列出來,就會帶來大量的重復(fù)工作。因此,可以將這些屬性定義為公共屬性,即每個事件都默認(rèn)需要采集的屬性,單獨(dú)整理在一個表格中。

        常見的公共屬性見下表:

        ?



        結(jié)構(gòu)化事件設(shè)計(jì)的價值



        ??減少事件數(shù)量,降低成本

        采用“事件-屬性-屬性值”的結(jié)構(gòu)化設(shè)計(jì),可以將相似度更高、但有細(xì)微差異的多個行為聚類抽象為一個事件,而不同行為之間的差異,通過屬性值來區(qū)分,從而減少事件數(shù)量。

        在APP中購買商品時,有5種支付方式。若為每一種支付方式單獨(dú)定義事件,就需要5個訂單支付事件。

        而使用結(jié)構(gòu)化設(shè)計(jì),只需要一個事件,就能滿足需求。原方案中,5個支付訂單事件的差異,通過“支付方式”屬性來區(qū)分。


        獨(dú)立事件的數(shù)量越多,開發(fā)的工作量越大。通過屬性值對多個事件進(jìn)行合并后,只需要新增屬性值,就可以完成埋點(diǎn),開發(fā)和維護(hù)的成本就大幅度越低。

        ??提高數(shù)據(jù)分析效率

        在做數(shù)據(jù)分析時,經(jīng)常需要對同類型的多種用戶行為進(jìn)行匯總,以了解整體情況。

        若為每一個獨(dú)立用戶行為單獨(dú)定義事件,再需要進(jìn)行匯總統(tǒng)計(jì)時,就會出現(xiàn)前文所述的效率問題。而結(jié)構(gòu)化的事件設(shè)計(jì),能指數(shù)級降低數(shù)據(jù)分析效率。

        當(dāng)需要統(tǒng)計(jì)最近一年所有游戲的打開次數(shù)時,只需要統(tǒng)計(jì)“打開游戲”事件一年內(nèi)累計(jì)被觸發(fā)的次數(shù),而不是先統(tǒng)計(jì)每個游戲打開事件被觸發(fā)的次數(shù),再進(jìn)行二次匯總。




        總結(jié)



        在設(shè)計(jì)埋點(diǎn)事件時,不應(yīng)該為每一個獨(dú)立的、最小顆粒度的用戶行為單獨(dú)定義事件,而應(yīng)該將同類型的用戶行為抽象為一個事件,并從數(shù)據(jù)分析需求和事件本身的分類方法出發(fā),梳理事件的屬性,最后再形成數(shù)據(jù)埋點(diǎn)需求文檔。

        結(jié)構(gòu)化的事件設(shè)計(jì)方法,能有效降低開發(fā)和維護(hù)成本,提高數(shù)據(jù)分析效率,是一種更好的事件設(shè)計(jì)方法。




        5年產(chǎn)品經(jīng)理

        專注后端產(chǎn)品方向

        長按掃碼可關(guān)注


        瀏覽 63
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 女明星杨幂乱淫36部小说 | 五月婷婷深爱激情综合网 | 草莓视频色多多 | 国产婬乱a一级毛片视频 | 国产一区二区在线电影 |