首页 > 解决方案 > 为什么 facebook 的转换像素会加载多个 JavaScript 文件?

问题描述

如果我访问安装了 facebook 转换像素的网站(例如https://www.walmart.com/),我注意到该像素加载了几个不同的 JavaScript 文件。

第一个是https://connect.facebook.net/en_US/fbevents.js

第二个是 https://connect.facebook.net/signals/config/168539446845503?v=2.9.2&r=stable。这似乎将一些用户特定的配置数据烘焙到文件中。

第三个是https://connect.facebook.net/signals/plugins/inferredEvents.js?v=2.9.2

我不明白的是,为什么 Facebook 不简单地将所有这些合并到一个请求中,例如https://connect.facebook.net/en_US/168539446845503/fbevents.js?v=2.9.2&r=stable,然后简单地返回一个包含所有内容的文件?这将能够完成转换像素现在所做的所有事情,但需要 1 个请求而不是 3 个请求。

标签: api-designfacebook-ads-api

解决方案


由于该页面对其加载提出了一百多个请求,因此加载 1 个 javascript 文件而不是 3 个不会带来显着的改进。

Facebook 选择分成 3 个文件以获得更好的设计,可能是:

  • 1 个通用库:fbevents.js
  • 1更具体:inferredEvents.js,使用第一个
  • 1 个包含生成代码的文件,可能特定于商家 168539446845503(沃尔玛?)

这种碎片化使代码维护更容易(测试、可重用性、错误修复)。

最后,通用文件 fbevents.js 和 inferredEvents.js 可以被浏览器缓存并在其他网站上重复使用。这是一种优化,可能比您建议的要好。


推荐阅读