如何在不重新加载单页应用程序的情况下更改Facebook PixelID?

时间:2017-05-22 07:24:13

标签: javascript facebook facebook-ads-api

我正在为一个在不同国家运营的国际电子商务项目工作。每个国家都是相互独立的。

我有一个单页应用程序(SPA / Angular),每个国家/地区都有不同的跟踪像素,例如AT(奥地利),DE(德国),BE(比利时),DK(丹麦)和仅一个域,例如www.example.co.uk。每个国家都想跟踪自己的数据。不允许将DE数据发送到BE! (addPixelId不是解决方案)

用户可以使用组合框更改国家/地区。我需要更改所选国家/地区的像素ID。这可能与谷歌像素,但我没有看到关于faceboook像素的任何文档。

我为Google Analytics TrackingID提出了同样的问题并找到了解决方法。但我目前还找不到Facebook PixelID的解决方案。

如何在不重新加载单页应用程序的情况下更改Facebook Pixel ID?

应用程序模型的屏幕截图: enter image description here

1 个答案:

答案 0 :(得分:0)

从技术上讲,没有官方支持的方法来做到这一点。

可以查看FB像素的工作原理,即在fbq上定义名为_fbqwindow的方法,将其重新定义为{{ 1}}然后使用新的像素ID重新调用像素代码。

这可能有用,但我不确定是否会有任何副作用。

假设您首先使用以下内容初始化像素:

null

现在您需要更改像素ID。像素ID存储在由上述像素代码定义的!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', 'PIXEL_ID_1'); // Insert your pixel ID here. fbq('track', 'PageView'); 方法内的函数范围变量中。

因此,您需要重新定义此方法,删除像素ID。

fbq

然后,您可以使用新ID重新调用整个像素代码:

window.fbq = window._fbq = null;

你应该让我们的Facebook Pixel Helper for Chrome进行调试。