我们有两个不同的 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/