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"}];

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

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

舉例來說,如果容器有一個包含「speed」鍵的值收集巨集值為 32,啟用規則為「en」;以及另一個帶有「Speed」鍵的值組合巨集設定值為 45,啟用規則為「Language」並非「en」,然後發出下列呼叫:

     [container longForKey:@"speed"]
 

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

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

應用程式隨附容器的初始版本。請將此項目放在名為 containerId 的套裝組合中,其中 containerId 是您將在這個 API 中使用的容器 ID。當您呼叫 openContainerById:callback: (TAGManager) 時,容器會傳回包含這些封裝規則/標記/巨集。您將在使用者介面中建立容器,並使用「下載」按鈕來下載該容器。

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

下載的容器會儲存在本機中。當您呼叫 openContainerById:callback: (TAGManager) 時,它會先載入預設容器,然後以非同步方式載入任何已儲存的容器。如果找不到任何版本,或是作業時間超過 12 小時,系統會嘗試從網路擷取較新的版本。您可以傳送 TAGContainerCallbackopenContainerById:callback: (TAGManager),以找出這些非同步載入的狀態。

有時候,您可能需要封鎖直到有非預設容器出現,或是有新的容器可用為止。方法是使用 openContainerById:callback: (TAGManager) 中的回呼或使用 TAGContainerOpener

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

公開成員函式

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

靜態公開成員函式

(TAGManager *)。+ 執行個體
 取得 TAGManager 類別的單例模式例項 (如有必要)。

房源

ID<TAGLogger >記錄程式
 用於 Google 代碼管理工具 SDK 的記錄器。
TAGRefreshModerefreshMode
 Google 代碼管理工具 SDK 使用的重新整理模式。
TAGDataLayer *dataLayer
 呼叫 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 *) url

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

有效的網址必須以下列開頭:

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

<app_name>,其中即為應用程式名稱。

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

取得 TAGManager 類別的單例模式例項 (如有必要)。

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

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

- (void) dispatchWithCompletionHandler: (TAGDispatchResult) completionHandler

將要求發送至佇列中下一個待處理網路流量,在傳送要求時 (傳回 kTAGDispatchGood) 或因發生錯誤 (傳回 kTAGDispatchError) 時,呼叫 completeHandler。

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

使用 nil 完成 Handler 呼叫這個方法與呼叫 調度 相同,

此方法可用於在 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 秒會自動傳送追蹤資訊一次。