iOS 專用的 Google Analytics (分析) SDK v1 (舊版)

您可以使用 iOS 版 Google Analytics (分析) 行動應用程式 SDK,輕鬆將 Google Analytics (分析) 導入 iOS 應用程式。本文說明如何將 SDK 與應用程式整合。

SDK 總覽

這個 SDK 使用的追蹤模型能追蹤傳統網站的使用者,以及傳統網頁中小工具的互動情形。因此,下方使用的字詞反映了傳統的網站追蹤模式,目前也用於追蹤行動應用程式。建議您熟悉 Analytics (分析) 追蹤,瞭解這個 SDK 的運作方式。

使用下列 Analytics (分析) 互動類型,使用行動追蹤 SDK 追蹤手機應用程式:

網頁瀏覽追蹤
網頁瀏覽是評估傳統網站流量的標準方式。由於行動應用程式不包含 HTML 網頁,因此您必須決定觸發網頁瀏覽請求的時機和頻率。此外,由於網頁瀏覽要求的設計目的在於製作目錄結構報表,因此您應該為要求提供描述性的名稱,以利用 Analytics (分析)「內容」報表中的網頁路徑命名方式。系統會將您選擇的名稱填入 Analytics (分析) 報表做為網頁路徑 (即使這些名稱實際上不是 HTML 網頁)。不過,您可以藉由建構路徑來為呼叫提供其他分組,以便善用這項優勢。
事件追蹤
在 Analytics (分析) 中,事件的作用是分別追蹤使用者與網頁元素的互動,而這與網頁瀏覽要求並不相同。您可以使用 Google Analytics (分析) 的「事件追蹤」功能撥打其他呼叫,這些呼叫會記錄在 Analytics (分析) 報表介面的「事件追蹤」區段中。事件會依類別分類,也可能會使用個別事件的標籤,方便您靈活製作報表。舉例來說,多媒體應用程式可針對 video 類別建立播放/停止/暫停動作,並為每個影片名稱指派一個標籤。接著,Google Analytics (分析) 報表就會匯總標有「影片」類別所有事件的事件。如要進一步瞭解事件追蹤,請參閱事件追蹤指南
電子商務追蹤
使用電子商務追蹤功能追蹤購物車交易和應用程式內購。如要追蹤交易,請呼叫 addTransaction 方法來建立整體交易,並為購物車中各項產品呼叫 addItem 方法。收集到資料後,您就可以在 Google Analytics (分析) 介面的「電子商務報表」部分查看這些資料。若要進一步瞭解電子商務追蹤,請參閱電子商務追蹤指南
自訂變數
自訂變數是一種名稱與值組合的代碼,你可以插入至追蹤程式碼,藉此調整 Google Analytics (分析) 追蹤功能。如要進一步瞭解如何使用自訂變數,請參閱自訂變數指南
支援 NoThumb
iPhone 專用的 SDK 現在隨附 NoThumb 程式庫,以及標準 Thumb 版本。如要使用程式庫的 NoThumb 版本,請使用 libGoogleAnalytics_NoThumb.a 檔案,而不是 libGoogleAnalytics.a 檔案。

入門課程

需求條件

若要將 Google Analytics (分析) 的追蹤功能與 iOS 應用程式整合,您必須符合以下條件:

設定

  • 開啟 Xcode 並建立新的 iPhone OS 專案。
  • GANTracker.hlibGoogleAnalytics.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 程式庫。它幾乎不需要開發任何工作,即可提供應用程式和 UIViewController 追蹤功能。您可以在 analytics-api-samples 專案的「下載」部分找到這組 ID。

啟動追蹤器

對透過 [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

呼叫 addTransactionaddItem 會將交易或項目新增至內部電子商務緩衝區,以便新增更多項目和交易。只有在呼叫 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,也可以手動或依特定時間間隔呼叫。

已知問題

  • 參照連結網址/流量來源:目前無法在 iOS 裝置上追蹤應用程式下載的廣告活動/推薦連結來源。
  • 強烈建議您在下列情況下不要呼叫 dispatch
    • applicationWillTerminate 方法中
    • applicationDidEnterBackground
    • 呼叫 stopTracker
    這樣可能會導致命中傳送兩次。請改用 dispatchSynchronous: 方法。
  • 對不同的執行緒呼叫 GANTracker 方法,可能會導致模糊的 SQLite 錯誤。請務必從同一個執行緒發出所有呼叫。
  • 追蹤廣告活動

    一般廣告活動追蹤

    使用 iOS 專用的 Google Analytics (分析) SDK 1.3 版,您現在可以追蹤廣告活動參照連結網址。 舉例來說,如果您的應用程式實作了自訂網址配置,您可以建立包含廣告活動查詢參數的網址。當您的應用程式為了回應這類網址而啟動時,您可以擷取查詢參數並傳遞至 setReferrer,這樣資訊就會儲存在 Google Analytics (分析) 中。

    如要設定廣告活動參照連結網址資訊,請使用 setReferrer 方法,如下所示:

      [[GANTracker sharedTracker] setReferrer:referrer withError:&error];
    

    使用這項功能有兩項限制。首先,您必須先呼叫 startTrackerWithAccountID 再呼叫 setReferrer。您必須這麼做,因為 Google Analytics (分析) 在呼叫 startTrackerWithAccountIDsetReferrer 之前,並未設定 SQLite 資料庫,因此您需要這麼做。如果您未呼叫 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