javascript - Google 跟踪代码管理器、增强型电子商务跟踪和单页应用
问题描述
由于没有太多关于这三个组合的信息,这是我的问题:
当用户进入应用页面时,只有第一页将作为综合浏览量进行跟踪,除非您在 GTM 的历史记录更改触发器(自动)时触发代码,或者您为特定页面发送综合浏览量事件(手动跟踪)。
通常,SPA 嵌入到传统的往返页面中,因此 GTM 片段位于 head 标签中,而 ecom 片段位于应用程序内。
当用户在应用程序中进入下一页时缺少重新加载,head 标签中的 DL 片段要么被覆盖,要么可能被附加新信息。
这就产生了两个问题:
- 从根本上说:我可以将 DL 信息从应用程序内部推送到放置在往返页面标题中的 GTM 片段中吗?
- 我不应该在应用程序内的每个新页面视图之后清理 DL 吗?
我非常感谢您对此的回答!
解决方案
是的,您应该能够在应用程序中使用 dataLayer.push。需要注意的是,您不必在网页浏览上触发 GTM 中的 GA 标签,您可以很好地设置“SPA-screen-view”事件并将其推送到 dataLayer 以触发 GA 标签。
您无需在每次浏览后清除数据层。只需跟踪您推送和捕获的变量。它在概念上与 ReactJS 中的状态非常相似
例子:
在您发送的一个 spa-pageview 上说:{'page-title':'my awesome spa page 1', 'page-url':'/vpv/myapp/page1','event':'SPA-screen-view'}
在随后的页面上您只做了{'page-url':'/vpv/myapp/page1','event':'SPA-screen-view'}
,但是在 GA 标记中您同时捕获了'page-title'
和'page-url'
,第二个页面将具有'page-title':'my awesome spa page 1'
,因为它没有更新。
推荐阅读
- reactjs - 如何使用 onClick 向该数组添加值
- c++11 - 右值引用和指针之间的确切对应关系?
- ios - 设计和实现 iOS UI
- reactjs - React 钩子切换 setState
- c# - Xamarin Foms UWP - KnownFolders.PicturesLibrary 现在返回 OneDrive
- flutter - 颤振容器匹配列内的父级
- swift - 向下转型多态性和赋值
- vue.js - (VueJS)每当显示时更新组件
- django - Django excludefiled__in 不过滤数据
- elasticsearch - 为什么我得到的桶数总是等于聚合方面的指定大小?