iOS 專用 Google Analytics (分析) SDK 能讓你輕鬆在 iOS 應用程式中導入 Google Analytics (分析)。本文說明如何整合 SDK 與您的應用程式。
SDK 總覽
此 SDK 採用的追蹤模型旨在追蹤傳統網站以及與傳統網頁中小工具的互動。因此,下方使用的字詞符合傳統的網站追蹤模型,且已對應到追蹤行動應用程式。建議您熟悉 Analytics (分析) 追蹤,以瞭解這個 SDK 的運作方式。
透過行動追蹤 SDK 使用下列 Analytics (分析) 互動類型來追蹤手機應用程式:
- 網頁瀏覽追蹤
- 網頁瀏覽是評估傳統網站流量的標準做法。由於行動應用程式不包含 HTML 網頁,因此您必須決定觸發網頁瀏覽要求的時機 (以及頻率)。此外,由於網頁瀏覽要求是專為建立目錄結構而設計,因此您必須在 Analytics (分析) 的「內容」報表中為請求提供描述性名稱,以便使用網頁路徑命名。在 Analytics (分析) 報表中,您選擇的名稱會填入網頁路徑,但實際上並不是 HTML 網頁。不過,透過建立路徑為呼叫提供額外分組,即可充分利用這項設定。
- 事件追蹤
- 在 Analytics (分析) 中,事件的用途是追蹤使用者與網頁元素 (不同於網頁瀏覽要求) 的互動。您可以使用 Google Analytics (分析) 的事件追蹤功能,在 Analytics (分析) 報表介面的「事件追蹤」部分進行其他呼叫。事件會按類別分組,也可能使用個別事件標籤,以便在報表中提供彈性。舉例來說,多媒體應用程式可以為影片類別執行播放/停止/暫停動作,並為每個影片名稱指派標籤。然後,Google Analytics (分析) 報表就會針對所有標有影片類別的事件匯總事件。如要進一步瞭解事件追蹤,請參閱事件追蹤指南
- 電子商務追蹤
- 使用電子商務追蹤功能,追蹤購物車交易和應用程式內購項目。
如要追蹤交易,請呼叫
addTransaction
方法來建立整體交易,以及購物車中每項產品的addItem
方法。收集完成後,您就可以在 Google Analytics (分析) 介面的「電子商務」報表部分中查看相關資料。如要進一步瞭解電子商務追蹤,請參閱電子商務追蹤指南。 - 自訂變數
- 自訂變數是名稱與值的配對,您可以將其插入追蹤程式碼中,以利 Google Analytics (分析) 追蹤。如要進一步瞭解如何使用自訂變數,請參閱自訂變數指南。
- NoThumb 支援
-
iPhone 版 SDK 內建有 NoThumb 程式庫版本和標準 Thumb 版本。如要使用 NoThumb 程式庫程式庫,請使用
libGoogleAnalytics_NoThumb.a
檔案,而不是libGoogleAnalytics.a
檔案。
開始使用
需求條件
如要整合 Google Analytics (分析) 和 iOS 應用程式的追蹤功能,您必須符合以下條件:
- iOS 開發人員 SDK (Mac OS X 10.5.3 以上版本需要 Xcode 3.1 以上版本)
- Google Analytics (分析) 行動應用程式 iOS SDK
設定
- 開啟 Xcode 並建立新的 iPhone OS 專案。
- 將
GANTracker.h
和libGoogleAnalytics.a
從 SDK 的程式庫目錄拖曳至新專案。 - 在專案中納入
CFNetwork
架構,並連結至libsqlite3.0.dylib
。
Google Analytics (分析) 行動應用程式 SDK 可與任何支援 iOS 2.0 以上版本的 iPhone 或 iPod Touch 搭配使用,也就是與所有支援原生應用程式的 iOS 版本相容。
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 程式庫。這個 API 提供應用程式和 UIViewController 層級追蹤功能,幾乎不需要任何開發作業。您可以在 analytics-api-samples 專案的「下載」部分找到它。
啟動追蹤器
在透過 [GANTracker sharedTracker]
取得的單例模式中呼叫 startTrackerWithAccountID
方法,以啟動追蹤器。在應用程式委派的 applicationDidFinishLaunching
方法中,直接呼叫此方法通常很方便。傳遞網站資源 ID、必要的調派週期和選用委派對象。例如:
#import "BasicExampleAppDelegate.h" #import "GANTracker.h" // Dispatch period in seconds static const NSInteger kGANDispatchPeriodSec = 10; @implementation BasicExampleAppDelegate @synthesize window = window_; - (void)applicationDidFinishLaunching:(UIApplication *)application { // ************************************************************************** // PLEASE REPLACE WITH YOUR ACCOUNT DETAILS. // ************************************************************************** [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-0000000-1" dispatchPeriod:kGANDispatchPeriodSec delegate:nil]; NSError *error; if (![[GANTracker sharedTracker] setCustomVariableAtIndex:1 name:@"iPhone1" value:@"iv1" withError:&error]) { // Handle error here } if (![[GANTracker sharedTracker] trackEvent:@"my_category" action:@"my_action" label:@"my_label" value:-1 withError:&error]) { // Handle error here } if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point" withError:&error]) { // Handle error here } [window_ makeKeyAndVisible]; } - (void)dealloc { [[GANTracker sharedTracker] stopTracker]; [window_ release]; [super dealloc]; } @end
追蹤網頁瀏覽和事件
追蹤網頁瀏覽和事件很簡單:只要每次要觸發網頁瀏覽,呼叫追蹤器物件的 trackPageView
。呼叫 trackEvent
以記錄事件。如要進一步瞭解網頁瀏覽和事件,請參閱上方的 SDK 總覽。
使用自訂變數
新增自訂變數也很簡單,只要使用行動 SDK 提供的 setCustomVariableAtIndex
方法即可。因此,建議您提前規劃將每個自訂變數對應至的索引值,以免覆寫任何現有變數。如要進一步瞭解自訂變數,請參閱自訂變數指南。請注意,setCustomVariableAtIndex
方法不會直接傳送資料。而是與已追蹤的網頁瀏覽或事件一併傳送。追蹤網頁瀏覽或事件前,您必須呼叫 setCustomVariableAtIndex
。請注意,自訂變數的預設範圍是以網頁為範圍。
使用電子商務追蹤
在應用程式中啟用電子商務追蹤的方法有 4 種,分別是:
addTransaction
addItem
trackTransactions
clearTransactions
呼叫 addTransaction
和 addItem
會將交易或項目新增至內部電子商務緩衝區,以便新增更多項目和交易。只有在呼叫 trackTransactions
時,交易和項目才會傳送至調度工具,並排入 Google Analytics (分析)。
如要清除緩衝區,您可以呼叫 clearTransactions
方法。注意:喚回了先前傳送至調度工具的任何交易,以及 Google Analytics (分析) 已收集的任何交易。
下列程式碼範例可協助您開始作業。
/** * The purchase was processed. We will track the transaction and its associated line items * now, but only if the purchase has been confirmed. */ - (void) processPurchase:Purchase purchase { [[GANTracker sharedTracker] addTransaction:[purchase transactionId] totalPrice:[purchase totalPrice] storeName:[purchase store] totalTax:[purchase tax] shippingCost:[purchase shipping] withError:&error]; if (error) { // Handle error } for (PurchaseItem item in [purchase items]) { [[GANTracker sharedTracker] addItem:[purchase transactionId] itemSKU:[item itemSKU] itemPrice:[item price] itemCount:[item count] itemCategory:[item category] withError:&error]; if (error) { // Handle error } } if ([purchase isConfirmed]) { [[GANTracker sharedTracker] trackTransactions:&error]; } 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. [[GANTracker sharedTracker] clearTransactions:&error]; } }
如要進一步瞭解電子商務,請參閱「電子商務追蹤指南」一文。
將 IP 去識別化
如要去識別化使用者的 IP 資訊,請將屬性 anonymizeIp
設為「是」。
藉此告知 Google Analytics (分析) 在 IP 儲存前移除 IP 位址的最後八位元,將 SDK 傳送的資訊去識別化。
以下舉例說明:
[[GANTracker sharedTracker] setAnonymizeIp:YES];
你隨時可以設定 anonymizeIp
。
設定取樣率
您可以使用屬性 sampleRate
設定取樣率。
如果您的應用程式會產生大量 Analytics (分析) 流量,設定取樣率可能會導致系統無法使用取樣資料產生報表。只有不重複使用者時,系統會持續取樣,因此啟用取樣率時,趨勢和報表的完整性會保持完整。
sampleRate
參數是 NSUInteger,其值可以介於 0 到 100 (含)。以下範例將 sampleRate
調降為 95%:
[[GANTracker sharedTracker] setSampleRate:95];
率為 0 可關閉命中產生功能,100 的速率則將所有資料傳送至 Google Analytics (分析)。
建議您在呼叫任何追蹤方法前,先設定 sampleRate
。
如要進一步瞭解取樣範例,請參閱取樣概念指南。
批次命中
為了節省連線和電池負擔,建議您批次處理追蹤要求。您隨時可以提出追蹤物件呼叫 dispatch
,藉此手動提出要求,也可以按照特定時間間隔進行呼叫。
已知問題
dispatch
:
-
在
applicationWillTerminate
方法中 -
在
applicationDidEnterBackground
中 -
呼叫
stopTracker
之前
dispatchSynchronous:
方法。追蹤廣告活動
一般廣告活動追蹤
Google Analytics (分析) SDK for iOS 現已推出 1.3 版,方便您追蹤廣告活動參照連結網址。 舉例來說,如果您的應用程式導入自訂網址配置,您可以建立包含廣告活動查詢參數的網址。應用程式為了回應這類網址而啟動時,您可以擷取查詢參數並傳送至 setReferrer,讓資訊儲存在 Google Analytics (分析) 中。
如要設定廣告活動參照連結網址資訊,請使用 setReferrer
方法,如下所示:
[[GANTracker sharedTracker] setReferrer:referrer withError:&error];
使用這項功能有兩項限制。您必須先呼叫 startTrackerWithAccountID
才能呼叫 setReferrer
。之所以要做到這點,這是因為 Google Analytics (分析) 使用的 SQLite 資料庫並未在呼叫 startTrackerWithAccountID
之前設定,而 setReferrer
需要該資料庫。如未呼叫 startTrackerWithAccountID
,您會收到錯誤訊息。
第二個限制是,傳遞至 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
|