Facebook转换事件回调

时间:2015-04-07 08:29:46

标签: javascript facebook facebook-ads-api facebook-tag

我无法在文档中找到转化跟踪中是否有任何回调功能(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实现相同的功能?

3 个答案:

答案 0 :(得分:2)

不,Facebook不支持它。

是的,JavaScript支持它。

如果fbq调用由于某种原因will not return 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();

答案 1 :(得分:1)

截至今天,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

答案 2 :(得分:0)

Facebook没有回调,但是如果您遇到的问题是重定向不允许您完成请求的重定向,建议您将重定向包裹在setTimeout

示例:

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

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