2015-04-07 20 views
23

tôi không thể tìm thấy trong tài liệu hướng dẫn nếu có bất kỳ chức năng gọi lại trong theo dõi chuyển đổi (https://developers.facebook.com/docs/ads-for-websites/tag-api)Facebook chuyển đổi sự kiện callback

Để theo dõi một sự kiện, bạn chỉ cần gọi:

window._fbq = window._fbq || []; 
window._fbq.push(['track', 'FBCONVERSIONCODE', {'value':'0.00','currency':'USD'}]); 

Đó rất giống với mã chuyển đổi google analytics, chỉ mặc dù chúng cho phép bạn gọi hàm khi cuộc gọi ajax kết thúc:

ga('send', 'pageview', { 
    'page': '/my-new-page', 
    'hitCallback': function() { 
    alert('analytics.js done sending data'); 
    } 
}); 

Có cách nào t o đạt được chức năng tương tự với Facebook API?

+1

Điều gì đó giống như sự kiện động? https://developers.facebook.com/docs/ads-for-websites/tag-api#dynamicevents tức là Khi nút mua được nhấp, hãy kích hoạt pixel và đưa ra lời gọi lại? –

+8

Tôi ngạc nhiên khi câu hỏi này không nhận được nhiều tình yêu hơn. Bạn đã bao giờ con số này ra? Tôi không chắc cách Facebook Tag API có thể được coi là thường sử dụng được mà không cần gọi lại ... – logidelic

+0

@logidelic Bạn đã bao giờ tìm ra điều này chưa? – tholu

Trả lời

1

Không, Facebook không hỗ trợ.

Có, JavaScript hỗ trợ nó.

Nếu cuộc gọi fbq không thành công vì lý do nào đó, hãy gọi số will not return undefined, vì vậy, chỉ cần xác minh thao tác trơn tru.

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

Đâu là điểm giải quyết câu trả lời mà không có bình luận giải thích lý do tại sao? Nó thực sự không giúp đỡ bất cứ ai. – Nobita

+0

Đối tượng 'fbq' sẽ khởi chạy một số loại yêu cầu Ajax, không đồng bộ, với Facebook với dữ liệu sự kiện, vì vậy mặc dù đối tượng' fbq' sẽ 'trả về' một thứ khác với' undefined', yêu cầu Ajax có khả năng chưa hoàn thành, do đó chức năng 'callback' sẽ không được chạy sau khi dữ liệu sự kiện thực sự được gửi tới Facebook. Giải pháp này dường như không đáp ứng được nhu cầu của OP khi chạy một cuộc gọi lại sau khi cuộc gọi "ajax kết thúc". –

+0

Điểm tuyệt vời. Cần làm rõ rằng đây là một cách tiếp cận lạc quan. Có lẽ là một cách tốt hơn để kiểm tra. –

0

Tính đến hôm nay, Facebook vẫn không hỗ trợ. Tuy nhiên, kể từ khi tôi có vấn đề này do sự chuyển hướng ngay lập tức, tôi đã sử dụng các giải pháp sau đây:

về cơ bản tôi đặt trên localStorage biến tôi cần phải theo dõi =>

window.localStorage.setItem('documentTitle', document.title); 

sau đó tôi đã chuyển hướng, và trên trang mục tiêu tôi đã sử dụng sau đây để theo dõi đúng fb kiện

if (typeof(fbq) !== 'undefined' && window.localStorage.getItem('documentTitle')) { 
    fbq('track', 'Lead', {content_name: window.localStorage.getItem('documentTitle')}); 
    window.localStorage.removeItem('documentTitle');} 

Hy vọng điều này sẽ giúp người;)

PS: thao tác này sẽ chỉ hoạt động nếu trang được chuyển hướng nằm trên cùng một máy chủ của trang ban đầu, vì localStorage là duy nhất cho mỗi giao thức: : // host: port

Các vấn đề liên quan