8

我一直在尝试Google Tag Manager移动设备,特别是 Android,但getString(myKeyValueContainer.

这是我的 MainActivity 中的一部分代码:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtHello = (TextView)findViewById(R.id.txtHello);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                String hello = mContainer.getString("hello");
                long l = mContainer.getLong("long");
                txtHello.setText(hello + l);
            }
        });
        tagManager = TagManager.getInstance(this);
        ContainerOpener.openContainer(tagManager, CONTAINER_ID, OpenType.PREFER_NON_DEFAULT, null, new ContainerOpener.Notifier() {


        @Override
        public void containerAvailable(Container container) {
            mContainer = container;

        }

    });


}

我在清单中添加了这些权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

我有正确的 Container_id 因为它在以编程方式刷新后显示正确的版本。

这是我的 assets/tagmanager/CONTAINER_ID.json 文件(当然文件名正确):

{
'hello': 'hola',
 'long' : '12345679'

}

所以在我的容器初始化后,我按下一个运行上面代码的按钮,试图获取值。但我收到错误:“无效的宏:你好”和“无效的宏:长”,还有“无法将''转换为数字”

这是一项针对移动设备的新服务,但有人可以帮助我吗?

4

3 回答 3

6

我发现我的案子有问题。我刚刚从网络浏览器管理器下载了一个版本。重要的是添加一个允许 GTM 使用这个宏的规则。Always在这里派上用场。

不要忘记发布容器的版本

于 2013-09-23T15:08:42.200 回答
3

对于那些不明白杜马西所指的人

启用自定义变量

您还需要使用 Always 或任何其他适当的规则启用它

于 2016-01-08T00:36:29.047 回答
0

In your json you are using '123456' quotas to define long, you should not:

{
    'string': 'hola',
    'long': 123456,
    'double': 123.123
}

If you have further problems look on: Android TagManager not getting default values

于 2013-09-23T16:19:54.180 回答