Geo*_*sev 4 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 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 一起工作?
我正在使用以下加载在头部的 JS:
/* insert pixel load function here */
function trackPageView() {
fbq('init', 'PIXEL_ID')
fbq('track', 'PageView')
}
document.addEventListener('turbolinks:load', trackPageView, true)
Run Code Online (Sandbox Code Playgroud)
当我使用 Facebook Pixel Helper 在本地测试它时,它会在我使用 turbolinks 导航到的每个页面上显示一个 PageView 事件,并且没有警告。
| 归档时间: |
|
| 查看次数: |
1072 次 |
| 最近记录: |