2015-04-07 21 views
23

我不能在文档中发现如果在转换任何回调功能跟踪(https://developers.facebook.com/docs/ads-for-websites/tag-apiFacebook的转换事件回调

为了追踪一个事件,你只需要调用:

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'); 
    } 
}); 

有T A方式o与Facebook API实现相同的功能吗?

+1

将类似的动态事件工作? https://developers.facebook.com/docs/ads-for-websites/tag-api#dynamicevents ie一旦购买按钮被点击激活像素并发出回调? –

+8

我很惊讶这个问题没有得到更多的爱。你有没有想过这个?我不确定Facebook标记API如何在没有回调的情况下被认为通常可用... – logidelic

+0

@logidelic你有没有想过这个? – tholu

回答

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

没有评论解释原因的情况下,回答问题的答案是什么?它真的不帮助任何人。 – Nobita

+0

'fbq'对象将使用事件数据向Facebook发出某种Ajax请求,这是异步的,所以即使'fbq'对象将会返回'undefined'之外的东西,Ajax请求可能还没有完成,所以在事件数据实际发送到Facebook之后,“回调”函数将不会运行。这个解决方案看起来不符合OP在“ajax调用完成”之后运行回调的需要。 –

+0

伟大的一点。应该澄清,这是一个乐观的方法。可能有更好的方法来检查。 –

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的是每个独特:协议://主机:端口