google-analytics - 如何使用 Google 跟踪代码管理器发送 ga(...) 事件?
问题描述
我正在为现有网站上的谷歌标签管理器更改谷歌分析。这个网站也使用谷歌电子商务,所以我ga()
在一些页面上做了一些与电子商务相关的自定义调用。
问题是因为谷歌分析脚本是异步加载的,ga()
当我尝试发送一些电子商务相关数据时不再定义。我在某处找到了解决方法:
window['GoogleAnalyticsObject'] = 'ga';
window['ga'] = window['ga'] || function() {
(window['ga'].q = window['ga'].q || []).push(arguments)
};
但是,虽然我不再有“ga 未定义”的问题,但它仍然不起作用。
我在谷歌仪表板上看不到任何东西。我也没有在调试消息中看到任何内容(在开发人员控制台中)。
似乎正在发生的事情是,使用 GMT 加载的 GA 脚本没有使用我设置的这些变量,但我不确定如何修复它,或者是否可以继续使用我ga()
的 GMT 调用。
我知道我可以做到这一点,dataLayer
但我试图避免为此重写一堆工作代码。
解决方案
我见过这样的实现:
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', UA-XXXXXXXXXX, 'auto');
ga('require', 'ecommerce');
也许这也适合你。
如果您使用增强型电子商务,则“ga('create...”下面的代码必须更改为:
ga('require', 'ecommerce');
至:
ga('require', 'ec');
顺序在这里很重要,事件可以在这些函数之后发送。
推荐阅读
- r - 使用 R 中的比例和标准偏差进行温度检查
- java - 活动开始时不显示 AlertDialog
- python - Python 从一个类方法中获取结果并将其输入到另一个类方法中
- oracle - 为什么 Oracle sysdate 在返回较新日期后似乎返回较旧日期?
- swift - 如何识别 SKSpriteNode 是否在特定的 2D 位置?(斯威夫特,SpriteKit)
- excel - 匹配多列的值
- javascript - React Query useQuery 无法读取 undefined 的属性数据
- java - 安卓中的标签内容
- cytoscape - 富集图的文件格式
- reactjs - 尝试加载视频文件以做出反应时出现黑色视频屏幕?