Meta Pixel 与 Conversions API

:information_source: 摘要 为您的 Discourse 论坛添加 Meta Pixel 追踪及转化 API (CAPI) 支持。
:hammer_and_wrench: 仓库链接 Discourse Meta Pixel & Conversions API 插件
:open_book: 安装指南 如何在 Discourse 中安装插件

在 Discourse 中添加 Meta Pixel 的常规方法是将基础代码粘贴到主题组件(theme component)中。这会在文档加载时触发一次 fbq('track', 'PageView'),由于 Discourse 从不重新加载文档,因此无论用户阅读了多少个主题,每次访问只会记录一次 PageView。本插件则会在每次导航时触发,添加内容和转化事件,并通过转化 API 发送服务器端副本,从而确保事件在广告拦截器存在的情况下依然能被记录。

为什么不直接使用主题组件?

主题组件仅在浏览器中运行,这带来了三个后果。

广告拦截器和 Safari 的 ITP(智能跟踪预防)会移除相当一部分浏览器事件,且您无法得知具体缺失了哪些事件。它完全无法使用转化 API,因为这需要一个访问令牌,而主题组件中没有可以放置访客无法读取的机密信息的地方。此外,它会在被注入的所有页面触发,包括私信、/admin 和密码重置页面。

如果您只需要为再营销受众记录 PageView,那么主题组件确实已经足够,且只需两分钟即可设置。本插件旨在提升转化质量。

我的论坛需要这个吗?

可能不需要。Pixel 和 CAPI 旨在帮助您追踪转化并创建广告受众。虽然它可以提供一些分析数据,但 Discourse 管理面板已经拥有强大的分析数据。本插件主要面向希望追踪转化并管理 Meta 广告的用户,这些广告有助于将用户吸引到您的论坛和网站。

功能

  • 在一个插件中集成浏览器 Pixel 和服务器端转化 API,共享同一个事件 ID,以便 Meta 进行去重而非重复计数
  • PageViewViewContentSearchTopicEngagedCompleteRegistrationTopicCreatedReplyCreated
  • 每次 SPA 导航时触发,而非每次页面加载时触发
  • 即使浏览器 Pixel 被拦截,服务器端转化事件依然会到达
  • 私信、受限类别和管理员路由不会产生任何事件
  • 用户生成内容(UGC)的标题和搜索文本永远不会被发送
  • 可按组排除工作人员流量,且在服务器端事件上同样强制执行
  • 批量传输,包含重试分类、速率限制退避以及持久的幂等性表
  • 诊断页面,显示最近的传输记录及其状态

配置

1. 安装

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/multidimension-al/discourse-meta-pixel-capi.git

然后运行 ./launcher rebuild app。重建过程会执行迁移,创建传输记录表。

2. Pixel。 管理员 → 设置 → Meta Pixel & Conversions API。将您的 Pixel ID 填入 meta pixel dataset id,然后开启 discourse meta pixel enabled。这将完成一个仅使用 Pixel 的可用配置。

(Meta 在事件管理器中称其为 Pixel ID,在转化 API 文档中称其为数据集 ID。它们是同一个数字。)

3. 转化 API(可选)。 在事件管理器 → 您的数据集 → 设置 → 转化 API 中生成令牌。将其填入 meta pixel capi access token,然后开启 meta pixel capi enabled。如果没有令牌和数据集 ID,该设置将拒绝启用。

4. 验证。 将事件管理器 → 测试事件中的代码填入 meta pixel test event code,然后浏览论坛。每个事件应该到达一次,而不是两次。这表明去重功能正在正常工作。验证完成后请清除该字段,因为带有测试代码发送的事件不计入转化。

5. 检查。 管理员 → 插件 → Meta Pixel → 诊断页面显示配置、浏览器状态、传输计数以及最近 25 条传输记录及其错误信息。

设置

名称 描述
discourse meta pixel enabled 启用插件。默认关闭。
meta pixel pixel enabled 在浏览器中加载 Meta Pixel。
meta pixel dataset id 您的 Meta Pixel ID(在 CAPI 文档中称为数据集 ID)。
meta pixel capi enabled 通过转化 API 发送服务器端副本。需要令牌。默认关闭。
meta pixel capi access token 来自事件管理器的转化 API 令牌。服务器端机密,永远不会发送到浏览器。
meta pixel graph api version CAPI 请求使用的 Graph API 版本。默认 v26.0
meta pixel test event code 测试事件代码。仅在验证时设置,因为这些不计入转化。
meta pixel track page view 为符合条件的页面发送 PageView
meta pixel track view content 当打开一个公开可见的主题时发送 ViewContent
meta pixel track search 当执行全页搜索时发送 Search。搜索文本永远不会被转发。默认关闭。
meta pixel track topic engaged 在有效阅读后发送 TopicEngaged
meta pixel topic engaged seconds 触发 TopicEngaged 前的活跃阅读秒数。默认 30。
meta pixel track complete registration 当创建账户时发送 CompleteRegistration
meta pixel track topic created 当创建新的公开主题时发送 TopicCreated
meta pixel track reply created 当回复一个公开主题时发送 ReplyCreated
meta pixel enhanced email matching 包含成员电子邮件的 SHA-256 哈希值以提高匹配质量。默认关闭。
meta pixel external id matching 包含用户 ID 的不透明 HMAC。绝不包含用户名或电子邮件。
meta pixel excluded groups 这些组的成员完全不会产生 Meta 事件。默认:管理员、版主。
meta pixel respect do not track 对于浏览器报告“请勿跟踪”的访客,不发送任何数据。
meta pixel public content only 仅为匿名用户可读的主题发送内容事件。
meta pixel batch size 每个请求的转化数量。Meta 最多接受 1000 个。默认 100。
meta pixel batch max wait seconds 部分填充的批次等待的时间。默认 300。
meta pixel delivery retention days 保留传输记录的天数。最少 7 天,默认 30 天。
meta pixel debug mode 将已分发的事件记录到浏览器控制台。

备注

  • 事件的浏览器副本和服务器端副本共享同一个 ID。Meta 会在 48 小时内根据事件名称和 ID 进行去重,这就是为什么批次等待窗口是分钟级而不是小时级的原因。
  • 主题和回复创建仅在服务器端处理。浏览器副本不会增加任何身份信号,而且如果客户端能够断言“一个主题已创建”,它也可能虚假地断言这一点。
  • 注册信息从服务器发送,但与浏览器事件配对,因为在创建账户时,没有正在进行的请求可以获取 IP、用户代理或 _fbp
  • 排除组在所有服务器端分发路径上强制执行,而不仅仅是在浏览器中。TopicCreatedReplyCreatedCompleteRegistration 完全不涉及浏览器。
  • 浏览器发送到的端点不是 CAPI 代理。它接受四个事件名称、一个事件 ID,以及可选的主题 ID 和路径。不接受 URL,也不接受任意的 user_data

还有一个以相同方式构建的配套 Google Analytics 4 插件

别忘了填写这一项!我知道我填了。

1 个赞