總覽
一種類別,用來在行動裝置中導入 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 小時,系統會嘗試從網路擷取較新的版本。您可以傳送 TAGContainerCallback 到 openContainerById: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 的記錄器。 | |
| TAGRefreshMode | refreshMode |
| Google 代碼管理工具 SDK 使用的重新整理模式。 | |
| TAGDataLayer * | dataLayer |
| 呼叫 push: (TAGDataLayer) 方法,推送事件和其他資料。 | |
| NSTimeInterval | dispatchInterval |
| 如果這個值為正數,系統會自動分派追蹤資訊,每次分派間隔秒數。 | |
成員職能說明文件
| (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 類別的單例模式例項 (如有必要)。
- 傳回:
- TAGManager 的單例模式例項。
| - (避免) 調度 |
分派代碼產生的任何待處理網路流量 (任意像素、分析信標等)。
| - (void) dispatchWithCompletionHandler: | (TAGDispatchResult) | completionHandler |
將要求發送至佇列中下一個待處理網路流量,在傳送要求時 (傳回 kTAGDispatchGood) 或因發生錯誤 (傳回 kTAGDispatchError) 時,呼叫 completeHandler。
如果沒有網路連線或沒有可傳送的資料,則會傳回 kTAGDispatchNoData。
使用 nil 完成 Handler 呼叫這個方法與呼叫 調度 相同,
此方法可用於在 iOS 7.0 以上版本中擷取背景資料。
建議您在應用程式退出時呼叫此函式,以提交任何未提交的追蹤資訊。
屬性說明文件
用於 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 秒會自動傳送追蹤資訊一次。