Facebook转换事件回调

Facebook conversion event callback

本文关键字:回调 事件 转换 Facebook      更新时间:2023-09-26

我在文档中找不到转换跟踪中是否有回调功能(https://developers.facebook.com/docs/ads-for-websites/tag-api)

为了跟踪事件,您只需要调用:

window._fbq = window._fbq || [];
window._fbq.push(['track', 'FBCONVERSIONCODE', {'value':'0.00','currency':'USD'}]);

这与谷歌分析转换代码非常相似,只是它们允许您在ajax调用完成时调用一个函数:

ga('send', 'pageview', {
  'page': '/my-new-page',
  'hitCallback': function() {
    alert('analytics.js done sending data');
  }
});

有没有办法用Facebook API实现同样的功能?

截至今日,Facebook仍然不支持它。然而,由于立即重定向导致了这个问题,我使用了以下解决方案:

基本上,我在localStorage上设置了我需要跟踪的变量=>

 window.localStorage.setItem('documentTitle', document.title);

然后我进行了重定向,在目标页面上,我使用以下内容来正确跟踪fb事件

if (typeof(fbq) !== 'undefined' && window.localStorage.getItem('documentTitle')) {
    fbq('track', 'Lead', {content_name: window.localStorage.getItem('documentTitle')});
    window.localStorage.removeItem('documentTitle');}

希望这能帮助到别人;)

PS:只有当重定向的页面与初始页面位于同一主机上时,这才会起作用,因为localStorage是唯一的:protocol://host:port

Facebook没有回调,但如果您面临的问题是重定向无法完成请求,我建议您将重定向封装在setTimeout

示例:

fbq('track', 'Purchase');
$('.loader').fadeIn();
setTimeout(function () {  
   window.location.replace("/bookings/"+booking_id);
}, 1500);

通常需要50-100ms才能完成请求,但可以安全地留出1500ms来完成请求。

不,Facebook不支持。

是的,JavaScript支持它。

如果fbq调用由于某种原因失败,它将不会返回undefined,所以只需验证是否顺利执行即可。

function callback() {
  console.log('fn:callback');
}
if (
  typeof fbq('track', 'AddToCart', {
    content_name: 'Really Fast Running Shoes', 
    content_category: 'Apparel & Accessories > Shoes',
    content_ids: ['1234'],
    content_type: 'product',
    value: 4.99,
    currency: 'USD' 
  }
) === 'undefined') callback();