การจ่ายงาน

เอกสารนี้จะอธิบายวิธีจัดการข้อมูลที่จะส่งไปยัง 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>