gpt4 book ai didi

android - 标签管理器 : How to load binary default container?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:34 25 4
gpt4 key购买 nike

我正在尝试根据 Getting Started 设置 Google 跟踪代码管理器指导。

添加 default container 时,文档清楚地表明建议使用 binary 默认容器文件(而不是 JSON)。

Although using the binary file is recommended, if your container does not contain rules or tags, you may choose to use a simple JSON file instead.

我已经在 res/raw 下下载并添加了二进制默认容器。但是使用 loadContainerPreferNonDefault() 初始化标签管理器似乎失败了。

PendingResult<ContainerHolder> pending =
tagManager.loadContainerPreferNonDefault(CONTAINER_ID,
R.raw.gtm_default_container);

我在日志中收到此错误:

 W/GoogleTagManager﹕ Failed to extract the container from the resource file. 
Resource is a UTF-8 encoded string but doesn't contain a JSON container

TagManager javadocs (最上面的示例)提示您可以传递一个 bool 参数来指示资源是 JSON 还是二进制:

PendingResult pending = tagManager.loadContainerPreferNonDefault(
myContainerId, // container ID of the form "GTM-XXXX"
R.raw.GTM-XXXX, // the resource ID of the default container
true); // the default container is in JSON format (as opposed to binary)

事实是,loadContainerPreferNonDefault()没有这样的参数 !您可以选择传递处理程序但不传递 bool 值。令人目瞪口呆的是,TagManager javadoc 在这里自相矛盾。

那么无论如何,是否有可能按照入门指南的建议,使用二进制默认容器?

使用 'com.google.android.gms:play-services-analytics:7.0.0'

最佳答案

抱歉回答晚了。与标签管理器有过一些斗争,并设法解决了我的问题。希望这有助于:

是的,可以使用二进制默认容器。该文档与以前版本的跟踪代码管理器冲突。我相信它与 v3 冲突。 (撰写此答案时的当前版本是 v4)。

要加载二进制容器,您需要使用不同的方法。

您需要使用 TagManager.loadContainerDefaultOnly() 此方法专门用于测试目的,这样即使没有发布任何容器,您也可以测试容器是否正在发送命中。

另一方面,TagManager.loadContainerPreferNonDefault() 将加载它的二进制容器,然后在网络上检查当前发布的版本。如果它找到一个已发布的版本,无论您拥有什么二进制容器,它都会使用该版本。示例:

您添加二进制容器版本 15。但是,您发布了 version14。此方法将默认为 14,因为该版本已发布。

如果您想测试版本 15,则必须使用 TagManager.loadContainerDefaultOnly()

关于android - 标签管理器 : How to load binary default container?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29347737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com