TAGManager 類別參考資料

TAGManager 類別參考資料

總覽

為行動裝置導入 Google 代碼管理工具 (GTM) 的類別。

使用範例:

      TAGContainer *container =
          [[TAGManager instance] openContainerById:myContainerId];
      NSString *value = [container stringForKey:@"myKey"];
      TAGDataLayer *dataLayer =
          [[TAGManager instance] dataLayer];
      [dataLayer push:@{@"event": @"openScreen",
                        @"screenName": @"Main Page"}];

容器是一組巨集、規則和代碼。這個 ID 是在 GTM 應用程式 (http://www.google.com/tagmanager) 中建立的,並會指派容器 ID。這個容器 ID 是指此 API 中使用的容器。

TAGContainer 類別提供依指定巨集名稱擷取巨集值的方法。這些處理常式 booleanForKey: (TAGContainer)doubleForKey: (TAGContainer)int64ForKey: (TAGContainer)stringForKey: (TAGContainer) 會根據容器中與該巨集相關聯的規則,傳回目前值收集巨集名稱。

舉例來說,如果容器有一個值收集巨集的鍵值為「速度」為 32,而啟用規則的「速度」為「en」,而啟用規則的「速度」為 45,而啟用規則不是「en」,然後發出下列呼叫:

     [container longForKey:@"speed"]
 

如果裝置目前的語言是英文,會傳回 32,否則傳回 45。

資料層是存放應用程式一般資訊的地圖。TAGDataLayer 類別提供從資料層推送及擷取資料的方法。將 event 鍵推送到資料層,與這個事件相符的代碼就會觸發。

這個容器的初始版本會隨附在應用程式。這個檔案應放在名稱是 containerId 的套件中,其中 containerId 是您將在此 API 中使用的容器 ID。呼叫 openContainerById:callback: (TAGManager) 時,容器將傳回這些組合規則/標記/巨集。您將在使用者介面中建立容器,然後點按「下載」按鈕來下載容器。

您可以在使用者介面中修改容器並發布新版本。在這種情況下,行動應用程式下次從網路重新整理容器時 (目前為每 12 小時),就會取得新的版本。當您呼叫其中一個 get... 常式時,此值將根據最新的規則計算。

下載的容器會儲存在本機。呼叫 openContainerById:callback: (TAGManager) 時,會先載入預設容器,然後以非同步方式載入任何已儲存的容器。如果找不到上述項目,或是已超過 12 小時,系統將嘗試從網路擷取新版本。如要找出這些非同步載入作業的狀態,請將 TAGContainerCallback 傳遞至 openContainerById:callback: (TAGManager)

有時候,您可能需要封鎖到非預設容器,或直到最近有新容器可供使用為止。如要這麼做,您可以在 openContainerById:callback: (TAGManager) 中使用回呼,或使用 TAGContainerOpener

用完容器後,請呼叫 close (TAGContainer)

公開成員函式

(TAGContainer *)- openContainerById:callback:
 傳回容器。
(TAGContainer *)- getContainerById:
 傳回與指定 containerId 相關聯的容器;如果容器尚未開啟,則傳回 nil
(BOOL) - previewWithUrl:
 使用輸入網址預覽應用程式。
(void) - 調度
 分派代碼產生的任何待處理網路流量 (任意像素、分析信標等)。
(void) - dispatchWithCompleteHandler:
 分派佇列中下一個待處理網路流量,在要求傳送完成 (傳回 kTAGDispatchGood) 或發生錯誤 (傳回 kTAGDispatchError) 時呼叫完成處理常式。

靜態公開成員函式

(TAGManager *)+ 執行個體
 取得 TAGManager 類別的單例模式例項,並視需要建立例項。

資源

id< TAGLogger >logger
 用於 Google 代碼管理工具 SDK 的記錄器。
TAGRefreshModerefreshMode
 Google 代碼管理工具 SDK 使用的重新整理模式。
TAGDataLayerdataLayer
 呼叫 push: (TAGDataLayer) 方法,以推送事件和其他資料。
NSTimeIntervaldispatchInterval
 如果這個值為正數,系統會自動每分派間隔秒數傳送追蹤資訊。

成員函式說明文件

- (TAGContainer *) openContainerById: (NSString *) containerId
回呼: (id< TAGContainerCallback >) 回呼

傳回容器。

一般來說,傳回的容器會是空白的,但載入作業會以非同步方式進行,因此傳回的容器可能會在傳回前、傳回後重新整理,或永遠不會重新整理 (例如容器生命週期內沒有網路連線)。

當容器發生各種事情時,系統就會呼叫回呼。openContainerById:callback: 至少會嘗試載入容器的已儲存版本。如果裝置未儲存版本,或是儲存的版本已過期,系統就會嘗試從網路載入。

如果針對特定 containerId 再次呼叫 openContainerById:callback:,系統會傳回 nil,除非前一個開啟的容器已經關閉。

參數:
containerId要開啟的容器 ID。
回呼系統會在載入過程中呼叫其各種方法的物件。請注意,此方法可能會從不同的執行緒呼叫。此外,可能在 openContainerById:callback: 傳回之前呼叫。
傳回:
開啟的容器。
- (TAGContainer *) getContainerById: (NSString *) containerId

傳回與指定 containerId 相關聯的容器;如果容器尚未開啟,則傳回 nil

- (BOOL) previewWithUrl: (NSURL *) 網址

使用輸入網址預覽應用程式。

有效的網址開頭必須是以下項目:

 tagmanager.c.<app_name>://preview/p?id=

其中 <app_name> 是應用程式名稱。

參數:
網址預覽網址。
傳回:
如果網址是有效的代碼管理工具預覽網址,則為「是」。

取得 TAGManager 類別的單例模式例項,並視需要建立例項。

傳回:
TAGManager 的單例模式例項。
- (void) 調度

分派代碼產生的任何待處理網路流量 (任意像素、分析信標等)。

- (void) dispatchWithCompleteHandler: (TAGDispatchResult) completionHandler

分派佇列中下一個待處理網路流量,在要求傳送完成 (傳回 kTAGDispatchGood) 或發生錯誤 (傳回 kTAGDispatchError) 時呼叫完成處理常式。

如果沒有網路連線或沒有資料可傳送,會傳回 kTAGDispatchNoData。

使用 nil completedHandler 呼叫這個方法與呼叫 dispatch 相同。

這個方法可用於在 iOS 7.0 以上版本中擷取背景資料。

建議您在應用程式結束以啟動任何未提交的追蹤資訊時,呼叫此方法。


屬性說明文件

- (id<TAGLogger>) logger [read, write, assign]

用於 Google 代碼管理工具 SDK 的記錄器。

根據預設,Google 代碼管理工具會記錄錯誤/警告訊息,並忽略資訊/偵錯/詳細資訊訊息。您可以設定這項屬性,以使用自訂記錄器。

- (TAGRefreshMode) refreshMode [read, write, assign]

Google 代碼管理工具 SDK 使用的重新整理模式。

將此值設為 kTAGRefreshModeDefaultContainer,可讓重新整理方法僅使用預設容器進行開發。預設值為 kTAGRefreshModeStandard

- (TAGDataLayer*) dataLayer [read, assign]

呼叫 push: (TAGDataLayer) 方法,以推送事件和其他資料。

- (NSTimeInterval) dispatchInterval [read, write, assign]

如果這個值為正數,系統會自動每分派間隔秒數傳送追蹤資訊。

否則,則必須呼叫分派來手動傳送追蹤資訊。

預設值是「120」,表示系統每 120 秒會自動分派追蹤資訊。