我在文档中找不到转化跟踪中是否有任何回调功能(https://developers.facebook.com/docs/ads-for-websites/tag-api)
要跟踪事件,您只需致电:
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');
}
});
有没有办法用 Facebook API 实现相同的功能?
截至目前,Facebook 仍不支持。 但是,由于我由于立即重定向而遇到了这个问题,所以我使用了以下解决方案:
基本上我在 localStorage 上设置了我需要跟踪的变量=>
window.localStorage.setItem('documentTitle', document.title);
然后我进行了重定向,并在目标页面上使用以下内容来正确跟踪 Facebook 事件
if (typeof(fbq) !== 'undefined' && window.localStorage.getItem('documentTitle')) {
fbq('track', 'Lead', {content_name: window.localStorage.getItem('documentTitle')});
window.localStorage.removeItem('documentTitle');}
希望这对某人有帮助;)
PS:仅当重定向页面位于初始页面的同一主机上时,这才有效,因为 localStorage 是唯一的:protocol://host:port
Facebook 没有回调,但如果您遇到我遇到的问题,这是一个不允许请求完成的重定向,我建议您将重定向包装在
setTimeout
示例:
fbq('track', 'Purchase');
$('.loader').fadeIn();
setTimeout(function () {
window.location.replace("/bookings/"+booking_id);
}, 1500);
通常需要 50-100 毫秒才能完成请求,但留出 1500 毫秒来完成触发请求是安全的。
不,Facebook 不支持。
是的,JavaScript 支持。
如果
fbq
调用由于某种原因失败,它 将不会返回 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();