文章段落
什麼是 Firebase?
越來越多人可能在 Application 開發時都會看到「 Firebase 」這個字眼,這是目前在市場上開發行動應用程式常會使用到的一個服務,加上 Firebase 是個同時可以提供支援 Android、iOS 及網頁的 APP 雲端開發平台,在設計上可以協助開發者快速建置一些簡易的後端服務,對於純前端的開發者來說只要於APP應用程式中使用 Firebase SDK,後續可以很輕易透過 Firebase 進行一系列的延伸功能如圖一,例如推播可透過 Cloud Messaging、版本測試可透過 A/B Testing、版本更新可透過 Remote Config 等,有效縮短開發 APP 整體所需的時間,因此在 APP 開發市場上,套用 Firebase 已經逐漸變成一個標準開發規格。
此外,Firebase 同時也具備 Analytics (分析) 應用程式報表功能,當使用 Firebase SDK 情況下,Firebase 預設會自動搜集27種事件,透過這些基礎事件的搜集 Firebase 提供了如活躍用戶、轉換率、事件分析、障礙報告等分析報告,並可於 Firebase 啟用 Google Analytics 達到「 Google Analytics for Firebase 」的功能,以整合 APP 與網頁之間的資料。如果開發者還需要針對特定情境或資料的進階分析,Firebase 同時也提供將數據資料自動匯入 BigQuery 的方式來進一步活用 Firebase 和第三方所搜集的資訊整合以利後端資料分析的處理。
如何應用Firebase與BigQuery
透過 Firebase 與 BigQuery 來進行分析的第一步,我們需要於專案設定中開啟 Google Analytics,如圖二。
經由這個設定讓 Firebase 預設會收集的事件匯入至 Google Analytics,以整合 APP 與網頁之間的資料,設定完成後我們可以至 Google Analytics 觀察到 Firebase 的 event 已經開始呈現於儀表板中,並確保資料已經成功進行連結,如圖三。
根據 Google Analytics 所搜集到的資料,開發者也可以透過分析中心建置屬於自己分析角度的相關報表,例如我們可以透過使用者的行為與註冊頁面來分析使用使用 APP 時的行為流程,如下圖四所示。
回到正題,在 Firebase 與 BigQuery 的運用上,我們需要於專案設定中開啟與 BigQuery 的連結,如下圖五所示。
如上圖,透過這個設定,Firebase 會開始將未取樣的原始事件資料、所有參數及使用者屬性匯出至 BigQuery。Firebase 專案連結至 BigQuery 後,您可以將 Google Analytics for Firebase (包括部分 A/B 版本測試和 Dynamic Links 資料)、Crashlytics、Firebase 預測、雲端通訊和/或 Performance Monitoring 的資料匯出至對應的 BigQuery 資料集,而 BigQuery 僅會向您收取資料儲存、串流資料插入和資料查詢的費用,資料載入及匯出則是免費的。
我們接著於 Google Cloud Platfrom 中觀察由 Firebase 匯出至 BigQuery 的資料集,針對每一個連至 BigQuery 的 Firebase 專案,系統會分別在 BigQuery 專案中加入一個名為「 analytics_<property_id> 」而表格的格式為「 events_YYYYMMDD 」。另外在收到的應用程式事件也會匯進名稱為「 events_intraday_YYYYMMDD 」的表格中,系統會即時填入收集到的應用程式事件資料,如圖六。
在圖六中我們可以發現資料的儲存方式是重複紀錄的格式,類似多組資料儲存於單一事件的索引之中,而所有的欄位類似Array般的結構,因此假如我們要進行分析最好的方式是透過 UNNEST 的方法將 Array 轉換為一組數先進行資料的前處理,透過這方式再結合各個在分析上所需使用的 BigQuery 資料集進行查詢。
在此我們透過一個範例實作來了解 Firebase 與 BigQuery 如何運用,首先我們嘗試使用 Firebase 事件資料集做基礎,將其先透過 UNNEST 的方法,並結合事件中的 user_id 作為索引與會員資料庫進行比對,目的為區分出每日會員中,新加入會員數與原有會員的個數分別是多少,如圖七所示。
經由這個方式我們最後將結果資料做了平整化處理以利資料分析結果於視覺化呈現軟體使用,並接續根據 BigQuery 中 Firebase 的訊息、障礙、效能等資料表,進一步製作出訊息傳遞成功率、DAU、MAU、障礙統計、APP 效能報告、會員所在區域與各區域會員數等,並將其結果透過 Data Studio 進行呈現如圖八。
在該服務中我們成功結合 Firebase 所搜集的資料並導入其他數據讓分析的行為和範圍更加彈性,進而透過 BigQuery 產生自定義分析結果。同時在 Google 所提供 Firebase 與 BigQuery 的基礎架構支援下,我們希望透過這個實作的分享,讓更多人開始對 Firebase 與 BigQuery 的應用感到興趣,進而踏入 Google 雲端這個大平台。