Cấu hình nâng cao

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 Google Analytics SDK phiên bản 4 dành cho Android.

Tổng quan

Google Analytics SDK 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, và một singleton GoogleAnalytics đóng vai trò là giao diện đến các giá trị cấu hình chung của quá trình triển khai của bạn.

Khởi chạy

Để 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 đối tượng Context và mã tài sản 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 cách sử dụ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 thông qua trình tạo để đặt các cặp thông số-giá trị và gửi dữ liệu đó thông qua phương thức send của trình theo dõi.

Ví dụ sau đây cho thấy cách gửi lượt xem màn hình đến Google Analytics bằng cách tạo 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 Ampersand của Measurement Protocol

Bạn có thể sử dụng ký hiệu và cú pháp trong Measurement Protocol để đặt giá trị cho một lượt truy cập bằng HitBuilders.ScreenViewBuilder. Để đặt giá trị trên tất cả các lượt 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()
);

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

Áp dụng giá trị cho nhiều lần truy cập

Mọi giá trị bạn đặ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 những giá trị mà bạn muốn duy trì trên nhiều lượt truy cập ngay trên công cụ theo dõi. Việc đặt tên màn hình cho trình theo dõi là hợp lý, vì giá trị tương tự có thể được áp dụng cho các lượt xem màn hình và lượt truy cập 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 trình theo dõi, vì trường này có thể sẽ thay đổi theo mỗi lượt truy cập.

Sử dụng nhiều thiết bị 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 di động của bạn 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 được phát hiện 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 với tỷ lệ 50%, hãy sử dụng thông số sau trong tệp cấu hình:

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

Cách 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 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 để vô hiệu hoá Google Analytics trên toàn bộ ứng dụng. Xin lưu ý rằng bạn phải đặt cờ này mỗi khi ứng dụng khởi động và sẽ mặc định là false.

Để 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();

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

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

Trong cách triển khai thông thường, ứng dụng có thể theo dõi 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ể xoá tệp Mã ứng dụng khách.

Việc xoá 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

Việc bật chức năng ẩn danh IP sẽ yêu cầu Google Analytics ẩ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 tham số sau trong tệp cấu hình:

<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 tra và gỡ lỗi

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

Chạy thử nghiệm

SDK cung cấp một cờ dryRun mà khi được đặt, cờ này sẽ ngăn gửi dữ liệu đến Google Analytics. Bạn nên đặt cờ dryRun bất cứ khi nào đang kiểm thử hoặc gỡ lỗi một phương thức 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 thiết lập cờ chạy khô:

// 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 đượ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 thông báo 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.