建议将Facebook像素的初始化代码和PageView代码放在该部分内: https://developers.facebook.com/docs/facebook-pixel/using-the-pixel#get
问题是网页的头部永远不会重新加载Rails turbolinks。 Pixel确实在pushState / popState上向Facebook发送了一个pageView事件,但是使用了错误的URL - 来自页面初始加载的URL。我假设该像素保存了初始位置 (当调用fbq(' init')时)然后将其重新用于PageView事件。
我试图将整个代码段放在正文中,但结果是" Facebook像素错误:重复的像素ID:XXXXXXXXXX" java脚本错误。
我尝试拆分代码并将fbq(' init',XXXXX)事件放在头部,然后放在页面上:更改事件以调用fbq(' track',& #39;网页浏览&#39); 但问题是,这再次使用了初始URL。
我还尝试将window.fbq变量设置为undefined,并在PageView之前再次调用init - 所有这些都在页面中:更改回调。 但后来我得到了" Facebook Pixel警告:在此页面上检测到具有冲突版本的多个像素"并且使用错误的URL调用了PageView。
有没有人使用turbolinks制作Facebook像素?
答案 0 :(得分:3)
我正在使用以下JS加载到头部:
/* insert pixel load function here */
function trackPageView() {
fbq('init', 'PIXEL_ID')
fbq('track', 'PageView')
}
document.addEventListener('turbolinks:load', trackPageView, true)
当我使用Facebook Pixel Helper在本地测试时,它会在每个页面上显示一个PageView事件,我会使用turbolinks导航,而且没有任何警告。