Tài liệu này mô tả về một phiên bản cũ của SDK Android. Nếu bạn mới sử dụng Analytics, hãy sử dụng SDK mới nhất. Tìm hiểu thêm

Cấu hình nâng cao

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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

Tổng quan

SDK Google Analytics phiên bản 4 dành cho Android cung cấp một lớp Tracker để đặt và gửi dữ liệu đến Google Analytics, cũng như một singleton GoogleAnalytics đóng vai trò là giao diện cho giá trị cấu hình chung của quá trình triển khai.

Khởi chạy

Trước khi có thể đo lường bất kỳ dữ liệu nào, bạn phải khởi chạy ít nhất một trình theo dõi thông qua singleton GoogleAnalytics bằng cách cung cấp một đối tượng Context và mã thuộc tính Google Analytics. Để biết thông tin chi tiết, hãy xem Tài liệu tham khảo về Google Analytics.

Sử dụng tệp cấu hình

Bạn cũng có thể khởi chạy trình theo dõi bằng tệp cấu hình. Ví dụ:

package com.google.android.apps.mobileplayground;

import android.app.Application;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
import java.util.HashMap;

/**
 * An extension to Application class to provide tracker for analytics purposes. Having the tracker
 * instances here allows all the activities to access the same tracker instances. The trackers can
 * be initialised on startup or when they are required based on performance requirements.
 */
public class AnalyticsSampleApp extends Application {

  // The following line should be changed to include the correct property id.
  private static final String PROPERTY_ID = "UA-XXXXX-Y";

  /**
   * Enum used to identify the tracker that needs to be used for tracking.
   *
   * A single tracker is usually enough for most purposes. In case you do need multiple trackers,
   * storing them all in Application object helps ensure that they are created only once per
   * application instance.
   */
  public enum TrackerName {
    APP_TRACKER, // Tracker used only in this app.
    GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
    ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
  }

  HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

  public AnalyticsSampleApp() {
    super();
  }
  synchronized Tracker getTracker(TrackerName trackerId) {
    if (!mTrackers.containsKey(trackerId)) {

      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
          : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
              : analytics.newTracker(R.xml.ecommerce_tracker);
      mTrackers.put(trackerId, t);

    }
    return mTrackers.get(trackerId);
  }
}

Cài đặt và gửi dữ liệu

Dữ liệu được gửi đến Google Analytics bằng cách sử dụng trình tạo để đặt các cặp thông số-giá trị gửi các thông số này qua phương thức send của trình theo dõi.

Ví dụ sau đây về cách gửi một lượt xem màn hình đến Google Analytics bằng cách tạo một chế độ xem ứng dụng và gọi phương thức gửi trình theo dõi:

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);

// Set screen name.
t.setScreenName(screenName);

// Send a screen view.
t.send(new HitBuilders.ScreenViewBuilder().build());

Cú pháp và cú pháp của Measurement Protocol

Bạn có thể sử dụng cú pháp dấu và giao thức Measurement Protocol để đặt giá trị cho một lượt truy cập duy nhất bằng HitBuilders.ScreenViewBuilder. Để đặt giá trị cho tất cả các lần truy cập tiếp theo, hãy sử dụng chính đối tượng trình theo dõi.

// Setting the content description field on a single hit using ampersand syntax.
tracker.send(new HitBuilders.ScreenViewBuilder()
  .set("&cd", "Home Screen")
  .build()
);

Để xem danh sách đầy đủ các thông số Measurement Protocol có sẵn, hãy xem Tài liệu tham khảo về các thông số của Measurement Protocol.

Áp dụng giá trị cho nhiều lượt truy cập

Mọi giá trị được đặt trực tiếp trên trình theo dõi sẽ được duy trì và áp dụng cho nhiều lượt truy cập, như trong ví dụ sau:

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);

// Set screen name.
t.setScreenName(screenName);

// Send a screen view.
t.send(new HitBuilders.ScreenViewBuilder().build());

// This event will also be sent with the most recently set screen name.
// Build and send an Event.
t.send(new HitBuilders.EventBuilder()
    .setCategory(getString(categoryId))
    .setAction(getString(actionId))
    .setLabel(getString(labelId))
    .build());

// Clear the screen name field when we're done.
t.setScreenName(null);

Bạn chỉ nên đặt các giá trị mà bạn muốn duy trì qua nhiều lượt truy cập trực tiếp trên trình theo dõi. Việc đặt tên màn hình trên trình theo dõi sẽ hợp lý, vì bạn có thể áp dụng cùng một giá trị cho các lượt truy cập màn hình và lượt xem sự kiện tiếp theo. Tuy nhiên, bạn không nên đặt một trường như loại lượt truy cập trên trang theo dõi, vì trường này có thể thay đổi theo mỗi lượt truy cập.

Sử dụng nhiều trình theo dõi

Trong ứng dụng dành cho thiết bị di động, bạn có thể sử dụng nhiều trình theo dõi để gửi dữ liệu đến các thuộc tính khác nhau:


public class MyApp extends Application {

  public void initTrackers() {
    GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);

    globalTracker = analytics.newTracker(R.xml.global_tracker);
    ecommerceTracker = analytics.newTracker(R.xml.ecommerce_tracker);
  }

  public static Tracker globalTracker;
  public static Tracker ecommerceTracker;

  ...
}

Mặc dù ứng dụng dành cho thiết bị di động có thể có nhiều trình theo dõi, nhưng bạn chỉ có thể sử dụng một trình theo dõi để báo cáo các trường hợp ngoại lệ chưa nắm bắt được bằng cách gọi phương thức enableExceptionReporting() trên trình theo dõi.

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 ở tỷ lệ 50%, hãy sử dụng thông số sau trong tệp cấu hình của bạn:

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

Để bật tính năng lấy mẫu phía máy khách theo trình tự cho trình theo dõi:

mTracker.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 sử dụng ở cấp ứng dụng sẽ vô hiệu hóa Google Analytics trên toàn bộ ứng dụng. Lưu ý rằng cờ này phải được đặt mỗi khi ứng dụng khởi động và sẽ được đặt mặc định là false.

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

boolean isOptedOut = GoogleAnalytics.getInstance(this).getAppOptOut();

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

GoogleAnalytics.getInstance(this).setAppOptOut(true);

Trong quá trình triển khai thông thường, ứng dụng có thể lắng nghe một thay đổi trong SharedPreferences và cập nhật chế độ cài đặt chọn không sử dụng Google Analytics cho phù hợp:

SharedPreferences userPrefs = PreferenceManager.getDefaultSharedPreferences(this);

userPrefs.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener () {

  @Override
  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    if (key.equals(TRACKING_PREF_KEY)) {
      GoogleAnalytics.getInstance(getApplicationContext()).setAppOptOut(sharedPreferences.getBoolean(key, false));
    } else {
      // Any additional changed preference handling.
    }
  }
});

Xoá dữ liệu người dùng phía máy khách

Nếu cần đặt lại hoặc xoá dữ liệu phía máy khách của Google Analytics cho người dùng cuối, bạn có thể xóa tệp Mã khách hàng.

Việc xóa tệp gaClientId sẽ buộc tạo Mã ứng dụng khách mới và tất cả các lượt truy cập tiếp theo sẽ sử dụng Mã ứng dụng khách mới. Dữ liệu trước đó sẽ không được liên kết với Mã ứng dụng khách mới.

Để xoá tệp gaClientId, hãy sử dụng phương thức Context.deleteFile:

context.deleteFile("gaClientId");

Ẩn danh IP

Khi bật tính năng ẩn danh IP, Google Analytics sẽ ẩn danh thông tin IP do SDK gửi bằng cách xoá octet cuối cùng của địa chỉ IP trước khi lưu trữ.

Để bật chức năng ẩn danh IP, hãy sử dụng thông số sau đây trong tệp cấu hình của bạn:

<string name="ga_anonymizeIp">true</string>

Để bật chức năng ẩn danh IP theo phương thức lập trình cho trình theo dõi, hãy sử dụng phương thức setAnonymizeIp:

mTracker.setAnonymizeIp(true)

Bạn có thể gọi phương thức setAnonymizeIp bất cứ lúc nào.

Kiểm thử và gỡ lỗi

SDK Google Analytics phiên bản 4 dành cho Android cung cấp các công cụ giúp việc kiểm thử và gỡ lỗi trở nên dễ dàng hơn.

Chạy thử nghiệm

SDK này cung cấp một cờ dryRun khi được đặt, ngăn chặn mọi dữ liệu được gửi đến Google Analytics. Bạn nên đặt cờ dryRun bất cứ khi nào bạn đang kiểm thử hoặc gỡ lỗi triển khai và không muốn dữ liệu thử nghiệm xuất hiện trong báo cáo Google Analytics.

Cách đặt cờ chạy thử nghiệm:

// When dry run is set, hits will not be dispatched, but will still be logged as
// though they were dispatched.
GoogleAnalytics.getInstance(this).setDryRun(true);

Trình ghi nhật ký

Google Analytics sẽ ghi nhật ký vào logcat trong thẻ GAv4 bằng cách sử dụng hệ thống Android Log. Theo mặc định, chỉ các cấp LỖI, WARN và INFO mới được bật. Để bật cấp độ DEBUG (Gỡ lỗi), hãy chạy lệnh adb sau trên thiết bị hoặc trình mô phỏng của bạn:

adb shell setprop log.tag.GAv4 DEBUG

Để chỉ xem các thông báo của Google Analytics từ logcat, hãy sử dụng lệnh sau:

adb logcat -v time -s GAv4

Để biết thêm thông tin, hãy xem Tài liệu tham khảo về Trình ghi nhật ký Google Analytics.