我有一个自定义 JS 事件,当手风琴面板打开时会触发。我想以面板 ID 作为事件标签跟踪作为 Google Analytics 事件的开放。
使用旧的非 GTM 方法,我会这样做:
$('#my-accordion').on('down.zf.accordion', function(e, panel) {
ga('send', 'event', 'accordion', 'open', panel.attr('id'));
});
Run Code Online (Sandbox Code Playgroud)
但我想用谷歌标签管理器来做到这一点,并尽可能减少页面代码的变化。
到目前为止,我已经在 Google 标签管理器中创建了这个:
Trigger,键入在“down.zf.accordion”上触发的自定义事件
标记,使用我的跟踪 ID 键入 Universal Analytics,跟踪类型:事件(手风琴,打开,[可能是设置为 panel.attr('id')?] 的全局 JS 变量)
但在 GTM 预览版中进行测试时,该代码甚至不会触发。我究竟做错了什么?
我不清楚 Google 标签管理器Container是否会自动刷新,如果是,如何自动刷新。
该文件指出:
默认情况下,您的容器可以每 12 小时刷新一次。要手动刷新容器,请使用
ContainerHolder.refresh():
ContainerHolderSingleton.getContainerHolder().refresh();这是一个不会立即返回的异步调用。为减少网络流量,
refresh()可能每 15 分钟只能调用一次,否则将无操作。
正是“有资格每 12 小时刷新一次”与“手动刷新”部分相结合,这让我感到困惑。因此,我有两个问题:
Container每 12 小时刷新一次?在这一点上,我的假设是#1 的答案是“是”。
我担心的是,我不确定这种自动刷新发生在哪里,我只访问getContainer()中的ContainerAvailableListener,然后缓存这些值。因此,如果是getContainer()调用触发了更新,就像“交换”新容器一样,我的实现可能不会令人耳目一新。
编辑:我问的原因是我的应用程序的生命周期可能很长。我正在尝试确定是否需要在我的代码中管理容器刷新。
我收到了一些要放在网站上的 dataLayer 定义。它们中的大多数涉及单击例如主菜单链接。但我看到以下问题:
dataLayer.push(some data...)我在谷歌上搜索了一些解决方案,但似乎没有人遇到过这样的问题 - 很奇怪,它看起来像是一个基本问题。也许 GTA 会自动处理它而我不必考虑这个?
感谢帮助。
我在 React 应用程序中尝试将数据发送到 GTM(谷歌标签管理器)时遇到问题。我们已经设法在相关页面上放置了不同的脚本。
例如下面是我们放入购物车页面的脚本之一:
class Cart extends Component {
render() {
const { cartItems } = this.props;
return (
<script
dangerouslySetInnerHTML={{ __html: `
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'viewCart',
cartItems: ${cartItems}
});
window.history = window.history || [];
window.history.pushState({
page: 'Current Cart Page',
events: 'viewCart',
cartItems: ${cartItems},
}, 'Current Cart Page');
` }}
/>
);
}
}
Run Code Online (Sandbox Code Playgroud)
当我们从另一个页面(EG:主页)访问购物车页面时,上面的脚本不会执行,但是当我们刷新页面时,它会被触发。
事实证明,数据层只推送pageLoad和DOMReady事件。但不在historyChange
有没有人遇到过这个问题并知道如何解决?
我无法跟踪“select”标签中“option”标签的值。我目前有一个 Google Translator Widget 的下拉菜单,用户可以点击它并选择语言。当您单击“选择语言”下拉菜单时,您将能够看到德语作为选项。请参阅随附的屏幕截图。我在 Google 标签管理器中创建了一个宏调用“JS - Google 翻译 - 选择选项”。
这是“JS - Google 翻译 - 选择选项”的代码:
function() {
var list = document.querySelector('select.goog-te-combo');
return list ? list.options[list.selectedIndex].value : undefined;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码将找到下拉菜单,其中“goog-te-combo”作为“select”标签的类名。然后,它会查看选择标签中的选项标签是否可用,并获取所选选项标签的值。
我还创建了一个标签调用“GA - 事件 - 谷歌翻译点击”并触发调用“点击 - 谷歌翻译”。
当我对此进行测试时,我看到当我点击页面上的下拉菜单时,我的“GA - 事件 - 谷歌翻译点击”被触发。但是,当我检查 Google 标签管理器中的“变量”选项卡并检查变量“JS - Google 翻译 - 选择选项”时,我看到它是空的。
javascript google-analytics event-handling dom-events google-tag-manager
我想从 google 标签管理器的 dataLayer 对象中获取一些值。在 chrome 标签帮助中,我得到了这样的值
[
{
"gtm.start": 1503053374849,
"event": "gtm.js",
"gtm.uniqueEventId": 0
},
{
"event": "gtm.dom",
"gtm.uniqueEventId": 1
},
{
"event": "gtm.load",
"gtm.uniqueEventId": 2
},
{
"Linker": "_ga=53655374"
}
]
Run Code Online (Sandbox Code Playgroud)
我需要获得“链接器”值。我试过了,dataLayer[3].Linker但它给了我“未定义”或空白也相同dataLayer[1].event(它是空白而不是返回值 =“gtm.dom”)当我尝试时dataLayer[0].event它返回正确'gtm.js'
请帮助我如何获得“链接器”值
我需要在我的 iOS 应用程序中为 GoogleAnalytics 实施 Firebase+Google 标签管理器。
我通过为 GoogleTagManager 和 Firebase/Core 安装最新版本的 pod,在一个空白的 iOS 项目上尝试了 POC。POC 工作正常,我能够发送事件并且事件被记录到服务器上的 GA。
但是,当我安装最新版本的 GTM 和 Firebase/Core 时,同样的 GoogleServices-info.plist,同样的 GTM-XXXXXXX.json,我发现我的应用程序崩溃了,我可以看到“GoogleTagManager info: Loading container: GTM-XXXXXXX”我的控制台中的最后一行。
Removing GoogleInterchangeUtilities
Downloading dependencies
Installing Firebase 4.3.0 (was 3.7.1)
Installing FirebaseAnalytics 4.0.4 (was 3.4.4)
Installing FirebaseCore 4.0.8 (was 3.4.3)
Installing FirebaseInstanceID 2.0.4 (was 1.0.9)
Using GoogleAnalytics (3.17.0)
Using GoogleSymbolUtilities (1.1.2)
Installing GoogleTagManager 6.0.0 (was 5.0.8)
Installing GoogleToolboxForMac (2.1.3)
Using GoogleUtilities (1.3.2)
Installing nanopb (0.3.8)
Run Code Online (Sandbox Code Playgroud)
当我删除 GoogleTagManager 并只保留 FirebaseAnalytics 时,应用程序运行良好,Firebase Analytics 正在服务器上接收事件。 …
google-analytics ios google-tag-manager swift firebase-analytics
我正在尝试通过 Android studio 3.0.1 添加 GTM 容器已发布,但容器尚未加载。我收到一个错误
E/GoogleTagManager: NetworkLoader: Error when loading resource from url:
https://www.google-analytics.com/gtm/android?id=GTM-XXXXXXX&pv=-1&rv=5.0
Bad response: 403
Run Code Online (Sandbox Code Playgroud) 所以基本上我遇到的问题是我的网站使用的是 reactjs,所以它不会重新加载,我需要检测 URL 上的更改,以便向 Google Analytics 发送新的综合浏览量。有没有人处理过这个问题?
编辑:也许我有点不清楚,我使用 Google 标签管理器,我无法控制页面上的代码,但我可以请求 dataLayers。显而易见的解决方案是在页面更改时请求 dataLayer 但由于我想避免这样做,我严格询问是否有人知道从 GTM 检测 DOM 上的此类更改的方法。
所以我通过谷歌标签管理器设置了我的谷歌分析。页面浏览量跟踪工作正常。但是当我尝试跟踪任何事件时,数据就是无法通过 Analytics。事件跟踪也不适用于传统的 Analytics 代码。
分析调试显示几个“创建配置有一个未知参数:x”和“命令被忽略。未知目标:未定义”
据说这意味着我的跟踪器名称有问题。我已经尝试了默认名称和自定义名称。
可能值得一提:直到最近,我网站的默认 URL 在 Analytics 网站首选项中都是错误的,但我不确定这是否与此有关。
分析调试消息:
Executing Google Analytics commands.
analytics_debug.js:10 Running command: ga("create", {2: null, 3: null, 6: "1", 10: false, 11: false, 12: false, 16: false, 17: false, 18: false, 28: false, 32: "UA-1439995-1", 33: false, 34: false, 35: [{fieldName: "cookieDomain", value: "auto"}]}, {name: "gtm5"})
analytics_debug.js:10 Creating new tracker: t0
analytics_debug.js:10 Create config had an unknown parameter: "2"
analytics_debug.js:10 Create config had an unknown parameter: "3"
analytics_debug.js:10 Create config had an unknown …Run Code Online (Sandbox Code Playgroud)