上下文
我正在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事件吗?
答案 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>