Cấu hình nâng cao – SDK Android phiên bản 2 (Cũ)

Tài liệu này cung cấp góc nhìn về một số tính năng cấu hình nâng cao của Google Analytics SDK dành cho Android phiên bản 2.

Tổng quan

SDK Google Analytics dành cho Android sử dụng hai lớp để quản lý trạng thái toàn cầu của quá trình triển khai và gửi dữ liệu đến máy chủ Google Analytics. EasyTracker bao bọc các lớp này để cung cấp cấu hình và quản lý phiên được đơn giản hoá:

  • GoogleAnalytics – một singleton xử lý trạng thái toàn cục của quá trình triển khai, bao gồm cả việc nhận các đối tượng Tracker.
  • Tracker – lớp mà bạn gửi dữ liệu đến Google Analytics.

Ví dụ: để đo lường khung hiển thị của một Activity đơn giản:

import android.app.Activity

import com.google.analytics.tracking.android.GoogleAnalytics
import com.google.analytics.tracking.android.Tracker

/**
 * A simple Activity that sends a screen view to Google Analytics
 * when it is displayed to the user.
 */
public class HomeScreen extends Activity {

  private Tracker mGaTracker;
  private GoogleAnalytics mGaInstance;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the GoogleAnalytics singleton. Note that the SDK uses
    // the application context to avoid leaking the current context.
    mGaInstance = GoogleAnalytics.getInstance(this);

    // Use the GoogleAnalytics singleton to get a Tracker.
    mGaTracker = mGaInstance.getTracker("UA-XXXX-Y"); // Placeholder tracking ID.
    ... // The rest of your onCreate() code.
  }

  @Override
  public void onStart() {
    super.onStart();

    // Send a screen view when the Activity is displayed to the user.
    mGaTracker.sendView("/HomeScreen");
  }
}

Sử dụng nhiều thiết bị theo dõi

Kể từ phiên bản 2 của SDK, bạn có thể sử dụng nhiều trình theo dõi trong một lần triển khai, một trình theo dõi cho mỗi mã theo dõi duy nhất. Tất cả trình theo dõi đều có cùng trạng thái toàn cầu do singleton GoogleAnalytics của bạn nắm giữ.

Trong ví dụ sau, một lượt xem màn hình được gửi đến hai thuộc tính riêng biệt bằng cách sử dụng hai trình theo dõi, mỗi trình theo dõi có một mã thuộc tính duy nhất riêng:

import android.app.Activity

import com.google.analytics.tracking.android.GoogleAnalytics
import com.google.analytics.tracking.android.Tracker

/**
 * A simple Activity that sends a screen view to Google Analytics
 * when it is displayed to the user.
 */
public class HomeScreen extends Activity {

  private GoogleAnalytics mGaInstance;
  private Tracker mGaTracker1;
  private Tracker mGaTracker2;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the GoogleAnalytics singleton.
    mGaInstance = GoogleAnalytics.getInstance(this);

    // Use the GoogleAnalytics singleton to get two Trackers with
    // unique property IDs.
    mGaTracker1 = mGaInstance.getTracker("UA-XXXX-Y");
    mGaTracker2 = mGaInstance.getTracker("UA-XXXX-Z");

    ... // The rest of your onCreate() code.
  }

  @Override
  public void onStart() {
    super.onStart();

    // Send a screen view to "UA-XXXX-Y" the Activity is displayed to the user.
    mGaTracker1.sendView("/HomeScreen");

    // Send another screen view to the second property, "UA-XXXX-Z".
    mGaTracker2.sendView("/Home");
  }
}

Xin lưu ý rằng các tính năng đo lường tự động do EasyTracker cung cấp sẽ chỉ sử dụng công cụ theo dõi mặc định để thực hiện các lệnh gọi. Nếu đang sử dụng các tính năng này của EasyTracker và muốn gửi dữ liệu bằng các công cụ theo dõi khác, bạn cần thực hiện việc này theo cách thủ công.

Thiết bị theo dõi mặc định

Mặc dù quá trình triển khai có thể sử dụng nhiều trình theo dõi, nhưng trên toàn cầu, quá trình này chỉ có một trình theo dõi mặc định. Tracker đầu tiên được truy xuất sẽ trở thành công cụ theo dõi mặc định.

Để tải thiết bị theo dõi mặc định, hãy sử dụng:

// Get singleton.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Get default tracker.
Tracker myDefault = myInstance.getDefaultTracker();

Để đặt thiết bị theo dõi mặc định, hãy sử dụng:

// First get a tracker using a new property ID.
Tracker newTracker = myInstance.getTracker("UA-XXXX-2");

// Then make newTracker the default tracker globally.
myInstance.setDefaultTracker(newTracker);

Điều phối

Các chế độ cài đặt điều phối do singleton GAServiceManager quản lý. Cách đặt thời gian gửi:

// Set dispatch period to 30 seconds.
GAServiceManager.getInstance().setDispatchPeriod(30);

Để gửi theo cách thủ công ngoài khoảng thời gian được lên lịch, hãy làm như sau:

// Manually dispatch any queued hits.
GAServiceManager.getInstance().dispatch();

Lấy mẫu

Bạn có thể bật tính năng lấy mẫu phía máy khách để giới hạn số lượt truy cập được gửi đến Google Analytics. Nếu ứng dụng của bạn có số lượng lớn người dùng hoặc gửi một lượng lớn dữ liệu đến Google Analytics, thì việc bật tính năng lấy mẫu sẽ giúp đảm bảo báo cáo không bị gián đoạn.

Ví dụ: để bật tính năng lấy mẫu phía máy khách với tỷ lệ 50% qua EasyTracker và XML, hãy sử dụng tham số sau trong tệp analytics.xml của bạn:

<string name="ga_sampleFrequency">50.0</string>

Bạn cũng có thể bật tính năng lấy mẫu phía máy khách theo phương thức lập trình:

// Get tracker from singleton.
GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(this);
Tracker tracker = gaInstance.getTracker("UA-XXXX-Y"); // Placeholder property ID.

// Set a sample rate of 50%.
tracker.setSampleRate(50.0d);

Chọn không tham gia cấp ứng dụng

Bạn có thể bật cờ chọn không tham gia cấp ứng dụng để vô hiệu hoá Google Analytics trên toàn bộ ứng dụng. Sau khi được đặt, cờ này sẽ duy trì trong suốt thời gian hoạt động của ứng dụng hoặc cho đến khi được đặt lại.

Để cài đặt chọn không tham gia cấp ứng dụng, hãy sử dụng:

// Get singleton.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Get the app opt out preference using an AppOptOutCallback.
myInstance.requestAppOptOut(new AppOptOutCallback() {
   @Override
   public void reportAppOptOut(boolean optOut) {
     if (optOut) {
     ... // Alert the user that they've opted out.
     }
   });
}

Để đặt cờ chọn không tham gia ở cấp ứng dụng, hãy sử dụng:

myInstance.setAppOptOut(appPreferences.userOptOut);

Kiểm tra và gỡ lỗi

SDK Google Analytics dành cho Android cung cấp một chế độ gỡ lỗi sẽ in thông tin hữu ích về những dữ liệu đang được gửi đến Google Analytics trong nhật ký của bạn.

Để bật chế độ gỡ lỗi bằng EasyTracker, hãy thêm đoạn mã sau vào tệp tài nguyên analytics.xml:

<bool name="ga_debug">true</bool>

Để bật chế độ gỡ lỗi theo phương thức lập trình, hãy dùng:

// Get singleton using application context.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Enable debug mode.
myInstance.setDebug(true);

Kết quả sẽ được in vào logcat bằng cách sử dụng thẻ GAV2.