在不使用GTM dataLayer的情况下触发自定义事件以激活Google Optimize

时间:2018-08-20 10:26:43

标签: javascript angular google-analytics google-tag-manager google-optimize

上下文

我正在Angular 2应用程序上实现Google Optimize。我发现大量资源表明优化必须在自定义事件(例如http://blog.stack.foundation/2017/06/02/using-google-optimize-with-angular/)上触发。

这是因为Angular2需要先在客户端渲染,然后Optimize才能应用变体,因此页面加载不是合适的触发器。这是通过以下代码段完成的:

window['dataLayer'].push({'event': 'optimize.activate'});

,然后在Google Optimize中指定Evaluate on custom event: optimize.activate

问题

数据层是Google跟踪代码管理器功能,目前我的网站没有,并且最好不实施Google跟踪代码管理器。有没有其他方法可以触发不需要GTM的自定义事件?我可以格式化GA事件来激活“优化”而不是GTM dataLayer事件吗?

2 个答案:

答案 0 :(得分:1)

即使dataLayer是标记管理器功能,Optimize也会使用该变量来发送信息,并且您无需添加GTM即可使用Google Optimize

您只需要创建一个仅符合Data Layer - GTM specifications的dataLayer变量即可,而不是简单的javascript变量。 休息会起作用。

还要确保您不要覆盖dataLayer变量,并在优化代码上方声明它。

答案 1 :(得分:0)

您可以同时将多个事件推送到dataLayer吗?询问,因为这对我很有用,因为这些值可用于不同的触发器。我正在用它来跟踪两个不同的事件和用户ID。

<script>
    var dataLayer = window.dataLayer = window.dataLayer || [];
    dataLayer.push({'event': 'Click Map Event'});
    dataLayer.push({'event': '5Sec Event'}); 
    dataLayer.push({'event':'UserID Event','userID': '12483'});
</script>