使用rails和turbolinks运行facebook像素

时间:2017-04-14 17:49:19

标签: javascript turbolinks facebook-pixel

建议将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像素?

1 个答案:

答案 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导航,而且没有任何警告。