GTM层未推送数据

时间:2018-10-04 05:28:59

标签: javascript reactjs google-analytics google-tag-manager

我正在开发一个混合应用程序,其中登录页面用php编写,其余应用程序用react编写。我想针对相同的SPA实施Google Analytics(分析)。我在componentWillMount中推送数据层,并通过index.php文件中的php代码添加了我的gtm脚本。

我面临的问题是第一次,每当页面从非反应页面转换为反应页面时,我的GTM层就不会将数据推送到gtm中。如果在React页面中与之一起移动,则一切正常。

我们非常感谢您的帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

使用SPA时,您面临的问题很常见。

让我给你举个例子:

  1. 当您从https://digitalmarketingbloq.com移至 https://digitalmarketingbloq.com/2018/08/07/how-to-filter-internal-traffic-in-google-analytics-with-google-tag-manager/ 浏览器与服务器通信。页面正在呈现 并启动了GTM。
  2. 在您的示例的首页视图中 您的SPA,因为与服务器建立了通信,所以可以正常工作 。但是在SPA中,从一页移动到另一页 发生在客户端。 GTM没有要采取的行动。

您该如何解决?

第一个选项是启用“历史记录”(变量>配置>历史记录)部分中的内置变量: Google Tag Manager - Built-in variables - History

第二,创建一个触发器(“触发器”>“新建”>“历史记录更改”),该触发器针对所有历史记录更改触发: Google Tag Manager - Trigger history change - all

在预览模式下,您可以检查历史记录是否更改了您的SPA。在此处https://support.google.com/tagmanager/answer/7182738?hl=en&ref_topic=7182737#history和在https://support.google.com/tagmanager/answer/7679322?hl=en有关触发器的更多信息。

如果这不起作用,则需要在转换完成后在SPA中开发“虚拟页面视图”事件。让我再给您一些角度。从A页到B页的转换完成后,触发以下事件:

  dataLayer.push({
    'virtualPageTitle': 'My Login Screen',
    'virtualPageURL': 'https://www.my-example/login',
    'event': 'VirtualPageview'
  });

以上内容将把virtualPageTitle和virtualPageURL推入dataLayer作为事件VirtualPageview。 GTM可以使用此功能,但是您需要创建2个用户定义的变量virtualPageTitle和virtualPageURL。触发器将是VirtualPageview。

希望这能为您澄清一切。