利用 Google Firebase 建立數(shù)據(jù)收集與分析系統(tǒng)
編輯導(dǎo)語(yǔ):Firebase是一家實(shí)時(shí)后端數(shù)據(jù)庫(kù)創(chuàng)業(yè)公司,它能幫助開(kāi)發(fā)者很快的寫(xiě)出Web端和移動(dòng)端的應(yīng)用,讓你的App從零到一。那么,如何利用 Google Firebase 建立一個(gè)數(shù)據(jù)收集與分析系統(tǒng)呢?本文作者結(jié)合自己的實(shí)操方案,為我們做出了解答。
去年年末,我為當(dāng)時(shí)負(fù)責(zé)的一款產(chǎn)品規(guī)劃建立了一套埋點(diǎn)方案。這是一款主打海外市場(chǎng)的內(nèi)容資訊類產(chǎn)品,上架到 Google Play。
鑒于這是我第一次、從0到1、獨(dú)立完成一套結(jié)構(gòu)化的埋點(diǎn)方案,并能夠通過(guò)這套埋點(diǎn)方案完成對(duì)整個(gè)應(yīng)用的數(shù)據(jù)收集與分析,因此寫(xiě)下這篇文章記錄當(dāng)時(shí)的搭建思考和實(shí)踐過(guò)程。
一、為什么選擇 Firebase
按照官方的說(shuō)法,F(xiàn)irebase 是 Google 的移動(dòng)工具平臺(tái),適用于移動(dòng) APP 和 Web 程序。
從我個(gè)人的角度來(lái)講,F(xiàn)irebase 是 Google Analytics (GA)的增強(qiáng)升級(jí)版。過(guò)去幾年我經(jīng)常使用的數(shù)據(jù)分析工具是 GA,后來(lái) Google 停止維護(hù) GA 的 SDK,要求開(kāi)發(fā)者全部改為使用 Firebase 的 SDK。
因?yàn)?GA 有著多年的數(shù)據(jù)分析產(chǎn)品經(jīng)驗(yàn),完全免費(fèi),并可以與 Google Ads 結(jié)合等,再加上 Google 在全球范圍內(nèi)龐大的用戶基礎(chǔ),GA 可以說(shuō)是海外產(chǎn)品必備的工具。
但由于網(wǎng)絡(luò)限制,主打國(guó)內(nèi)用戶的產(chǎn)品不適合使用 Google Firebase,因?yàn)闀?huì)有很多數(shù)據(jù)收集不到。
現(xiàn)在的 Firebase 中包含的產(chǎn)品總共分為以下三大類:
- Develop Products 開(kāi)發(fā)類
- Quality Products 質(zhì)量保證類
- Grow Products 運(yùn)營(yíng)增長(zhǎng)類
這三大類下面總共細(xì)分了 18 個(gè)產(chǎn)品模塊,開(kāi)發(fā)者可以通過(guò)這些產(chǎn)品模塊實(shí)現(xiàn)構(gòu)建應(yīng)用,提高應(yīng)用質(zhì)量,拓展業(yè)務(wù)等目的。
二、應(yīng)該集成哪些產(chǎn)品模塊
Firebase 提供的產(chǎn)品模塊如此眾多,要實(shí)現(xiàn)數(shù)據(jù)收集與分析系統(tǒng)該選擇哪些呢?
1. Google Analytics
Google Analytics(分析)是 Firebase 的核心,你可以通過(guò)它收集用戶事件、行為等,并生成分析報(bào)告。搭建基本的數(shù)據(jù)分析系統(tǒng),只需(也是必需)集成 Google Analytics。
2. Prediction + A/B Testing
你可以集成 Prediction(預(yù)測(cè))、A/B Testing(A/B 測(cè)試) 實(shí)現(xiàn)一些精細(xì)化的、偏運(yùn)營(yíng)側(cè)的需求。
如果集成了 Prediction(預(yù)測(cè)),F(xiàn)irebase 會(huì)利用自己的機(jī)器學(xué)習(xí)技術(shù)幫助你細(xì)分用戶群體、預(yù)測(cè)用戶行為,你可以為不用的用戶群體配置不同的產(chǎn)品和運(yùn)營(yíng)策略。
舉例: 你可以利用 Prediction 分析用戶對(duì)于應(yīng)用內(nèi)購(gòu)買(mǎi)的接受程度以及可能性,從而精細(xì)化分營(yíng)銷推廣策略:為付費(fèi)接受程度高的用戶推薦高級(jí)套餐,為接受程度低的用戶推薦初級(jí)套餐。再結(jié)合 A/B Testing 進(jìn)行對(duì)比測(cè)試,即可知道這種運(yùn)營(yíng)方式是否奏效。
3. Crashlytics + Performance Monitoring
集成 Crashlytics(崩潰分析)、Performance Monitoring(性能監(jiān)控) 可以幫助開(kāi)發(fā)人員收集并分析程序的崩潰記錄,實(shí)時(shí)監(jiān)控應(yīng)用的性能表現(xiàn)。
三、如何收費(fèi)
GA 完全免費(fèi),但 Firebase 不是完全免費(fèi)的,它的價(jià)格方案分為 Spark(免費(fèi)方案)和 Blaze(即用即付,按使用量付費(fèi)) 兩種,詳細(xì)收費(fèi)方案可在官網(wǎng)中的查看。
上面提到的5個(gè)產(chǎn)品均可在 Spark 方案中免費(fèi)使用。
四、Firebase Analytics 四要素
使用 Firebase Analytics 時(shí)的四個(gè)要素分別是 Event 事件、Conversion 轉(zhuǎn)化、User Property 用戶屬性、Audience 受眾群體。
理解這四個(gè)要素后,我們便知道了在產(chǎn)出埋點(diǎn)方案時(shí),應(yīng)該從哪幾個(gè)角度出發(fā)。
1. Event 事件
用戶在應(yīng)用中進(jìn)行的點(diǎn)擊、瀏覽等操作即為「事件」,這是最基本、最重要的要素。
2. Conversion 轉(zhuǎn)化
如果某個(gè)事件對(duì)你的業(yè)務(wù)來(lái)說(shuō)十分重要,例如用戶注冊(cè)、付費(fèi)等關(guān)鍵業(yè)績(jī)指標(biāo)(KPI),你可以將這個(gè)事件標(biāo)記為「轉(zhuǎn)化」。當(dāng)事件被標(biāo)記為轉(zhuǎn)化后,系統(tǒng)即開(kāi)始收集與該事件相關(guān)的用戶行為及相關(guān)數(shù)據(jù)。
3. User Property 用戶屬性
即用戶的身份特征或所使用設(shè)備的特征,如年齡、興趣愛(ài)好、所在地區(qū)、語(yǔ)言、操作系統(tǒng)版本等。
用戶屬性也是比較基礎(chǔ)的數(shù)據(jù),在后期進(jìn)行數(shù)據(jù)分析或者查找問(wèn)題的過(guò)程中,用戶屬性可以作為篩選條件幫助你分析用戶。
4. Audience 受眾
此要素?zé)o需單獨(dú)添加代碼獲取,而是在控制臺(tái)中通過(guò)「Event 事件」與「User Property 用戶屬性」組合后篩選出的細(xì)分用戶群體。
在上述的四要素中,F(xiàn)irebase 會(huì)根據(jù)應(yīng)用類型自動(dòng)捕獲或預(yù)設(shè)一部分事件、轉(zhuǎn)化、用戶屬性,但更多的、更詳細(xì)的則需要開(kāi)發(fā)者自行添加代碼配置。
五、其他要素
1. Parameter 參數(shù)
與 Event 事件息息相關(guān)的一個(gè)重要概念是 Parameter 參數(shù),你可以為一個(gè)事件關(guān)聯(lián)多個(gè)參數(shù),從而更細(xì)致地分析某個(gè)事件。
舉例:用戶分享了應(yīng)用中的內(nèi)容到社交平臺(tái),此時(shí)觸發(fā)的是「share」事件,那么這個(gè)事件可以關(guān)聯(lián)收集「content_type」(內(nèi)容類型)參數(shù)、「share_channel」(分享渠道)參數(shù),由此可以知道用戶對(duì)于社交網(wǎng)絡(luò)的使用偏好等。
參數(shù)需要開(kāi)發(fā)人員在程序中添加代碼配置,生效后即可在控制臺(tái)中為事件關(guān)聯(lián)參數(shù)。在 Console 控制臺(tái)關(guān)聯(lián)參數(shù)時(shí),可以選擇要統(tǒng)計(jì)該參數(shù)的 Text 文本還是 Number 數(shù)量。
舉例:用戶在應(yīng)用中點(diǎn)擊內(nèi)容觸發(fā)「content_click」事件,這個(gè)事件關(guān)聯(lián)了「content_title」參數(shù)。
當(dāng)你在控制臺(tái)配置「content_title」參數(shù)時(shí),如果你選擇了 Text ,則用戶所點(diǎn)擊的內(nèi)容標(biāo)題及每個(gè)標(biāo)題的點(diǎn)擊數(shù)會(huì)被逐一記錄;如果你選擇了 Number,則系統(tǒng)會(huì)記錄用戶觸發(fā)的該事件的總數(shù)。
參數(shù)并不附屬于某個(gè)事件,兩者是關(guān)聯(lián)的關(guān)系,你可以在控制臺(tái)中為某個(gè)事件關(guān)聯(lián)參數(shù),這不會(huì)影響這個(gè)參數(shù)繼續(xù)被其他事件關(guān)聯(lián)。
但是 Firebase 對(duì)一個(gè)項(xiàng)目中使用的參數(shù)總數(shù)量有限制(「應(yīng)用+網(wǎng)站」類型項(xiàng)目最多支持 100 個(gè)參數(shù)),并且同一個(gè)參數(shù)如果被多個(gè)事件關(guān)聯(lián),那么關(guān)聯(lián)的次數(shù)都會(huì)算進(jìn)參數(shù)的總限制數(shù)量中。
舉例:你的項(xiàng)目支持 100 個(gè)參數(shù),如果你在 10 個(gè)事件中關(guān)聯(lián)了同一個(gè)參數(shù),則可使用的參數(shù)數(shù)量還剩 100-10 個(gè)。
所以你需要在埋點(diǎn)前盡量全面地梳理自己項(xiàng)目所需的參數(shù),避免出現(xiàn)參數(shù)用盡的情況。
2. Session 對(duì)話
當(dāng)應(yīng)用轉(zhuǎn)到后臺(tái)運(yùn)行后,F(xiàn)irebase 會(huì)開(kāi)始計(jì)算會(huì)話超時(shí)時(shí)長(zhǎng)。
默認(rèn)的會(huì)話超時(shí)時(shí)長(zhǎng)是 30 分鐘,這意味著如果應(yīng)用在前臺(tái)運(yùn)行了 5 分鐘后又在后臺(tái)運(yùn)行了 30 分鐘(應(yīng)用沒(méi)被系統(tǒng)殺掉的話),則這個(gè)用戶本次會(huì)話的時(shí)長(zhǎng)就是 35 分鐘。
這對(duì)某些后臺(tái)運(yùn)行需求不強(qiáng)烈的應(yīng)用來(lái)說(shuō),可能會(huì)干擾他們判斷真正的用戶會(huì)話時(shí)長(zhǎng)。因此,你可以根據(jù)自己的應(yīng)用特性,設(shè)定自己應(yīng)用的會(huì)話超時(shí)時(shí)長(zhǎng)。
Session 對(duì)話時(shí)長(zhǎng)不是必須自定義修改的,可以看產(chǎn)品類型和需求來(lái)決定。
3. Screen_view 屏幕瀏覽
如果你需要追蹤用戶在應(yīng)用內(nèi)的行為流、用戶在不同界面的停留時(shí)長(zhǎng)、事件數(shù)量等等,你可以根據(jù)需求對(duì) screen_class 重新命名,然后在控制臺(tái)中按照 screen_name 方式查看即可。
或者你也可以自定義進(jìn)入屏幕、退出屏幕的觸發(fā)規(guī)則,然后開(kāi)發(fā)人員按照規(guī)則統(tǒng)計(jì)屏幕瀏覽數(shù)據(jù)。
以我負(fù)責(zé)的資訊產(chǎn)品為例: 如果用戶點(diǎn)擊或者左右劃動(dòng)導(dǎo)致界面切換,此時(shí)會(huì)觸發(fā) Screen_view 屏幕瀏覽。具體的觸發(fā)情形包含以下幾種:
- 點(diǎn)擊內(nèi)容條目、圖標(biāo)、按鈕等導(dǎo)致屏幕切換
- 點(diǎn)擊頂部標(biāo)簽欄導(dǎo)航屏幕切換
- 在界面內(nèi)左右劃動(dòng)屏幕切換
- 點(diǎn)擊內(nèi)容進(jìn)入二級(jí)、三級(jí)界面
切記屏幕跟蹤方案要與開(kāi)發(fā)人員協(xié)商制定,因?yàn)椴煌瑧?yīng)用、不同開(kāi)發(fā)人員有不同的代碼架構(gòu)方式,這決定了他們使用哪種方案性價(jià)比最高。
六、制定埋點(diǎn)方案
1. 方法論
關(guān)于如何產(chǎn)出埋點(diǎn)的方案文章和方法論有很多,近期讀到的比較好的一篇是友盟+團(tuán)隊(duì)的文章。
簡(jiǎn)單來(lái)說(shuō),你需要根據(jù)自己的身份(產(chǎn)品經(jīng)理、運(yùn)營(yíng)、數(shù)據(jù)分析師、開(kāi)發(fā)),結(jié)合應(yīng)用類型(電商、內(nèi)容、旅行等)確定自己的數(shù)據(jù)需求,然后將需求轉(zhuǎn)化成核心數(shù)據(jù)。
以我負(fù)責(zé)的資訊產(chǎn)品為例,我會(huì)有以下數(shù)據(jù)需求:
- 衡量用戶對(duì)于內(nèi)容品牌的偏好;
- 衡量用戶對(duì)某功能的使用程度;
- 評(píng)估用戶的登錄意愿,以及對(duì)登錄方式的偏好;
- 評(píng)估用戶的訂閱通常發(fā)生在哪些關(guān)鍵節(jié)點(diǎn)之后;
- 有了數(shù)據(jù)需求后,開(kāi)始著手將需求轉(zhuǎn)化為所需的核心數(shù)據(jù)。比如:我需要知道各個(gè)內(nèi)容品牌的閱讀量、停留時(shí)長(zhǎng)、各分享渠道等等。 這個(gè)過(guò)程十分重要,但本文不再贅述。
2. 方案呈現(xiàn)—Excel 表格
埋點(diǎn)方案最終交到開(kāi)發(fā)人員手上是采用 Excel 表格的形式,我的方案包含 4 個(gè)部分,分成 4 頁(yè) Sheets 呈現(xiàn)。
1)第一頁(yè):Session 定義
在這里定義:
- Session 會(huì)話開(kāi)始的標(biāo)志
- Session 會(huì)話的標(biāo)志
- 會(huì)話的超時(shí)時(shí)長(zhǎng)
2)第二頁(yè):Events
在這里列出你需要收集的所有 Event 事件,你需要告訴開(kāi)發(fā)人員這些事件的名稱、事件是如何觸發(fā)的、事件包含了哪些參數(shù)、參數(shù)該如何取值。
- Event Name——事件名稱
- Trigger——觸發(fā)時(shí)機(jī)
- Parameters Name——參數(shù)名稱
- Parameter Value——參數(shù)取值
- Parameter Type——參數(shù)值類型
為了是開(kāi)發(fā)人員更加清晰、快速理解這些 Event 事件,你還要告訴開(kāi)發(fā)人員這個(gè)事件要滿足滿足哪些數(shù)據(jù)需求,以及其他一些輔助性的描述,例如:
- 需求描述
- 參數(shù)值描述
- 其他備注
3)第三頁(yè):Screen
上面已經(jīng)講過(guò),在收集 Screen_view 屏幕瀏覽數(shù)據(jù)時(shí),我們需要與開(kāi)發(fā)人員溝通后確定方案。如果溝通后你們需要自定義屏幕跟蹤方案,則可以使用以下方式呈現(xiàn):
- screen_view——觸發(fā)時(shí)機(jī)
- 模塊/場(chǎng)景
- Screen_Name——屏幕名稱
- 屏幕描述
- 名稱示例
同樣需要寫(xiě)明一些輔助性的描述:
- 事件描述
4)第四頁(yè):User_Property
這里需要定義清楚產(chǎn)品中會(huì)出現(xiàn)的幾類用戶群體:
- User Property Name——屬性名稱
- Description——屬性描述
舉例:根據(jù)用戶的 Level 將用戶劃分為不同類型,則屬性名稱可以叫做「user_level」,不同的 Level 分別使用數(shù)字標(biāo)記,0 是一般用戶,1 是付費(fèi)用戶等等。
快速驗(yàn)證埋點(diǎn)結(jié)果——DebugView,由于 Firebase 采用的是定期輪詢數(shù)據(jù)的方式,通常 1 小時(shí)一次,所以在開(kāi)發(fā)集成的過(guò)程中,我們?nèi)绻容喲埠髮?shù)據(jù)展示到控制臺(tái)中,然后再檢查埋點(diǎn)是否成功、是否準(zhǔn)確,這個(gè)過(guò)程會(huì)非常漫長(zhǎng)。
因此 Firebase 在控制臺(tái)中提供了「DebugView」功能,通過(guò) DebugView,我們可以在設(shè)備上操作應(yīng)用,相關(guān)事件會(huì)以 Timeline 的形式實(shí)時(shí)展示在 DebugView 報(bào)告中。
以上就是所有內(nèi)容了,感謝閱讀!關(guān)注微信公眾號(hào)「一代小熊」回復(fù)「埋點(diǎn)模板」,免費(fèi)獲取埋點(diǎn)實(shí)施方案模板。
本文由@Jalyn 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)允許,禁止轉(zhuǎn)載
題圖來(lái)自 Pexels,基于 CC0 協(xié)議
您好,我剛用firebase沒(méi)多久,想請(qǐng)問(wèn)一下,
firebase只能查看過(guò)去30分鐘的數(shù)據(jù),當(dāng)一個(gè)事件有多個(gè)參數(shù)時(shí),想查看過(guò)去某一段時(shí)間的某個(gè)參數(shù)的數(shù)據(jù)就看不到了,請(qǐng)問(wèn)這個(gè)問(wèn)題能否解決呢?
請(qǐng)教一下,你說(shuō)的「同一個(gè)參數(shù)如果被多個(gè)事件關(guān)聯(lián),那么關(guān)聯(lián)的次數(shù)都會(huì)算進(jìn)參數(shù)的總限制數(shù)量中」,我找不到關(guān)于這樣計(jì)算的說(shuō)法。
請(qǐng)問(wèn)這個(gè)規(guī)則是在哪里看到的呢?
請(qǐng)問(wèn)一下,你說(shuō)的 Firebase 對(duì)一個(gè)項(xiàng)目中使用的參數(shù)總數(shù)量有限制(「應(yīng)用 網(wǎng)站」類型項(xiàng)目最多支持 100 個(gè)參數(shù))是在哪里看到的呢?
因?yàn)槲也榈紽irebase官網(wǎng)資料寫(xiě)「Event parameters per event上限為25」,所以想請(qǐng)教一下,謝謝!
https://support.google.com/analytics/answer/10075209?visit_id=637461909672089758-3630537809&rd=1
這鏈接里面有寫(xiě)
寫(xiě)得很好,文章脈絡(luò)清晰易懂,非常感謝!