Facebook转换事件回调

Dom*_*oSL 27 javascript facebook facebook-ads-api facebook-tag

我无法在文档中找到转换跟踪中是否有任何回调功能(https://developers.facebook.com/docs/ads-for-websites/tag-api)

要跟踪您只需要致电的活动:

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

这与谷歌分析转换代码非常相似,只是它们允许您在ajax调用完成时调用函数:

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

有没有办法通过Facebook API实现相同的功能?

ste*_*cci 5

直到今天,Facebook 仍然不支持它。但是,由于我由于立即重定向而遇到此问题,因此我使用了以下解决方案:

基本上我在 localStorage 上设置了我需要跟踪的变量 =>

 window.localStorage.setItem('documentTitle', document.title);
Run Code Online (Sandbox Code Playgroud)

然后我进行了重定向,并在目标页面上使用以下内容正确跟踪 fb 事件

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

希望这有助于某人;)

PS:这仅在重定向页面位于初始页面的同一主机上时才有效,因为 localStorage 是唯一的:protocol://host:port


Kir*_*eck 0

不,Facebook 不\xe2\x80\x99 不支持。

\n\n

是的,JavaScript 支持它。

\n\n

如果fbq由于某种原因调用失败,它将不会返回undefined,因此只需验证是否顺利执行即可。

\n\n
function callback() {\n  console.log(\'fn:callback\');\n}\n\nif (\n  typeof fbq(\'track\', \'AddToCart\', {\n    content_name: \'Really Fast Running Shoes\', \n    content_category: \'Apparel & Accessories > Shoes\',\n    content_ids: [\'1234\'],\n    content_type: \'product\',\n    value: 4.99,\n    currency: \'USD\' \n  }\n) === \'undefined\') callback();\n
Run Code Online (Sandbox Code Playgroud)\n

  • “fbq”对象将向 Facebook 发起某种带有事件数据的异步 Ajax 请求,因此即使“fbq”对象将“返回”除“未定义”之外的其他内容,Ajax 请求也会可能尚未完成,因此在事件数据实际发送到 Facebook 后,“回调”函数将不会运行。该解决方案似乎无法满足OP在“ajax调用完成”后运行回调的需求。 (5认同)