Điều phối

Tài liệu này mô tả cách bạn có thể quản lý việc gửi dữ liệu đến Google Analytics bằng Google Analytics SDK phiên bản 4 dành cho Android.

Tổng quan

Dữ liệu thu thập được bằng Google Analytics SDK phiên bản 4 dành cho Android được lưu trữ cục bộ trước khi được gửi đi trên một chuỗi riêng đến Google Analytics.

Dữ liệu phải được gửi và nhận muộn nhất vào 4 giờ sáng ngày tiếp theo, theo múi giờ địa phương của mỗi khung hiển thị. Mọi dữ liệu nhận được sau đó sẽ không xuất hiện trong các báo cáo. Ví dụ: nếu một lượt truy cập được đưa vào hàng đợi cục bộ vào lúc 11:59 đêm, thì lượt truy cập đó phải được gửi đi trong vòng 4 giờ trước 3:59 sáng để xuất hiện trong báo cáo. Mặt khác, một lượt truy cập vào hàng đợi lúc 12:00 sáng phải được gửi đi trong vòng 28 giờ, tức là 3:59 sáng ngày hôm sau, để xuất hiện trong báo cáo.

Gửi thư định kỳ

Theo mặc định, dữ liệu được gửi từ Google Analytics SDK phiên bản 4 cho Android 30 phút một lần.

Cách đặt thời gian gửi bằng phương thức lập trình:

// Set the dispatch period to 90 seconds.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(90);

Cách đặt thời gian gửi trong tệp cấu hình XML:

<integer name="ga_dispatchPeriod">30</integer>

Việc đặt giá trị bằng 0 hoặc giá trị âm sẽ tắt chế độ gửi dữ liệu định kỳ, do đó, bạn phải sử dụng chế độ điều phối thủ công nếu muốn gửi bất kỳ dữ liệu nào đến Google Analytics.

// Disable periodic dispatch by setting dispatch period to a value less than 1.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(0);

Nếu người dùng mất quyền truy cập mạng hoặc thoát khỏi ứng dụng của bạn trong khi vẫn còn các lượt truy cập đang chờ gửi, thì những lượt truy cập đó sẽ được giữ lại trong bộ nhớ cục bộ. Chúng sẽ được gửi vào lần tiếp theo ứng dụng của bạn chạy và điều phối được gọi.

Điều phối thủ công

Để gửi lượt truy cập theo cách thủ công, chẳng hạn như khi bạn biết đài phát của thiết bị đã được dùng để gửi dữ liệu khác:

GoogleAnalytics.getInstance(this).dispatchLocalHits();

Gửi thư ở chế độ nền

Để bật tính năng điều phối ở chế độ nền trên các ứng dụng chạy trên thiết bị không phải thiết bị Google Play, trong tệp cấu hình ApplicationManifest.xml:

  • Nhận quyền WAKE_LOCK.
  • Đăng ký AnalyticsReceiver.
  • Đăng ký AnalyticsService.

Ví dụ:

<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>