【问题标题】:Facebook conversion event callbackFacebook 转化事件回调
【发布时间】:2015-04-07 08:29:45
【问题描述】:

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

【问题讨论】:

  • 动态事件之类的东西会起作用吗? developers.facebook.com/docs/ads-for-websites/… 即点击购买按钮后激活像素并发出回调?
  • 我很惊讶这个问题没有得到更多的爱。你有想过这个吗?我不确定 Facebook Tag API 如何在没有回调的情况下被认为通常可用......
  • @logidelic 你有没有想过这个问题?
  • 我认为你没有这个功能。也许您可以创建自定义“覆盖”功能,例如。 window._fbq.pushWithCallback(['track', 'FBCONVERSIONCODE', {'value':'0.00','currency':'USD'}], function(){ console.log('callback')});
  • 2018 年了,Facebook 终于支持谷歌分析这样的事件回调了吗?

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


【解决方案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】:

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

    例子:

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

    完成请求通常需要 50-100 毫秒,但留出 1500 毫秒 来完成触发请求是安全的。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 在没有评论解释原因的情况下否决答案有什么意义?它真的对任何人都没有帮助。
      • fbq 对象将通过事件数据向 Facebook 发起某种异步的 Ajax 请求,因此即使 fbq 对象将 return 之外的其他东西undefined,Ajax 请求可能还没有完成,所以在事件数据实际发送到 Facebook 后,callback 函数将不会运行。此解决方案似乎无法满足 OP 在“ajax 调用完成”后运行回调的需要。
      • 好点。需要澄清的是,这是一种乐观的做法。可能有更好的检查方法。
      猜你喜欢
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多