Documentation menu

互动与分析

当收件人在投票中投票、提交表单或点击评分时,该互动会被 MailInApp 的托管端点记录下来,并归因到你的项目——实时进行。

互动如何传递

互动模块通过两种方式到达记录端点,与降级理念相对应:

  • 链接(通用)。 投票或评分中的每个选项都是一个普通链接。点击它会打开一个轻量级的托管页面,确认该操作并记录它。这条路径在 100% 的邮件客户端中都能生效。
  • 邮件内表单提交(增强)。 在支持它的客户端(Gmail 网页版/安卓版、Yahoo)中,表单和投票可以使用标准 HTML 表单编码直接从邮件内提交——无需跳转页面。提交之后,收件人会被重定向到你选择的页面。

两条路径接受的数据相同,因此无论收件人使用哪种客户端,结果都会汇总到同一个地方。

商品模块的"立即购买"点击是唯一的例外:它完全无法通过这个端点记录,因为一次购买只能在 Stripe 自己的托管结账页面上完成。它仍会作为一个 purchase 事件记录在这里——包含金额、货币和数量——但只有在 Stripe 的 Webhook 确认付款确实成功之后才会记录,绝不会仅凭买家的点击就记录。

防御机器人和扫描器

企业安全工具会预先抓取它们扫描的每封邮件中的每一个链接。如果单纯点击一次链接就足以记录一次投票,那么你的投票结果就会被机器人灌满。MailInApp 在单纯的 GET 请求上绝不记录任何内容:基于链接的操作需要收件人明确的确认动作,实时预览中的互动则通过表单提交来记录。参见实时预览链接

由于这些端点出于必要性而必须是公开的(收件箱无法进行身份验证),因此每个数据负载都会在服务器端进行验证,个性化提交则通过与保护实时预览链接相同的签名令牌进行归因——伪造或不匹配的令牌会被拒绝。

还有两层机制用于保证结果的真实性:

  • 按收件人去重。 同一位收件人自己的投票、评分、刮开或表单提交只会被计一次——重复点击自己的链接(急切的连续两次点击、一次重试的页面加载)是一次空操作,而不是第二条记录。轮播图幻灯片的重复浏览则特意去重,因为在那里重复本身是一个有意义的参与信号,而不是重复计数。
  • 匿名流量限速。 一个营销活动的 campaignId 在邮件自身的 HTML 源码中是明显可见的,因此没有任何机制能阻止某个脚本在完全没有收件人令牌的情况下提交任意投票。未归因的提交会按 IP 地址、按营销活动、按分钟设置上限。这是一个尽力而为的防护网,而不是精确的身份判断——共享的企业或网页邮箱网络可能让许多真实收件人处于同一个 IP 之下——因此该上限会保持得足够宽松,不会阻止一波合理的正常打开高峰。

会被记录的内容

每个互动事件都会捕获:

  • 它所属的项目(营销活动),
  • 产生它的模块(哪个投票、哪个表单),
  • 数值(所选选项、提交的字段、星级数),
  • 收件人所在行,当邮件是根据数据源进行个性化的时候——这样你就能看到作了回答,而不只是有多少人回答,
  • 一个时间戳。

调查问卷生命周期

一个项目可以设置截止日期和/或响应数量上限(在发送设置旁一起设置)。一旦达到其中任意一个条件,该项目的记录端点就会停止接受新事件——实时预览会把互动模块替换为一条已关闭的提示,而不是报错——而在关闭之前收集到的所有数据会完全保持原样。参见响应与 Webhook

点击跟踪

普通链接(一个按钮、一张带链接的图片、一个社交图标)不是投票也不是评分,但同样值得跟踪。当邮件是以个性化的收件人链接发送时,MailInApp 会在这些普通点击到达其真实目的地之前,先经过一次跟踪重定向。该点击会被记录,然后收件人会落到你设置的 URL 上,不会有额外步骤,也不会有延迟。没有收件人上下文的邮件(例如通过事务性 API发送的自由格式邮件)则会直接链接到目的地,因为没有任何东西可以用来归因这次点击。

与投票和评分不同,点击绝不去重——同一位收件人点击同一个按钮五次就计为五次点击,因为在这里重复点击是一个有意义的参与信号,而不是重复计数。结果会汇总到每个模块的点击热力图中——参见响应与 Webhook

滚动深度

托管的实时预览页面还会报告收件人在阅读时滚动到了页面的多远位置(25%、50%、75%、100%)。这是 MailInApp 中唯一运行一小段脚本的地方。已发出的邮件本身仍然保持 100% 无脚本,这是必须的,但实时预览本来就是一个普通的托管网页,因此在那里加一个滚动监听器不会破坏任何东西。这些里程碑会汇总到一个滚动深度转化路径中;参见响应与 Webhook

打开跟踪

从仪表盘发出的每一封邮件都还带有一个微小的、不可见的打开跟踪像素,让你在明确的互动之外,还能获得"已打开但未参与"与"从未打开"之间的区分信号。它会在响应视图中以一个独立的已打开指示器(首次打开时间)按收件人展示,而不是混入互动列表中。

这是一个尽力而为的最低限度指标,而不是精确测量:Apple Mail 隐私保护和 Gmail 的图片代理都会独立于收件人是否真正打开邮件而预抓取或缓存图片,因此打开次数可能被低估,也可能出现误报。请把它当作一个方向性信号,而不是权威依据。

结果去哪里查看

互动数据按项目收集,并通过三种方式回传给你:

  • 按收件人的响应——仪表盘的响应视图会把每个互动按收件人分组,并与你的数据源关联,让你看到是谁作了回答,而不只是有多少人。参见响应与 Webhook
  • Webhook——每个互动到达的瞬间都可以推送到你自己的端点,并附有签名以便你验证它确实来自 MailInApp。也在响应与 Webhook中有说明。
  • 面向收件人的实时结果——投票模块可以在其托管的结果页面上向收件人展示实时结果。

隐私提示: MailInApp 只记录收件人主动作出的互动——投票、提交、评分——以及上面提到的打开跟踪像素。这些端点的设计原则是不记录单纯链接抓取所产生的任何其他附带跟踪信息。