เอกสารนี้จะอธิบายวิธีจัดการข้อมูลที่จะส่งไปยัง Google Analytics โดยใช้ Google Analytics SDK v4 สำหรับ Android
ภาพรวม
ข้อมูลที่รวบรวมโดยใช้ Google Analytics SDK v4 สำหรับ Android จะจัดเก็บไว้ในเครื่องก่อนที่จะส่งไปยังเทรดแยกต่างหากไปยัง Google Analytics
คุณต้องส่งข้อมูลและรับข้อมูลภายในเวลา 4.00 น. ของวันถัดไปตามเขตเวลาท้องถิ่นของข้อมูลพร็อพเพอร์ตี้แต่ละรายการ ข้อมูลที่ได้รับหลังจากนั้นจะไม่ปรากฏในรายงาน ตัวอย่างเช่น หาก Hit อยู่ในคิวในเครื่องในเวลา 23:59 น. Hit จะต้องส่งภายใน 4 ชั่วโมงภายในเวลา 3:59 น. เพื่อให้ปรากฏในรายงาน ในทางกลับกัน Hit ที่เข้าคิวตั้งแต่เวลา 00:00 น. จะต้องส่งภายใน 28 ชั่วโมง เช่น 3:59 น. ของวันถัดไปเพื่อให้ปรากฏในรายงาน
การจ่ายงานเป็นระยะๆ
โดยค่าเริ่มต้น ระบบจะส่งข้อมูลจาก Google Analytics SDK v4 สำหรับ Android ทุก 30 นาที
วิธีกำหนดระยะเวลาการจัดส่งแบบเป็นโปรแกรม
// Set the dispatch period to 90 seconds. GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(90);
หากต้องการกำหนดระยะเวลาการจัดส่งในไฟล์การกำหนดค่า XML ให้ทำดังนี้
<integer name="ga_dispatchPeriod">30</integer>
การตั้งค่าเป็น 0 หรือค่าลบจะเป็นการปิดใช้การจัดส่งเป็นระยะ ซึ่งกำหนดให้คุณต้องใช้การส่งด้วยตนเองหากต้องการส่งข้อมูลให้ Google Analytics
// Disable periodic dispatch by setting dispatch period to a value less than 1. GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(0);
หากผู้ใช้สูญเสียสิทธิ์เข้าถึงเครือข่ายหรือออกจากแอปในขณะที่ยังมี Hit ที่รอการส่งอยู่ Hit เหล่านั้นจะยังคงอยู่ในพื้นที่เก็บข้อมูลในเครื่อง เราจะจัดส่งอุปกรณ์ให้คุณในครั้งต่อไปที่แอปทำงานและมีการเรียกการจัดส่ง
การจ่ายงานด้วยตนเอง
หากต้องการส่ง Hit ด้วยตนเอง เช่น เมื่อคุณทราบว่ามีการใช้วิทยุของอุปกรณ์เพื่อส่งข้อมูลอื่นๆ ไปแล้ว ให้ทำดังนี้
GoogleAnalytics.getInstance(this).dispatchLocalHits();
การจ่ายงานในพื้นหลัง
หากต้องการเปิดใช้การส่งโฆษณาในเบื้องหลังในแอปที่ทำงานในอุปกรณ์ที่ไม่ใช่ Google Play ในไฟล์การกำหนดค่า ApplicationManifest.xml
ให้ทำดังนี้
- รับสิทธิ์
WAKE_LOCK
- ลงทะเบียน
AnalyticsReceiver
- ลงทะเบียน
AnalyticsService
เช่น
<manifest> <!-- ... --> <!-- Get permission for reliable local dispatching on non-Google Play devices. --> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application name="com.example.MyApp"> <!-- Register AnalyticsReceiver and AnalyticsService to support background dispatching on non-Google Play devices. --> <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" android:enabled="true"> <intent-filter> <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" /> </intent-filter> </receiver> <service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false"/> <!-- ... --> </application> </manifest>