Google跟踪代码管理器和单页应用

Ben*_*ter 15 google-tag-manager

我正在尝试将Google跟踪代码管理器与我的Ember应用程序集成.我很难理解如何通知GTM页面已更改,并发送页面查看事件.

我在线阅读了很多东西,主要是为"虚拟页面"创建一个新变量,但显然这远非理想.

我希望能够dataLayer.push用来通知实际更改的页面.有没有一个简单的方法我没有找到,或者在SPA上跟踪GTM真的很痛苦?

And*_*ázi 16

这是在很久以前问的.使用GTM的当前功能集,您可以轻松设置SPA页面跟踪,而不会有太多麻烦.

首先,转到Triggers并创建一个新的触发器.选择History Change作为触发类型.这将创建一个触发器,每次位置历史记录更改时触发该触发器.

然后创建一个新TagUniversal Analytics类型,并将其设置为每下面的截图.

[通用分析标签配置[1]

至于触发器,设置先前定义的历史记录更改触发器,您就完成了.每次在SPA中进行导航时,都会触发具有正确页面路径的页面查看事件.

  • 可以确认这对于 Ember 应用程序仍然有效。只需在 3.10 ember 应用程序中进行设置即可。上面的屏幕截图中唯一未显示的是您需要在“跟踪 ID”输入中添加 GA 跟踪 ID。 (2认同)

小智 13

您肯定需要将事件推送到dataLayer,然后您可以在GTM中触发GA页面视图标记.所以将事件推入DL:

dataLayer.push({'event':'virtualPageView'});
Run Code Online (Sandbox Code Playgroud)

然后设置一个名为'vpv'的触发器,该触发器触发一个名为'virtualPageView'的自定义事件.将该触发器添加到GA标记.

最好的办法是在发送活动时通过虚拟页面的详细信息发送.这样,您可以设置将这些dataLayer属性值拉入页面视图调用的变量.所以你可以这样做:

dataLayer.push({
  'event':'virtualPageView',
  'page':{
    'title':'contact us',
    'url':'/contact'
  }
});
Run Code Online (Sandbox Code Playgroud)

所以你设置了一个名为'DL-page title'的变量(例如),它是'page.title'的dataLayer值和另一个名为'DL-page url'的变量,它是一个dataLayer值'page.url' .

然后,您可以设置一个新的Universal Analytics标记,该标记包含所有常用的综合浏览量设置,但有2个"要设置的字段"(在"更多设置"下).将"标题"设置为{{DL-page title}},将"page"设置为{{DL-page url}}

最后将触发器设置为'vpv',每当你将事件+数据推送到数据层时,你会发现你将获得一个使用虚拟页面标题和虚拟URL的pageView.

  • @dmpg_tom @Sunny `dataLayer` 有 300 个条目的限制,并会根据需要自行清理:http://www.simoahava.com/gtm-tips/datalayer-declaration-vs-push/#comment-608025 (2认同)