2015-04-07 14 views
23

я не могу найти в документации, если есть какие-либо функции обратного вызова в отслеживании конверсий (https://developers.facebook.com/docs/ads-for-websites/tag-api)Facebook преобразования обратного вызова событие

Для того, чтобы отслеживать события вам просто нужно позвонить:

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

Это очень похож на Google Code аналитика преобразования, только если они позволяют вызывать функцию, когда финишная Ajax вызова:

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

есть ли способ т o достичь такой же функциональности с Facebook API?

+1

Would что-то вроде динамических событий работает? https://developers.facebook.com/docs/ads-for-websites/tag-api#dynamicevents ie Как только кнопка покупки нажата, активируйте пиксели и выполните обратный вызов? –

+8

Я удивлен, что этот вопрос не получил больше любви. Вы когда-нибудь это понимали? Я не уверен, как API тегов Facebook можно считать общедоступным без обратного вызова ... – 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' будет запускать какой-то запрос Ajax, который является асинхронным, в Facebook с данными о событиях, поэтому даже если объект' fbq' будет 'возвращать' нечто иное, чем' undefined', запрос Ajax скорее всего, не будет завершена, поэтому функция callback не будет запущена после того, как данные события будут отправлены в Facebook. Это решение, похоже, не соответствует необходимости OP в выполнении обратного вызова после завершения «ajax call». –

+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 является уникальным для каждого: протокол: // хост: порт