首页 文章

Facebook转换事件回调

提问于
浏览
25

我无法在文档中找到转换跟踪中是否有任何回调功能(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 回答

  • 1

    不,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();
    
  • 0

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

    Facebook没有回调,但如果你面临的问题是我是一个不允许请求完成的重定向,我建议你在 setTimeout 中重新定位你的重定向

    例:

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

    通常需要50-100ms来完成请求,但是保留 1500ms 以完成触发请求是安全的 .

相关问题