javascript - eventos - Devolución de llamada del evento de conversión de Facebook
eventos pixel facebook (3)
A partir de hoy, Facebook todavía no lo soporta. Sin embargo, como tuve este problema debido a una redirección inmediata, usé la siguiente solución:
básicamente puse en localStorage la variable que necesitaba para rastrear =>
window.localStorage.setItem(''documentTitle'', document.title);
Luego realicé la redirección y en la página seleccionada utilicé lo siguiente para realizar un seguimiento correcto del evento fb
if (typeof(fbq) !== ''undefined'' && window.localStorage.getItem(''documentTitle'')) {
fbq(''track'', ''Lead'', {content_name: window.localStorage.getItem(''documentTitle'')});
window.localStorage.removeItem(''documentTitle'');}
Espero que esto ayude a alguien ;)
PD : esto funcionará solo si la página redirigida está en el mismo host de la página inicial, ya que localStorage es único por: protocol: // host: port
No puedo encontrar en la documentación si hay alguna funcionalidad de devolución de llamada en el seguimiento de conversiones ( https://developers.facebook.com/docs/ads-for-websites/tag-api )
Para rastrear un evento solo necesitas llamar:
window._fbq = window._fbq || [];
window._fbq.push([''track'', ''FBCONVERSIONCODE'', {''value'':''0.00'',''currency'':''USD''}]);
Eso es muy similar al código de conversión de Google Analytics, solo que le permiten llamar a una función cuando finaliza la llamada ajax:
ga(''send'', ''pageview'', {
''page'': ''/my-new-page'',
''hitCallback'': function() {
alert(''analytics.js done sending data'');
}
});
¿Hay alguna manera de lograr la misma funcionalidad con la API de Facebook?
Facebook no tiene una devolución de llamada, pero si estás enfrentando el problema, soy un redireccionamiento que no permite que la solicitud finalice, te sugiero que envuelvas el redireccionamiento en un setTimeout
Ejemplo:
fbq(''track'', ''Purchase'');
$(''.loader'').fadeIn();
setTimeout(function () {
window.location.replace("/bookings/"+booking_id);
}, 1500);
Por lo general, toma entre 50 y 100 ms para finalizar la solicitud, pero es seguro dejar un valor de 1500 ms para terminar de ejecutar la solicitud.
No, Facebook no lo admite.
Sí, JavaScript lo soporta.
Si la llamada fbq
falla por alguna razón , no se devolverá undefined
, así que simplemente verifique una ejecución sin problemas.
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();