[GA4][Firebase] App 追蹤:什麼時候需要用手動送 screen_view (畫面瀏覽) 事件?
前言
過往在執行 App 追蹤,只要埋設 Firebase SDK,畫面瀏覽通常是採用【自動追蹤】的方式來處理。
| 事件名稱 | 自動觸發時機… | 事件參數 |
| screen_view (應用程式畫面瀏覽) |
使用者切換畫面 且 滿足下列任一條件時,就會觸發這個事件:
|
firebase_screen、firebase_screen_class、firebase_screen_id、firebase_previous_screen、firebase_previous_class、firebase_previous_id、engagement_time_msec |
在【自動傳送 screen_view 事件】內,系統會預設傳送 screen_name 和 screen_class 這兩個參數。
讓我們可以在 GA4 報表中使用【網頁標題與畫面名稱】、 【網頁標題與畫面類別】、【網頁標路徑與畫面類別】這三個維度來觀察數據。
事實上, 大家最常用的維度還是【網頁標題與畫面名稱】。
但問題來了:如果我們想跟網站追蹤一樣,在 App 裡使用【內容群組 Content Group】分析頁面,或者是在 screen_view 事件加入自訂參數,這樣是可行的嗎?
答案是可以的!
本篇文章將深入探討 screen_view 事件。
1. 手動送 screen_view 事件
要執行【手動傳送 screen_view 事件】 ,最基本的要求是必須傳送 screen_name 和 screen_class 這兩個參數。
手動追蹤畫面
https://firebase.google.com/docs/analytics/screenviews?hl=zh-tw#manually_track_screens
您可以使用 onAppear 或 viewDidAppear 方法記錄 Apple 平台上的這些事件,並使用 onResume 記錄 Android 平台上的事件。如果未設定 screen_class,Analytics 會根據進行呼叫時焦點區域中的 UIViewController 或 Activity 設定預設值。
那...到底什麼時候才需要【手動傳送 screen_view 事件】呢?
就需要使用手動傳送 screen_view 事件:
● 情境1:Hybrid App 裡 WebView 需要發送畫面瀏覽事件。
● 情境2:需要在 screen_view 事件中增加自訂參數。
1-1. 情境1:Hybrid App 裡 WebView 需要發送畫面瀏覽事件
關於情境1,在之前的文章有提到 Hybrid App 內 WebView 追蹤方式,可參考這篇
[GA4] Firebase Hybrid App 要使用 GA4 追蹤,該如何管理呢?GTM 讓你一次搞定
1-2. 情境2:screen_view 事件要傳送自訂參數
因為系統【自動傳送】的 screen_view 事件,預設只會傳送 screen_name 和 screen_class。
所以,如果想在畫面瀏覽時記錄更多維度,就必須靠【手動傳送】。
建議可增加的自訂參數如下
當 page_locaion 和 screen_view 事件搭配,是屬於一般的事件參數,會受到參數值的長度限制。
● GA4 標準免費版:事件參數值不得超過 100 個半形字元。
● GA4 360 付費版:事件參數值不得超過 500 個半形字元。
● 當 page_location 搭配 page_view 事件,page_location 參數值上限可以到 1,000 個字元。
增加自訂參數之後,以 Swift 為例
Analytics.logEvent(AnalyticsEventScreenView,
parameters: [
AnalyticsParameterScreenName: screenName,
AnalyticsParameterScreenClass: screenClass,
"screen_title": screenTitle
])2. 執行 【手動送 screen_view 事件】注意事項
2-1. 注意事項1:一定要關閉 自動傳送 screen_view 事件
如果沒有關閉預設的自動傳送,系統會同時傳送自動與手動事件,
造成重複傳送 screen_view 事件,影響頁面瀏覽量數據的真實性。
停用畫面瀏覽追蹤
https://firebase.google.com/docs/analytics/screenviews?hl=zh-tw#disable_screenview_tracking
2-2. 注意事項2:必須是該畫面的【第一個觸發事件】。
如果 沒有觸發 screen_view 事件 或 screen_view 不是該新頁面第一個觸發事件,會導致 GA4 和 Firebase 收到不正確的資料,使數據失真。
最常見的狀況:使用者從 A 頁面進到 B 頁面,在 B 頁面上沒有觸發 screen_view 事件,在 B 頁面上後續所有點擊行為都會被記錄在前一頁(A頁面)上。
2-3. 注意事項3:到 GA4 資源增加自訂維度
手動傳送 screen_view 事件時,如有增加傳送自訂參數,記得要進到 GA4 資源 → 管理 → 資料顯示 → 自訂定義 → 增加自訂維度,否則在 GA4 資源 內會看不到這些自訂參數的資料喔!
參考資料
[GA4] 自動收集的事件
https://support.google.com/analytics/answer/9234069?hl=zh-Hant