Google Analytics จะติดตามการเปลี่ยนหน้าจอและแนบข้อมูลเกี่ยวกับหน้าจอปัจจุบันกับเหตุการณ์ ซึ่งช่วยให้คุณติดตามเมตริกต่างๆ เช่น การมีส่วนร่วมของผู้ใช้ หรือพฤติกรรมของผู้ใช้ต่อหน้าจอ การเก็บรวบรวมข้อมูลส่วนใหญ่เกิดขึ้นโดยอัตโนมัติ แต่คุณยังบันทึกการดูหน้าจอด้วยตนเองได้ด้วย การติดตามหน้าจอด้วยตนเองจะมีประโยชน์หากแอปของคุณไม่ได้ใช้ UIViewController,
View, หรือ Activity แยกกันสำหรับแต่ละหน้าจอที่คุณอาจต้องการติดตาม เช่น ในเกม
ติดตามหน้าจอโดยอัตโนมัติ
Analytics จะติดตามข้อมูลบางอย่างเกี่ยวกับหน้าจอใน
แอปพลิเคชันโดยอัตโนมัติ เช่น ชื่อคลาสของ UIViewController หรือ Activity ที่
ยังคงปรากฏอยู่บนหน้าจอของผู้ใช้ เมื่อมีการเปลี่ยนหน้าจอ Analytics จะบันทึกเหตุการณ์
screen_view ที่ระบุหน้าจอใหม่ ระบบจะแท็กเหตุการณ์ที่เกิดขึ้นบนหน้าจอเหล่านี้โดยอัตโนมัติด้วยพารามิเตอร์ firebase_screen_class (เช่น menuViewController หรือ MenuActivity) และ firebase_screen_id ที่สร้างขึ้น หากแอปของคุณใช้ UIViewController หรือ
Activity ที่แตกต่างกันสำหรับแต่ละหน้าจอ Analytics จะติดตามการเปลี่ยนหน้าจอทุกครั้งโดยอัตโนมัติและสร้างรายงานการมีส่วนร่วมของผู้ใช้ที่แบ่งตามหน้าจอ หากแอปของคุณไม่ได้ใช้ `UIViewController` หรือ `Activity` ที่แตกต่างกัน คุณยังคงดูรายงานเหล่านี้ได้โดยการบันทึกเหตุการณ์ screen_view ด้วยตนเอง
ปิดใช้การติดตามการดูหน้าจอ
คุณสามารถปิดการรายงานการดูหน้าจออัตโนมัติใน iOS ได้โดยตั้งค่า FirebaseAutomaticScreenReportingEnabled เป็น NO (บูลีน) ใน Info.plist
และใน Android ให้วางการตั้งค่าต่อไปนี้ไว้ในแท็ก <application> ของไฟล์
AndroidManifest.xml
<meta-data android:name="google_analytics_automatic_screen_reporting_enabled" android:value="false" />
ติดตามหน้าจอด้วยตนเอง
คุณสามารถบันทึกเหตุการณ์ screen_view ด้วยตนเองได้ไม่ว่าการติดตามอัตโนมัติจะเปิดใช้อยู่หรือไม่ก็ตาม คุณสามารถบันทึกเหตุการณ์เหล่านี้ในเมธอด onAppear หรือ viewDidAppear สำหรับแพลตฟอร์ม Apple และ onResume สำหรับ Android เมื่อไม่ได้ตั้งค่า screen_class
Analytics จะตั้งค่าเริ่มต้นตาม UIViewController หรือ Activity
ที่โฟกัสเมื่อมีการเรียก
หากคุณปิดใช้การสลับในแอป คุณจะต้องตั้งชื่อหน้าจอทั้งหมดด้วยตนเอง สำหรับผู้ใช้ SwiftUI ให้ใช้ Analytics SDK ส่วนขยาย Swift
Swift
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: screenName, AnalyticsParameterScreenClass: screenClass])
Objective-C
[FIRAnalytics logEventWithName:kFIREventScreenView parameters:@{kFIRParameterScreenClass: screenClass, kFIRParameterScreenName: screenName}];
Kotlin
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) param(FirebaseAnalytics.Param.SCREEN_CLASS, "MainActivity") }
Java
Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.SCREEN_NAME, screenName); bundle.putString(FirebaseAnalytics.Param.SCREEN_CLASS, "MainActivity"); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; const analytics = getAnalytics(); logEvent(analytics, 'screen_view', { firebase_screen: screenName, firebase_screen_class: screenClass });
Web
firebase.analytics().logEvent('screen_view', { firebase_screen: screenName, firebase_screen_class: screenClass });
Dart
await FirebaseAnalytics.instance.logEvent(
name: 'screen_view',
parameters: {
'firebase_screen': screenName,
'firebase_screen_class': screenClass,
},
);