情况复杂,我尽量说清楚。
我有一个带有联系表 index.html 的单页网站。
该页面具有以下再营销 facebook 像素:
<!-- Facebook Pixel Code -->
<script>
!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','//connect.facebook.net/en_US/fbevents.js');
fbq('init', '123456789');
fbq('track', "PageView");</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=123456789&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->
当用户提交表单并且我从 ajax 获得响应时,我将外部 html 文件加载到我页面上的 iframe (conv.html)。该外部 html 文件中有一个转换代码:
<!-- Facebook Pixel Code -->
<script>
!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','//connect.facebook.net/en_US/fbevents.js');
fbq('init', '123456789');
fbq('track', "PageView");
fbq('track', 'Lead');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=123456789&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->
这基本上是一样的,只是有一个'Lead'赛道事件。正如您所看到的,我在两个像素上都使用了“PageView”,以便被提交表单的 url 受众排除(除了领先事件之外,我还需要它),事情是,当我加载第二个像素时,我得到一个错误,指出像素被多次触发。
我不确定这是否重要,但我们还对第二个像素应用了一条规则,以仅在包含“conv.html”(加载到我的 iframe 的页面)的页面 url 上触发。
我一直在谷歌上寻找解决方案,但找不到任何东西。我试图弄清楚这是否可能在单页网站上。
有任何想法吗?