Google Analytics SDK dành cho Android phiên bản 1 (Cũ)

SDK Google Analytics dành cho ứng dụng trên thiết bị di động dành cho Android giúp bạn dễ dàng triển khai Google Analytics trong các ứng dụng dựa trên Android. Tài liệu này mô tả cách tích hợp SDK với ứng dụng của bạn.

Tổng quan về SDK

SDK này sử dụng mô hình theo dõi được thiết kế để theo dõi người dùng đến các trang web truyền thống và tương tác với các tiện ích trong các trang web truyền thống. Vì lý do này, các thuật ngữ được sử dụng bên dưới phản ánh mô hình theo dõi trang web thông thường và đang được liên kết để theo dõi ứng dụng dành cho thiết bị di động. Bạn nên tìm hiểu về tính năng theo dõi của Analytics để hiểu cách hoạt động của SDK này.

Sử dụng SDK theo dõi trên thiết bị di động để theo dõi các ứng dụng điện thoại của bạn với các loại tương tác Analytics sau:

Theo dõi số lượt xem trang
Lượt xem trang là phương thức chuẩn để đo lường lưu lượng truy cập vào một trang web truyền thống. Vì ứng dụng di động không chứa trang HTML, nên bạn phải quyết định thời điểm (và tần suất) kích hoạt yêu cầu xem trang. Ngoài ra, vì yêu cầu lượt xem trang được thiết kế để báo cáo về cấu trúc thư mục, bạn nên cung cấp tên mô tả cho các yêu cầu đó để tận dụng việc đặt tên đường dẫn trang trong báo cáo Nội dung trong Analytics. Tên mà bạn chọn sẽ được điền sẵn trong báo cáo Analytics dưới dạng đường dẫn trang mặc dù chúng thực sự không phải là trang HTML, nhưng bạn có thể sử dụng điều này cho lợi thế bằng cách cấu trúc đường dẫn để cung cấp các nhóm bổ sung cho các lệnh gọi của mình.
Theo dõi sự kiện
Trong Analytics, các sự kiện được thiết kế để theo dõi hoạt động tương tác của người dùng với các phần tử trên trang web, khác với các yêu cầu xem trang. Bạn có thể sử dụng tính năng Theo dõi sự kiện của Google Analytics để thực hiện các lệnh gọi bổ sung. Những lệnh gọi này sẽ được báo cáo trong mục Theo dõi sự kiện của giao diện báo cáo Analytics. Các sự kiện được nhóm theo danh mục và cũng có thể sử dụng nhãn theo từng sự kiện, giúp bạn báo cáo một cách linh hoạt. Ví dụ: một ứng dụng đa phương tiện có thể sử dụng các thao tác phát/dừng/tạm dừng cho danh mục video và gán nhãn cho từng tên video. Sau đó, báo cáo Google Analytics sẽ tổng hợp các sự kiện cho tất cả các sự kiện được gắn thẻ danh mục video. Để biết thêm thông tin về tính năng Theo dõi sự kiện, hãy xem Hướng dẫn theo dõi sự kiện
Theo dõi thương mại điện tử
Sử dụng tính năng Theo dõi thương mại điện tử để theo dõi các giao dịch trong giỏ hàng và lượt mua hàng trong ứng dụng. Để theo dõi giao dịch, hãy sử dụng lớp Transaction để biểu thị thông tin mua hàng tổng thể cũng như lớp Item để biểu thị từng sản phẩm trong giỏ hàng. Sau khi thu thập dữ liệu, bạn có thể xem dữ liệu trong phần Báo cáo thương mại điện tử trên giao diện Google Analytics. Để biết thêm thông tin về tính năng Theo dõi thương mại điện tử, hãy xem Hướng dẫn theo dõi thương mại điện tử.
Biến tùy chỉnh
Biến tuỳ chỉnh là thẻ cặp tên – giá trị mà bạn có thể chèn vào mã theo dõi để tinh chỉnh hoạt động theo dõi của Google Analytics. Để biết thêm thông tin về cách bạn có thể sử dụng biến tuỳ chỉnh, hãy đọc Hướng dẫn về biến tuỳ chỉnh.

Bắt đầu

Yêu cầu

Để tích hợp các tính năng theo dõi của Google Analytics với ứng dụng Android, bạn cần có:

Thiết lập

  • Thêm libGoogleAnalytics.jar vào thư mục /libs của dự án.
  • Thêm các quyền sau vào tệp kê khai AndroidManifest.xml của dự án:
    • <uses-permission android:name="android.permission.INTERNET" />
    • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Một ứng dụng mẫu đi kèm với SDK minh hoạ dự án của bạn sẽ trông như thế nào nếu được thiết lập thành công. Hãy sử dụng trang này làm mẫu cho các ứng dụng tích hợp Analytics của riêng bạn.

Sử dụng SDK

Trước khi bắt đầu sử dụng SDK, trước tiên bạn phải tạo tài khoản miễn phí tại www.google.com/analytics và tạo thuộc tính web mới trong tài khoản đó bằng cách sử dụng URL trang web giả mạo nhưng mang tính mô tả (ví dụ: http://mymobileapp.mywebsite.com). Sau khi bạn tạo thuộc tính, hãy ghi lại hoặc lưu giữ bản sao ID thuộc tính web được tạo cho tài sản mới tạo.

Bạn phải cho người dùng biết (dù là trong chính ứng dụng hay trong điều khoản dịch vụ của bạn) rằng bạn giữ quyền theo dõi và báo cáo hoạt động của người dùng theo cách ẩn danh trong ứng dụng của bạn. Việc bạn sử dụng SDK Google Analytics chịu sự điều chỉnh thêm của Điều khoản dịch vụ của Google Analytics. Bạn phải đồng ý tuân thủ những điều khoản này khi đăng ký tài khoản.

Mẫu và các phương pháp hay nhất

Bạn có thể tìm thấy mã mẫu và các phương pháp hay nhất tại code.google.com trong dự án analytics-api-samples.

Thư viện EasyTracker

Có Thư viện EasyTracker. Nền tảng này cung cấp khả năng theo dõi cấp ứng dụng và Hoạt động mà hầu như không cần nỗ lực phát triển. Bạn có thể tìm thấy mã này trong phần Tải xuống của dự án analytics-api-samples.

Đang khởi động công cụ theo dõi

Lấy singleton của thiết bị theo dõi bằng cách gọi GoogleAnalyticsTracker.getInstance(). Sau đó, gọi phương thức startNewSession, truyền mã thuộc tính web và hoạt động đang được theo dõi. Bạn có thể gọi phương thức này trực tiếp trong phương thức onCreate của Hoạt động nếu ứng dụng của bạn chỉ có một Hoạt động. Ví dụ:

package com.google.android.apps.analytics.sample;

import com.google.android.apps.analytics.GoogleAnalyticsTracker;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestActivity extends Activity {

  GoogleAnalyticsTracker tracker;

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

    tracker = GoogleAnalyticsTracker.getInstance();

    // Start the tracker in manual dispatch mode...
    tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", this);

    // ...alternatively, the tracker can be started with a dispatch interval (in seconds).
    //tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", 20, this);

    setContentView(R.layout.main);
    Button createEventButton = (Button)findViewById(R.id.NewEventButton);
    createEventButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        tracker.trackEvent(
            "Clicks",  // Category
            "Button",  // Action
            "clicked", // Label
            77);       // Value
      }
    });

    Button createPageButton = (Button)findViewById(R.id.NewPageButton);
    createPageButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp" and
        // scope of session-level.
        tracker.setCustomVar(1, "Navigation Type", "Button click", 2);
        // Track a page view. This is probably the best way to track which parts of your application
        // are being used.
        // E.g.
        // tracker.trackPageView("/help"); to track someone looking at the help screen.
        // tracker.trackPageView("/level2"); to track someone reaching level 2 in a game.
        // tracker.trackPageView("/uploadScreen"); to track someone using an upload screen.
        tracker.trackPageView("/testApplicationHomeScreen");
      }
    });

    Button quitButton = (Button)findViewById(R.id.QuitButton);
    quitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
    dispatchButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Manually start a dispatch, not needed if the tracker was started with a dispatch
        // interval.
        tracker.dispatch();
      }
    });
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    // Stop the tracker when it is no longer needed.
    tracker.stopSession();
  }
}

Nếu có nhiều Hoạt động trong ứng dụng của mình, bạn có thể sử dụng Thư viện EasyTracker được cung cấp trong phần Tải xuống của dự án analytics-api-samples.

Theo dõi số lượt xem trang và sự kiện

Việc theo dõi số lượt xem trang và sự kiện rất đơn giản: chỉ cần gọi trackPageView của đối tượng trình theo dõi mỗi khi bạn muốn kích hoạt một lượt xem trang. Gọi trackEvent để ghi lại sự kiện. Để biết thêm thông tin về lượt xem trang và sự kiện, hãy xem bài viết Tổng quan về SDK ở trên.

Sử dụng biến tùy chỉnh

Việc thêm biến tuỳ chỉnh cũng rất đơn giản: bạn chỉ cần sử dụng phương thức setCustomVar do SDK dành cho thiết bị di động cung cấp. Bạn nên lập kế hoạch trước để lập chỉ mục từng biến tuỳ chỉnh sẽ ánh xạ tới, để không ghi đè bất kỳ biến nào hiện có trước đó. Để biết thêm thông tin về biến tuỳ chỉnh, hãy xem bài viết Hướng dẫn về biến tuỳ chỉnh. Lưu ý rằng phương thức setCustomVar không trực tiếp gửi dữ liệu. Thay vào đó, dữ liệu được gửi cùng với lượt xem trang hoặc sự kiện được theo dõi tiếp theo. Bạn phải gọi setCustomVar trước khi theo dõi số lượt xem trang hoặc sự kiện. Xin lưu ý rằng phạm vi mặc định của Biến tuỳ chỉnh là phạm vi trang.

Sử dụng theo dõi thương mại điện tử

Có 4 phương pháp bạn sử dụng để bật tính năng Theo dõi thương mại điện tử trong ứng dụng của mình:

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

Việc gọi addTransactionaddItem sẽ thêm giao dịch hoặc mặt hàng vào vùng đệm Thương mại điện tử nội bộ để có thể thêm nhiều mặt hàng và giao dịch hơn. Chỉ khi gọi trackTransactions, các giao dịch và mục mới được gửi đến trình điều phối và được đưa vào hàng đợi để gửi đến Google Analytics.

Để xoá vùng đệm, bạn có thể gọi phương thức clearTransactions. Lưu ý: hệ thống không thu hồi bất kỳ giao dịch nào đã được gửi đến trình điều phối trước đó cũng như bất kỳ giao dịch nào đã được Google Analytics thu thập.

Mã mẫu sau đây có thể giúp bạn bắt đầu. Chúng tôi giả định rằng phương thức onPurchaseCompleted sẽ được gọi khi giao dịch mua được xác nhận hoặc bị từ chối.

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   *
   * @param purchase A PurchaseObject containing all of the transaction information needed to
   *     send the ecommerce hit to Google Analytics.
   */
  public void onPurchaseCompleted(PurchaseObject purchase) {
    tracker.addTransaction(new Transaction.Builder(
        purchase.getTransactionId(),
        purchase.getTotal())
        .setStoreName(purchase.getStoreName())
        .setTotalTax(purchase.getTotalTax())
        .setShippingCost(purchase.getShippingCost())
        .build());
    for (PurchaseLineItem lineItem : purchase.getLineItems()) {
        tracker.addItem(new Item.Builder(
            purchase.getTransactionId(),
            lineItem.getItemSKU(),
            lineItem.getItemCost(),
            lineItem.getQuantity())
            .setItemName(lineItem.getItemName())
            .setItemCategory(lineItem.getItemCategory())
            .build());
    }
    if (purchase.isConfirmed()) {
      tracker.trackTransactions();
    } else {
      // The purchase was denied or failed in some way.  We need to clear out
      // any data we've already put in the Ecommerce buffer.
      tracker.clearTransactions();
    }
  }

Để biết thêm thông tin về Thương mại điện tử, hãy xem Hướng dẫn theo dõi thương mại điện tử.

Ẩn danh IP

Để ẩn danh thông tin IP của người dùng, hãy dùng phương thức setAnonymizeIp. Thao tác này sẽ yêu cầu Google Analytics ẩn danh thông tin 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ạn có thể gọi cho setAnonymizeIp bất cứ lúc nào.

Đặt tốc độ lấy mẫu

Bạn có thể đặt tốc độ lấy mẫu bằng phương thức setSampleRate. Nếu ứng dụng của bạn tạo ra nhiều lưu lượng truy cập Analytics, thì việc đặt tốc độ lấy mẫu có thể ngăn việc tạo báo cáo bằng dữ liệu được lấy mẫu. Việc lấy mẫu diễn ra một cách nhất quán trên số lượng người dùng riêng biệt, vì vậy, xu hướng và báo cáo luôn đảm bảo tính toàn vẹn khi tốc độ lấy mẫu được bật. Phương thức setSampleRate chấp nhận một tham số int. Giá trị hợp lệ cho tham số đó là bất kỳ số nguyên nào từ 0 đến 100, tính cả hai giá trị đó.

Tỷ lệ 0 sẽ tắt việc tạo lượt truy cập, trong khi tỷ lệ 100 sẽ gửi tất cả dữ liệu đến Google Analytics. Bạn nên gọi setSampleRate trước khi gọi bất kỳ phương thức theo dõi nào.

Bạn có thể tìm hiểu thêm về việc lấy mẫu trong Hướng dẫn về khái niệm lấy mẫu.

Loạt lượt truy cập

Để tiết kiệm chi phí kết nối và pin, bạn nên tạo lô cho các yêu cầu theo dõi. Bạn có thể gọi dispatch trên đối tượng theo dõi bất cứ khi nào bạn muốn thực hiện một yêu cầu hàng loạt. Bạn có thể thực hiện việc này theo cách thủ công hoặc theo những khoảng thời gian cụ thể.

Vấn đề đã biết

  • Việc gọi các phương thức GoogleAnalyticsTracker trên các chuỗi khác nhau có thể dẫn đến lỗi không rõ ràng. Hãy nhớ thực hiện tất cả các cuộc gọi từ cùng một chuỗi.
  • Theo dõi chiến dịch

    SDK hỗ trợ hai loại theo dõi chiến dịch.

    - Theo dõi chiến dịch Google Play – Cho phép bạn theo dõi các lượt giới thiệu cài đặt thông qua Google Play.
    Theo dõi chiến dịch chung – Cho phép bạn theo dõi bất kỳ chiến dịch nào giới thiệu người dùng đến ứng dụng của bạn.

    Theo dõi chiến dịch trên Google Play

    Bản phát hành hệ điều hành Android 1.6 hỗ trợ việc sử dụng tham số URL referrer trong đường liên kết tải xuống đến Google Play. Google Analytics SDK dành cho Android sử dụng thông số này để tự động điền thông tin chiến dịch trong Google Analytics cho ứng dụng của bạn. Điều này cho phép ghi lại nguồn của lượt cài đặt ứng dụng, cũng như liên kết với các lượt xem trang và sự kiện trong tương lai. Điều này có thể hữu ích cho việc đo lường mức độ hiệu quả của một quảng cáo cụ thể cho ứng dụng của bạn, chẳng hạn.

    Để tính năng theo dõi lượt giới thiệu hoạt động, bạn phải thêm đoạn mã sau đây vào tệp kê khai AndroidManifest.xml của dự án:

    <!-- Used for install referrer tracking -->
    <receiver android:name="com.google.android.apps.analytics.AnalyticsReceiver" android:exported="true">
      <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
      </intent-filter>
    </receiver>
    

    Để thiết lập tính năng theo dõi chiến dịch Google Analytics thông qua Google Play, hãy sử dụng trình tạo URL bên dưới để tạo đường liên kết giới thiệu. Sử dụng đường liên kết để giới thiệu người dùng đến ứng dụng của bạn. Analytics SDK sẽ tự động phân tích cú pháp và ghi lại thông tin giới thiệu, đồng thời điền thông tin đó vào báo cáo Analytics của bạn.

    Để tạo đường liên kết giới thiệu, bạn có thể dùng Trình tạo URL cho chiến dịch trên Google Play. Tên gói, Nguồn chiến dịch, Phương tiện chiến dịchTên chiến dịch là bắt buộc. Để biết nội dung mô tả chi tiết về từng thông số, hãy xem bảng bên dưới.

    Theo dõi chiến dịch chung

    Với phiên bản 1.3 của SDK Google Analytics dành cho Android, giờ đây, bạn có thể theo dõi chiến dịch cho các nguồn ngoài Google Play. Ví dụ: nếu muốn biết rằng ứng dụng của mình được khởi chạy từ một đường liên kết trong một quảng cáo, bạn có thể kiểm tra thông tin giới thiệu chiến dịch trong ý định khiến ứng dụng của bạn được khởi chạy, sau đó lưu trữ thông tin chiến dịch đó trong Google Analytics.

    Để đặt thông tin giới thiệu chiến dịch, hãy sử dụng phương thức setReferrer như sau:

      tracker.setReferrer(referrer);
    

    Có hai hạn chế khi sử dụng tính năng này. Trước tiên, bạn phải gọi startNewSession trước khi gọi setReferrer. Bạn cần làm việc này vì cơ sở dữ liệu SQLite mà Google Analytics sử dụng chưa được thiết lập trước khi gọi startNewSessionsetReferrer cần cơ sở dữ liệu đó. Nếu chưa gọi startNewSession, bạn sẽ nhận được một IllegalStateException.

    Hạn chế thứ hai là chuỗi giới thiệu được truyền vào setReferrer cần tuân theo một định dạng cụ thể. URL phải có dạng một tập hợp các tham số URL và phải bao gồm ít nhất một tham số gclid hoặc một tham số utm_campaign, utm_medium và utm_source. Trong trường hợp sau, giá trị này cũng có thể có các thông số utm_term và utm_content.

    Thông số gclid là một phần của tính năng tự động gắn thẻ. Thông số này tự động liên kết Google Analytics với Google Ads. Giới thiệu chiến dịch mẫu sử dụng tính năng tự động gắn thẻ có thể giống như sau:

    referrer = “gclid=gclidValue”;
    

    Chuỗi giới thiệu chiến dịch được tạo thủ công có thể trông giống như sau:

    referrer = “utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
    

    Nếu bạn truyền một chuỗi liên kết giới thiệu có định dạng không hợp lệ đến setReferrer, thông tin liên kết giới thiệu sẽ không thay đổi và bạn sẽ nhận được giá trị trả về là false. Giá trị trả về là true cho biết rằng đường liên kết giới thiệu đó đã được cập nhật và sẽ được thêm vào mỗi lượt truy cập sau này.

    Ngoài ra, xin lưu ý rằng một phiên mới sẽ bắt đầu khi bạn gọi setReferrer và phiên này trả về giá trị true.

    Thông số Bắt buộc Nội dung mô tả Ví dụ
    utm_campaign Tên chiến dịch; được dùng để phân tích từ khoá nhằm xác định một quảng cáo sản phẩm cụ thể hoặc chiến dịch mang tính chiến lược cụ thể utm_campaign=spring_sale
    utm_source Nguồn chiến dịch; được sử dụng để xác định công cụ tìm kiếm, bản tin hoặc nguồn khác utm_source=google
    utm_medium Phương tiện chiến dịch; được dùng để xác định phương tiện, chẳng hạn như email hoặc chi phí mỗi lượt nhấp (cpc) utm_medium=cpc
    utm_term Không Cụm từ chiến dịch; được sử dụng cùng với kết quả tìm kiếm có trả phí để cung cấp từ khoá cho quảng cáo utm_term=running+shoes
    utm_content Không Nội dung chiến dịch; được sử dụng cho thử nghiệm A/B và quảng cáo nhắm mục tiêu theo nội dung để phân biệt các quảng cáo hoặc liên kết trỏ đến cùng một URL utm_content=logolink
    utm_content=textlink