代碼管理工具

公開類別 TagManager

這是 Google 代碼管理工具 (GTM) 的行動導入方式。使用範例:

 Container container = TagManager.getInstance(context).openContainer(myContainerId);
 String value = container.getString("myKey");

 DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
 dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
容器是一組巨集、代碼和規則。在 GTM 應用程式中建立,並指派容器 ID。這個容器 ID 是指此 API 中使用的容器。

Container 類別提供擷取指定鍵值的方法。處理常式 getBoolean(String)getDouble(String)getLong(String)getString(String) 會根據與容器相關聯的規則,傳回值集合巨集目前的值。

舉例來說,如果容器有一個值收集巨集,其值為 32,且啟用規則為 Language 為「en」,而啟用規則的鍵 speed 值為 45,且啟用規則為 Language 不是「en」,則進行下列呼叫:

 container.getLong("speed")
如果目前裝置語言為英文,會傳回 32; speed

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

這個容器的初始版本會隨附在應用程式。這類程式碼應放置在名為 tagmanager/containerId 的素材資源中,其中 containerId 與您在這個 API 中使用的容器 ID 相同。當您呼叫 openContainer(String, Container.Callback) 時,系統將傳回包含這些組合規則/巨集的容器。您將在使用者介面中建立容器,然後點按「下載」按鈕來下載容器。

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

下載的容器會儲存在本機;當您呼叫 openContainer(String, Container.Callback) 時,系統會先載入預設容器,並以非同步方式載入所有已儲存的容器。如果找不到上述項目,或是已超過 12 小時,系統就會嘗試從網路擷取更新版本。 您可以將 Container.Callback 傳遞至 openContainer(String, Container.Callback),藉此找到這些非同步載入作業的狀態。

有時候,您可能需要在非預設容器可供使用,或直到最近有新容器可用為止,再執行封鎖作業。ContainerOpener 是一種公用程式類別,可助您一臂之力。

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

巢狀類別摘要

TagManager.Logger 顯示錯誤/警告/資訊/偵錯/詳細資訊的簡易介面。
列舉 TagManager.RefreshMode 容器重新整理的模式。

公用方法摘要

容器
getContainer(String containerId)
背景資訊
DataLayer
靜態 TagManager
getInstance(情境背景資訊)
Logger
TagManager.RefreshMode
容器
openContainer(String containerId, Container.Callback 回呼)
void
void

公用方法

public 容器 getContainer (String containerId)

傳回與 containerId 相關聯的已開啟容器;如果容器尚未開啟,則傳回 null

public 情境 getContext ()

傳回與這個物件相關聯的已儲存結構定義。

public DataLayer getDataLayer ()

傳回代碼管理工具使用的資料層物件。

public static TagManager getInstance (Context context)

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

public Logger getLogger ()

傳回代碼管理工具目前使用的記錄器。

public TagManager.RefreshMode getRefreshMode ()

傳回所有容器使用的重新整理模式。

public 容器 openContainer (String containerIdContainer.Callback containerId)

傳回容器。當容器發生各種情況時,系統就會呼叫回呼。OpenContainer 至少會嘗試載入已儲存的容器版本。如果沒有任何儲存的版本,或儲存的版本已過期,系統就會嘗試從網路載入。

通常傳回的容器會是空白的,但載入作業會在另一個執行緒中執行,因此傳回的容器可能會在傳回前、傳回後重新整理,或永遠不會重新整理 (例如容器生命週期內沒有網路連線)。

如果您再次針對指定的 containerId 呼叫 openContainer,系統會擲回例外狀況。

參數
containerId 要開啟的容器 ID
回呼 系統會在載入程序期間呼叫其各種方法的物件。請注意,此方法可能會從不同的執行緒呼叫。此外,可能會在 openContainer 傳回前呼叫。

公開 void setLogger (Logger logger)

取代代碼管理工具使用的現有記錄器。

public void setRefreshMode (TagManager.RefreshMode 模式)

設定所有容器使用的重新整理模式。