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

Fire custom events without using GTM dataLayer in order to activate Google Optimize

上下文

我正在对 Angular 2 应用程序实施 Google 优化。我发现许多资源都指出必须在自定义事件上触发优化(例如 http://blog.stack.foundation/2017/06/02/using-google-optimize-with-angular/)。

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

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

并在 Google 优化中指定 Evaluate on custom event: optimize.activate

问题

Datalayer 是 Google 标签管理器的一项功能,目前我的网站没有,最好不会实施 Google 标签管理器。有没有其他方法可以触发不需要 GTM 的自定义事件?我可以格式化 GA 事件来激活优化而不是 GTM dataLayer 事件吗?

尽管 dataLayer 是跟踪代码管理器的一项功能,但 Optimize 使用变量发送信息,您 无需添加 GTM 即可使用 Google Optimize

您只需创建一个符合 Data Layer - GTM specifications 的数据层变量,而不是简单的 javascript 变量。 休息会工作。

还要确保您没有覆盖 dataLayer 变量并将其声明在优化代码之上。

可以同时将多个事件推送到 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>