我一直在试用Google Tag Manager
移动设备,特别是Android,但在getString(myKeyValue
上尝试Container
时,我收到的消息称“无效宏”。
以下是我的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'
}
所以在我的容器初始化之后,我按下一个运行上面代码的按钮,试图获取值。但我得到错误:“无效的宏:你好”和“无效的宏:长”,也 “无法将''转换为数字”
这是针对移动设备的新服务,但有人可以帮我解决这个问题吗?
答案 0 :(得分:6)
我发现我的案子有问题。我刚刚从网络浏览器管理器下载了一个版本。
重要的是添加允许GTM使用此宏的规则。 Always
在这里派上用场。
不要忘记发布您的容器版本
答案 1 :(得分:3)
答案 2 :(得分:0)
在你的json中你正在使用&#39; 123456&#39;配额定义长,你不应该:
{
'string': 'hola',
'long': 123456,
'double': 123.123
}
如果您还有其他问题,请查看:Android TagManager not getting default values