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事件。
我尝试将整个代码段放在body中,但结果是"Facebook Pixel Error:Duplicate Pixel ID:XXXXXXXXX" JavaScript错误。
我尝试将代码分割并将fbq('init',XXXXX)事件放在头部,然后在page:change事件上调用fbq('track','PageView');但问题又出现了,这再次使用了初始URL。
我也尝试将window.fbq变量设置为undefined,并在PageView之前再次调用init - 这一切都在page:change回调中进行。 但是,然后我收到了“Facebook像素警告:在此页面上检测到具有冲突版本的多个像素”,并且PageView再次使用错误的URL被调用。
有人曾经让Facebook像素与turbolinks一起工作吗?
我尝试将整个代码段放在body中,但结果是"Facebook Pixel Error:Duplicate Pixel ID:XXXXXXXXX" JavaScript错误。
我尝试将代码分割并将fbq('init',XXXXX)事件放在头部,然后在page:change事件上调用fbq('track','PageView');但问题又出现了,这再次使用了初始URL。
我也尝试将window.fbq变量设置为undefined,并在PageView之前再次调用init - 这一切都在page:change回调中进行。 但是,然后我收到了“Facebook像素警告:在此页面上检测到具有冲突版本的多个像素”,并且PageView再次使用错误的URL被调用。
有人曾经让Facebook像素与turbolinks一起工作吗?