您可以使用 Android 版 Google Analytics (分析) 行動應用程式 SDK,輕鬆將 Google Analytics (分析) 導入 Android 應用程式。本文說明如何將 SDK 與應用程式整合。
SDK 總覽
這個 SDK 使用的追蹤模型能追蹤傳統網站的使用者,以及傳統網頁中小工具的互動情形。因此,下方使用的字詞反映了傳統的網站追蹤模式,目前也用於追蹤行動應用程式。建議您熟悉 Analytics (分析) 追蹤,瞭解這個 SDK 的運作方式。
使用下列 Analytics (分析) 互動類型,使用行動追蹤 SDK 追蹤手機應用程式:
- 網頁瀏覽追蹤
- 網頁瀏覽是評估傳統網站流量的標準方式。由於行動應用程式不包含 HTML 網頁,因此您必須決定觸發網頁瀏覽請求的時機和頻率。此外,由於網頁瀏覽要求的設計目的在於製作目錄結構報表,因此您應該為要求提供描述性的名稱,以利用 Analytics (分析)「內容」報表中的網頁路徑命名方式。系統會將您選擇的名稱填入 Analytics (分析) 報表做為網頁路徑 (即使這些名稱實際上不是 HTML 網頁)。不過,您可以藉由建構路徑來為呼叫提供其他分組,以便善用這項優勢。
- 事件追蹤
- 在 Analytics (分析) 中,事件的作用是分別追蹤使用者與網頁元素的互動,而這與網頁瀏覽要求並不相同。您可以使用 Google Analytics (分析) 的「事件追蹤」功能撥打其他呼叫,這些呼叫會記錄在 Analytics (分析) 報表介面的「事件追蹤」區段中。事件會依類別分類,也可能會使用個別事件的標籤,方便您靈活製作報表。舉例來說,多媒體應用程式可針對 video 類別建立播放/停止/暫停動作,並為每個影片名稱指派一個標籤。接著,Google Analytics (分析) 報表就會匯總標有「影片」類別所有事件的事件。如要進一步瞭解事件追蹤,請參閱事件追蹤指南
- 電子商務追蹤
- 使用電子商務追蹤功能追蹤購物車交易和應用程式內購。如要追蹤交易,請使用
Transaction
類別代表整體購物資訊,並使用Item
類別代表購物車中的各項產品。收集到資料後,您就可以在 Google Analytics (分析) 介面的「電子商務報表」部分查看這些資料。若要進一步瞭解電子商務追蹤,請參閱電子商務追蹤指南。 - 自訂變數
- 自訂變數是一種名稱與值組合的代碼,你可以插入至追蹤程式碼,藉此調整 Google Analytics (分析) 追蹤功能。如要進一步瞭解如何使用自訂變數,請參閱自訂變數指南。
入門課程
需求條件
如要將 Google Analytics (分析) 的追蹤功能與 Android 應用程式整合,您必須符合以下條件:
- Android 開發人員 SDK (適用於 Windows、Mac OS X 和 Linux)
- Google Analytics (分析) 行動應用程式 Android SDK
設定
- 將
libGoogleAnalytics.jar
新增至專案的/libs
目錄。 -
在專案的
AndroidManifest.xml
資訊清單檔案中新增下列權限:<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
SDK 中會包含一個應用程式範例,用來示範專案設定成功後的狀況。您可以將這個範本做為範本,用來製作與 Analytics (分析) 整合的應用程式。
使用 SDK
開始使用 SDK 前,請務必先前往 www.google.com/analytics 建立免費帳戶,並使用假明確的網站網址 (例如 http://mymobileapp.mywebsite.com
) 在該帳戶中建立新的網站資源。建立資源後,請寫下或保留為新建資源產生的網站資源 ID 副本。
您必須在應用程式或服務條款中,向使用者註明您保留匿名追蹤及回報應用程式內使用者活動的權利。您使用 Google Analytics (分析) SDK 時,也必須遵守 Google Analytics (分析) 服務條款,您必須在註冊帳戶時同意這份服務條款。
範例和最佳做法
您可以前往 code.google.com ,在 analytics-api-samples 專案底下找到程式碼範例和最佳做法。
EasyTracker 程式庫
可使用 EasyTracker 程式庫。這項服務幾乎不需費心開發,即可提供應用程式和活動層級追蹤功能。您可以在 analytics-api-samples 專案的「下載」部分找到這組 ID。
啟動追蹤器
呼叫 GoogleAnalyticsTracker.getInstance()
取得追蹤器單例模式。接著呼叫其 startNewSession
方法,傳遞所追蹤的網站資源 ID 和活動。如果您的應用程式只有一項活動,可以直接在 Activity 的 onCreate
方法中呼叫此方法。例如:
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(); } }
應用程式中有多個活動時,您可以使用 analytics-api-samples 專案「下載」區段中提供的 EasyTracker 程式庫。
追蹤網頁瀏覽量和事件
追蹤網頁瀏覽和事件相當簡單:每次要觸發網頁瀏覽時,只要呼叫追蹤程式物件的 trackPageView
即可。呼叫 trackEvent
即可錄製活動。如要進一步瞭解網頁瀏覽量和事件,請參閱上方的 SDK 總覽。
使用自訂變數
新增自訂變數的方法很簡單:只要使用行動 SDK 提供的 setCustomVar
方法即可。建議您事先規劃每個自訂變數對應的索引,以免覆寫任何先前現有的變數。如要進一步瞭解自訂變數,請參閱自訂變數指南。請注意,setCustomVar
方法不會自行直接傳送資料。而是隨下一次追蹤的網頁瀏覽或事件傳送。您必須先呼叫 setCustomVar
,才能追蹤網頁瀏覽或事件。請注意,自訂變數的預設範圍是以網頁為範圍。
使用電子商務追蹤
在應用程式中啟用電子商務追蹤的方法有 4 種:
addTransaction
addItem
trackTransactions
clearTransactions
呼叫 addTransaction
和 addItem
會將交易或項目新增至內部電子商務緩衝區,以便新增更多項目和交易。只有在呼叫 trackTransactions
時,交易和項目才會傳送至調度工具,並排入佇列並傳送至 Google Analytics (分析)。
如要清除緩衝區,您可以呼叫 clearTransactions
方法。注意:系統不會喚回先前傳送至調度工具的任何交易,或 Google Analytics (分析) 已收集的任何交易。
以下程式碼範例可幫助您踏出第一步。我們假設購買交易在確認或拒絕時,會呼叫 onPurchaseCompleted
方法。
/** * 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(); } }
若要進一步瞭解電子商務,請參閱電子商務追蹤指南。
將 IP 去識別化
如要將使用者 IP 資訊去識別化,請使用 setAnonymizeIp
方法。這指示 Google Analytics (分析) 在儲存 IP 位址前移除 IP 位址的最後八位元,藉此將 SDK 傳送的資訊去識別化。
你隨時可以呼叫 setAnonymizeIp
。
設定取樣率
您可以使用 setSampleRate
方法設定取樣率。假如您的應用程式會產生大量的 Analytics (分析) 流量,設定取樣率可能會導致報表無法用取樣資料產生。系統對不重複使用者的取樣頻率會一致,因此啟用取樣率時,趨勢和報表功能維持一致。setSampleRate
方法接受一個 int
參數。該參數的有效值是介於 0 到 100 (含首尾) 之間的任何整數。
如果比率為 0,系統就會停止產生命中資料;率為 100 時,會將所有資料傳送至 Google Analytics (分析)。
建議您在呼叫任何追蹤方法前,先呼叫 setSampleRate
。
如要進一步瞭解取樣,請參閱取樣概念指南。
批次處理命中
為了節省連線與電池用量,建議您批次處理追蹤要求。您可以隨時在追蹤物件上呼叫 dispatch
,也可以手動或依特定時間間隔呼叫。
已知問題
追蹤廣告活動
SDK 支援兩種廣告活動追蹤。
- Google Play 廣告活動追蹤:您可以透過 Google Play 追蹤安裝參照連結網址。
- 一般廣告活動追蹤:讓您追蹤將使用者轉介給應用程式的任何廣告活動。
Google Play 廣告活動追蹤
Android 1.6 OS 版本支援在 Google Play 的下載連結中使用 referrer
網址參數。Android 專用的 Google Analytics (分析) SDK 會使用這個參數,自動將您應用程式的廣告活動資訊填入 Google Analytics (分析)。這樣就能記錄應用程式安裝的來源,並與日後的網頁瀏覽和事件建立關聯,在評估應用程式中特定廣告的成效時,這種做法就能派上用場。
為了讓參照連結網址追蹤功能正常運作,您必須將下列程式碼片段加入專案的 AndroidManifest.xml
資訊清單檔案:
<!-- 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>
如要透過 Google Play 設定 Google Analytics (分析) 廣告活動追蹤,請使用下方的網址產生器產生推薦連結。藉此連到您的應用程式。Analytics (分析) SDK 會自動剖析並記錄推薦連結資訊,然後列在 Analytics (分析) 報表中。
若要產生推薦連結,可以使用 Google Play 廣告活動網址產生器。Package Name、Campaign Source、Campaign Medium 和 Campaign Name 為必填欄位。如需每個參數的詳細說明,請參閱下方的表格。
一般廣告活動追蹤
使用 Android 專用的 Google Analytics (分析) SDK 1.3 版,您現在可以追蹤 Google Play 以外來源的廣告活動。 比方說,如果您想知道廣告是透過廣告中的連結啟動,可以在啟動應用程式的意圖中查看廣告活動參照連結網址資訊,然後將該廣告活動資訊儲存在 Google Analytics (分析) 中。
如要設定廣告活動參照連結網址資訊,請使用 setReferrer
方法,如下所示:
tracker.setReferrer(referrer);
使用這項功能有兩項限制。首先,您必須先呼叫 startNewSession
再呼叫 setReferrer
。您必須這麼做,因為 Google Analytics (分析) 在呼叫 startNewSession
和 setReferrer
之前,並未設定 SQLite 資料庫,因此您需要這麼做。如果您尚未呼叫 startNewSession
,則會收到 IllegalStateException
。
第二個限制是傳入 setReferrer
的參照連結網址字串必須符合特定格式。
這個參數必須以一組網址參數的形式呈現,且至少必須包含一個 gclid 參數,或每一個 utm_campaign、utm_medium 和 utm_source 各一個。在後者中,它也可以包含 utm_term 和 utm_content 參數。
gclid 參數是自動標記功能的一部分,會自動將 Google Analytics (分析) 連結至 Google Ads。使用自動標記的廣告活動參照連結網址範例看起來可能像這樣:
referrer = “gclid=gclidValue”;
手動廣告活動參照連結網址字串看起來可能像這樣:
referrer = “utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
如果您將格式錯誤的參照網址字串傳送至 setReferrer
,則參照網址資訊不會變更,而且傳回值會是 false。如果回傳值為 true,參照網址已更新,並將加進日後的每一個命中中。
另請注意,當您呼叫 setReferrer 時,系統會啟動新的工作階段,並傳回 true。
推薦連結參數
參數 | 必要 | 說明 | 範例 |
---|---|---|---|
utm_campaign |
可 | 廣告活動名稱;用於關鍵字分析,找出特定的產品促銷或策略性廣告活動 | utm_campaign=spring_sale |
utm_source |
可 | 廣告活動來源:用來識別搜尋引擎、電子報或其他來源 | utm_source=google |
utm_medium |
可 | 廣告活動媒介;用來識別電子郵件或單次點擊出價等媒介 | utm_medium=cpc |
utm_term |
否 | 廣告活動字詞;搭配付費搜尋使用,以提供廣告的關鍵字 | utm_term=running+shoes |
utm_content |
否 | 廣告活動內容;用於 A/B 測試和指定內容廣告,以區分連到同一個網址的廣告或連結 |
utm_content=logolink
utm_content=textlink
|