TagManager

公共类 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 中使用的 ID。

Container 类提供了用于检索给定键的值的方法。 例程 getBoolean(String)getDouble(String)getLong(String)getString(String) 返回当前 值集合宏的键的值, 具体取决于与容器关联的规则

例如,如果您的容器有一个值集合宏,其键为 speed,该键 值为 32,且启用规则 Language 为“en”;以及另一个值集合 宏,其中键为 speed,值为 45,启用规则则是 Language 不是“en”,则进行以下调用:

 container.getLong("speed")
如果设备的当前语言是英语,则返回 32,否则返回 45。

数据层是一个包含应用一般信息的地图。 DataLayer 类提供了用于从数据层推送和检索数据的方法。 将 event 键推送到数据层将会导致代码与此事件匹配 才能触发

容器的初始版本与应用捆绑在一起。应该是 作为具有名称 tagmanager/containerId 的资产放置,其中 containerId 相同 容器 ID。当您调用 openContainer(String, Container.Callback) 时,容器 将与这些捆绑规则/宏一起返回。 您将在界面中创建容器,并使用“下载”按钮进行下载。

您可以在界面中修改容器并发布新版本。在这种情况下,下次 移动应用从网络中刷新容器(目前为每 12 小时刷新一次), 则会使用新版本当您 调用其中一个 get... 例程时,系统将使用最新的规则计算该值。

下载的容器保存在本地;调用 openContainer(String, Container.Callback) 时,它会首先 先加载默认容器,然后异步加载已保存的所有容器。如果没有 或者已超过 12 小时,则会尝试从网络中检索较新版本。 您可以通过以下方式查找这些异步加载的状态: Container.CallbackopenContainer(String, Container.Callback)

有时,您可能要一直阻止,直到有非默认容器可用,或 最近刷新容器可用时ContainerOpener 是一个可以提供帮助的实用程序类。

创建完容器后,请调用 close()

嵌套类摘要

接口 TagManager.Logger 用于进行错误/警告/信息/调试/详细日志记录的简单接口。
枚举 TagManager.RefreshMode 用于刷新容器的模式。

公共方法摘要

容器
getContainer(String containerId)
背景
DataLayer
静态 TagManager
getInstance(Context 上下文)
日志记录器
TagManager.RefreshMode
容器
openContainer(String containerId, Container.Callback 回调函数)
无效
setLogger(Logger 日志记录器)
无效

公共方法

<ph type="x-smartling-placeholder"></ph> 公开 容器 getContainer (String containerId)

返回与 containerId 关联的已打开容器; 如果容器尚未打开,则返回 null

<ph type="x-smartling-placeholder"></ph> 公开 背景 getContext ()

返回与此对象关联的已保存上下文。

<ph type="x-smartling-placeholder"></ph> 公开 DataLayer getDataLayer ()

返回跟踪代码管理器使用的数据层对象。

<ph type="x-smartling-placeholder"></ph> 公开 静态 TagManager getInstance (上下文 上下文)

获取 TagManager 类的单例实例,必要时可创建该实例。

<ph type="x-smartling-placeholder"></ph> 公开 日志记录器 getLogger ()

返回跟踪代码管理器正在使用的日志记录器。

<ph type="x-smartling-placeholder"></ph> 公开 TagManager.RefreshMode getRefreshMode ()

返回用于所有容器的刷新模式。

<ph type="x-smartling-placeholder"></ph> 公开 容器 openContainer (String containerId, Container.Callback 回调

返回容器。当发生以下情况时,系统会调用回调 容器。至少,openContainer 会尝试加载 容器。如果没有保存的版本或保存的版本已过期,请尝试 才能从网络加载

通常,返回的容器是空的,但加载会在单独的 因此返回的容器可能会在返回之前、返回之后进行刷新 或可能永远不会刷新(例如,在生命周期内没有网络连接) 容器的物理组件)。

如果您第二次针对指定的 containerId 调用 openContainer, 但系统会抛出异常

参数
containerId 要打开的容器的 ID
callback 一个对象,其各种方法将在部分加载期间调用 过程。请注意,可以从不同的线程调用这些方法。此外,他们还可能会 在 openContainer 返回之前调用。

<ph type="x-smartling-placeholder"></ph> 公开 无效 setLogger 日志记录器 日志记录器

替换跟踪代码管理器使用的现有日志记录器。

<ph type="x-smartling-placeholder"></ph> 公开 无效 setRefreshMode (TagManager.RefreshMode 模式)

设置用于所有容器的刷新模式。