2015-04-07 20 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的是每個獨特:協議://主機:端口