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 Pixel Error: Duplicate Pixel ID: XXXXXXXXXX” java 脚本错误。
我尝试拆分代码并将 fbq('init', XXXXX) 事件放在头部,然后在 page:change 事件上调用 fbq('track', 'PageView'); 但问题是这再次使用了初始 URL。
我还尝试将 window.fbq 变量设置为 undefined 并在 PageView 之前再次调用 init - 所有这些都在 page:change 回调中。但随后我收到“Facebook 像素警告:在此页面上检测到多个具有冲突版本的像素”,并且再次使用错误的 url 调用了 PageView。
有没有人让 Facebook 像素与 turbolinks 一起工作?