【问题标题】:Best practices to use the same data layer variable with Google Tag manager without Google Tag Manager Server在不使用 Google Tag Manager Server 的情况下将同一数据层变量与 Google Tag Manager 一起使用的最佳做法
【发布时间】:2021-09-22 15:18:22
【问题描述】:

我正在尝试在我们的页面上实现转换 API,当然主要问题是事件的重复数据删除。我避免这种情况的方法是使用相同的事件名称和相同的事件 ID(在特定时间生成的随机唯一变量)。据我了解,谷歌标签管理器(GTM)会在满足某些条件(例如页面加载)时触发标签,并将事件发送到像素。我正在尝试从我们页面的 javascript 发送相同的事件。为简单起见,我从“pageView”事件开始。

我正在尝试仅使用跟踪代码管理器和我们的代码来实现所有这些(不使用 Google 的跟踪代码管理器服务器端选项)

我已经实现了一些方法来尝试获取 dataLayer 变量(我定义了一个新变量,称为 EventID),但我看到该值在页面加载时存储在 dataLayer 中 - 然而 ,在检查我的事件时,它显示事件 id 未定义(在调用我的函数时尚未设置 dataLayer 的 EventID 变量的值。所以事件是使用“未定义”事件 ID 发送的,但是当我打开开发控制台时并检查 dataLayer 变量是否存在预期的随机 eventID 号。

我还添加了一个名为“datalayer Event ID”的新标签,它应该在页面加载时触发,并将新生成的事件 id 存储到 dataLayer 可以获取的地方。代码很简单,看起来像这样:

<script>
  ID = [our FB Pixel ID] + Date.now();
  dataLayer.push({'eventID' : ID});
</script>

请有经验的人对此发表评论:

  • 这种做法正确吗?我是否遗漏了一些触发器/应该定义触发此代码的不同时间/地点?
  • 我应该采用其他方法来实施重复数据删除吗?

感谢您提供任何信息!

【问题讨论】:

    标签: javascript facebook google-tag-manager conversions-api


    【解决方案1】:

    仅将 eventID 推送到 dataLayer 不会改变您的情况。 您需要更改 FB 标签本身的配置。

    不知道你为什么不想使用 sGTM,因为看起来这对你来说是最简单的选择。

    这是how to set up Facebook event deduplication in Google Tag Manager上的一篇不错的博文

    【讨论】:

    • 感谢您的文章,将检查它。我不使用 sGTM 的主要原因是它代表了额外的成本(所以我正在尝试制作一个手工制作的解决方案)。我还更改了标签管理器中 FB 标签的配置。
    • 您可以使用stape.io 上的免费帐户进行 sGTM 托管。对于小型网站,这就足够了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    相关资源
    最近更新 更多