我正在为一个在不同国家运营的国际电子商务项目工作。每个国家都是相互独立的。
我有一个单页应用程序(SPA / Angular),每个国家/地区都有不同的跟踪像素,例如AT(奥地利),DE(德国),BE(比利时),DK(丹麦)和仅一个域,例如www.example.co.uk。每个国家都想跟踪自己的数据。不允许将DE数据发送到BE! (addPixelId不是解决方案)
用户可以使用组合框更改国家/地区。我需要更改所选国家/地区的像素ID。这可能与谷歌像素,但我没有看到关于faceboook像素的任何文档。
我为Google Analytics TrackingID提出了同样的问题并找到了解决方法。但我目前还找不到Facebook PixelID的解决方案。
如何在不重新加载单页应用程序的情况下更改Facebook Pixel ID?
答案 0 :(得分:0)
从技术上讲,没有官方支持的方法来做到这一点。
您可以查看FB像素的工作原理,即在fbq
上定义名为_fbq
和window
的方法,将其重新定义为{{ 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进行调试。