2015-04-07 10 views
23

ich in der Dokumentation finden kann nicht, ob es eine Callback-Funktionalität bei der Umwandlung ist Tracking (https://developers.facebook.com/docs/ads-for-websites/tag-api)Facebook Umwandlung Ereignisrückruf

Um ein Ereignis zu verfolgen Sie müssen nur anrufen:

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

That sehr ähnlich ist analytics Conversion-Code auf google, nur wenn sie ermöglichen es Ihnen, eine Funktion aufzurufen, wenn der ajax-Aufruf Finish:

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

gibt es eine Möglichkeit t o die gleiche Funktionalität mit Facebook API erreichen?

+1

wäre so etwas wie die dynamischen Ereignisse arbeiten? https://developers.facebook.com/docs/ads-for-websites/tag-api#dynamicevents ie Sobald die Kauftaste geklickt wird, aktivieren Sie die Pixel und geben Sie einen Rückruf aus? –

+8

Ich bin überrascht, diese Frage hat nicht mehr Liebe erhalten. Hast du das jemals herausgefunden? Ich bin nicht sicher, wie die Facebook-Tag-API als allgemein verwendbar ohne einen Rückruf angesehen werden kann ... – logidelic

+0

@logidelic Hast du das jemals herausgefunden? – tholu

Antwort

1

Nein, Facebook unterstützt dies nicht.

Ja, JavaScript unterstützt es.

Wenn der Aufruf fbq aus irgendeinem Grund fehlschlägt es will not return undefined, so einfach überprüfen Sie eine reibungslose Ausführung.

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

Worauf kommt es an, eine Antwort ohne Kommentar zu erklären, warum? Es hilft wirklich niemandem. – Nobita

+0

Das 'fbq'-Objekt wird eine Art von Ajax-Anfrage auslösen, die asynchron zu Facebook mit den Ereignisdaten ist, also auch wenn das' fbq'-Objekt etwas anderes als 'undefined' zurückgibt, die Ajax-Anfrage wird wahrscheinlich noch nicht abgeschlossen sein, so dass die Callback-Funktion nicht ausgeführt würde, nachdem die Ereignisdaten tatsächlich an Facebook gesendet wurden. Diese Lösung scheint nicht die Anforderung des OP zu erfüllen, einen Rückruf nach dem "Ajax-Anruf beendet" auszuführen. –

+0

Großartiger Punkt. Es sollte klargestellt werden, dass dies ein optimistischer Ansatz ist. Es gibt wahrscheinlich einen besseren Weg zu überprüfen. –

0

Ab heute unterstützt Facebook es immer noch nicht. Da ich aber durch sofortige Umleitung dieses Problem hatte, habe ich die folgende Lösung:

im Grunde ich auf local setzen die Variable I =>

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

dann habe ich die Umleitung zu verfolgen brauchte, und auf der Zielseite verwendet ich folgendes richtig fb Ereignis dieses jemand hilft

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

Hoffnung zu verfolgen;)

PS: Dies funktioniert nur, wenn die Weitergeleitete Seite auf dem gleichen Host der ursprünglichen Seite, da localstorage ist einzigartig pro: Protokoll: // host: port