javascript - 如何在一个页面上放置多个唯一的 Facebook 跟踪像素(事件)?

标签 javascript html facebook google-tag-manager

我们有两个不同的 Facebook 帐户(我们自己和我们的客户),尽管这两个帐户的要求不同,但它们都有转化跟踪要求。

我知道,如果发送的事件是通用的,我可以设置多个像素 ID:

fbq('init', 'xxxxxxxxxxxxx1');
fbq('addPixelId', 'xxxxxxxxxxxxx2');
fbq('track', 'PageView');

但是,我想将不同的事件发送到不同的帐户。使用fbq推送方法,似乎没有指定帐户ID的参数。

例如,我们希望将“添加到购物车”按钮作为“添加到购物车”事件进行跟踪,但我们的客户希望将它们作为潜在客户进行跟踪:

<script>
fbq('track', 'AddToCart');
</script>

<script>
fbq('track', 'Lead');
</script>

执行上述示例时,两个事件都会发送到两个帐户。我想要的是如下所示的内容,其中帐户是明确的:

<script>
fbq('track', 'AddToCart', {'id':'xxxxxxxxxxxxx1'});
</script>

<script>
fbq('track', 'Lead', {'id':'xxxxxxxxxxxxx2'});
</script>

像素本身有一个 ID 查询参数,尽管我还没有找到如何在推送中设置它。有没有办法在新 Facebook 事件的推送中设置像素 ID?

** 更新 **

我们尝试在每个“track”之前运行“init”以覆盖之前的跟踪器,但这仍然会将所有事件发送到网站上的所有 Facebook 标签。

最佳答案

使用init是正确的想法,但从现在开始是错误的。您应该通过 init 添加所有 PixelId,而不是尝试替换之前的像素 ID。

fbq('init', 'xxxxxxxxxxxxx1');
fbq('init', 'xxxxxxxxxxxxx2');
fbq('init', 'xxxxxxxxxxxxx3');
fbq('track', 'PageView');

Facebook 正在尝试弃用 addPixelId。我找到了解决方案 here

如果您想区分它们,请尝试克隆 fbq 对象并使用它们 instedt。但由于内部原因,我不确定这是否真的有效。

var pixelA = Object.assign({}, fbq),
    pixelB = Object.assign({}, fbq),
    pixelC = Object.assign({}, fbq);

pixelA('init', 'xxxxxxxxxxxxx1');
pixelB('init', 'xxxxxxxxxxxxx2');
pixelC('init', 'xxxxxxxxxxxxx3');
pixelA('track', 'PageView');

关于javascript - 如何在一个页面上放置多个唯一的 Facebook 跟踪像素(事件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40336003/

相关文章:

c# - 跨页播放的音乐播放器

javascript - Facebook 发送对话框链接问题

javascript - 这个 Canvas 运动有什么问题

javascript - 使用 flexbox 将盒子动态地放入容器中

javascript - 如何清除 HTML5 canvas 中的圆弧或圆?

html - WordPress 主题与 Internet Explorer 的交叉兼容性

javascript - axios 提交表单后发送太多请求

javascript - Bluebird 创建新用户

c# - 获取在 FormsAuthenticationTicket 的 UserData 中设置的用户名

css - 样式 facebook 'like' 按钮