首页 > 解决方案 > 将 Facebook Pixel 事件添加到 Squarespace 按钮单击

问题描述

我正在尝试将 Facebook 像素事件——“ViewContent”——添加到我的 Squarespace 网站。我有一页有一个按钮,我想在按钮点击时触发事件。感觉应该很简单,但是我在当前设置下一直在 Facebook Pixel Helper 中遇到错误。

我正在参考这篇文章:将 FB 像素事件代码添加到按钮中 - Squarespace

正如答案中所建议的那样,我在此页面的标题中使用了每页代码注入:https ://www.wearpapercrane.com/survey

这就是我所拥有的——

    <script>
    (function() {
        var btns = document.getElementsByClassName("sqs-block-button-element");
        var i, I;

        for (i=0, I=btns.length; i<I; i++) {
            btns[i].addEventListener("click", function() {
                fbq("track", "ViewContent");
            });
        }
    })();
</script>

但是,当我使用 Facebook Pixel Helper 进行验证时,我在另一端得到的结果是——

在此处输入图像描述

(顺便说一下,这是在单击之后...按钮在单独的选项卡中打开链接,所以这是在单击后返回页面并查看 Pixel Helper)。

有什么我遗漏的东西导致了这个错误吗?

我已经安装了像素,并且我在另一个页面上有一个“引导”事件正常工作(使用 Squarespace 的 Form Embed 功能),所以我很确定这是这个特定代码注入的问题。

会喜欢任何和所有的建议。谢谢!!

标签: javascriptfacebookpixelsquarespace

解决方案


该事件没有触发,因为您引用的答案(我写的)没有考虑这样一个事实,即在通过标头注入(站点级或页面级)注入代码时,必须等待 DOM 之前加载将事件附加到元素。

您引用的答案已更新,特别是以下部分:

<script>
    window.Squarespace.onInitialize(Y, function() {
        var btns = document.getElementsByClassName("sqs-block-button-element");
        var i;
        for (i=btns.length-1; i>=0; i--) {
            btns[i].addEventListener("click", function() {
                fbq("track", "AddToCart");
            });
        }
    });
</script>

推荐阅读