33

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

4

3 回答 3

5

直到今天,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

于 2017-11-13T10:18:11.233 回答
2

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

例子:

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

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

于 2018-08-29T10:32:22.610 回答
0

不,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();
于 2016-07-26T06:14:34.683 回答