一个产品试用页,只看访问量无法判断按钮有没有人点。Umami可以把按钮点击记为事件,把推广链接的UTM参数记为来源。真正的注册成功,还需要在业务成功后另发一个事件。把这三件事分开,后面才知道该改推广素材、按钮文案,还是注册流程。
先让试用页产生一次访问
本文从已有Umami账号和站点记录开始,不涉及服务端安装。在目标网站的Edit页面打开Tracking code,把整段追踪代码复制到网站公共的HTML head中。发布后访问试用页,确认后台出现访问数据,再继续加事件。这是官方接入顺序。
公共布局只装一份脚本;不要又在页面组件里复制一份。使用Next.js时,官方要求通过next/script组件接入。静态页可以部署在GitHub Pages,域名尚未接好可先读自定义域名设置;选择Workers托管的可接着看静态网站部署。
按钮点击怎样命名才好比较?
以“开始试用”按钮为例,建议事件名描述动作,位置放进属性。下面是示例HTML,需要加到现有按钮上,并保留原来的业务逻辑:
<button type="button"
data-umami-event="trial_click"
data-umami-event-placement="hero">
开始试用
</button>
页尾的同类按钮仍叫trial_click,只把placement改成footer。这样可以先看总点击,再比较位置。不要把日期、页面标题和位置都拼进事件名,否则每次改文案都会长出一个新事件。
官方事件文档限制名称为50字符,支持HTML属性或JavaScript两种方式。这里的事件代表一次点击,不代表试用账号已经创建。官方同时提醒,属性方式可能影响元素内其他事件监听器的触发。按钮已有点击处理器时,优先把JavaScript上报并入原处理器,并移除同动作的属性上报;发布前也要检查按钮原来的跳转或提交功能。
UTM应该写在什么链接上?
写在邮件、社交帖子等站外入口的落地页链接上。以下是虚构产品的示例,不是真实推广地址:
https://example.com/trial?utm_source=weekly_note&utm_medium=email&utm_campaign=trial_launch&utm_content=top_button
这张命名表适合一个活动的多个入口,值由你制定,并非Umami预设:
| 要区分什么 | 参数 | 示例值与用法 |
|---|---|---|
| 哪个平台带来访问 | utm_source | weekly_note,固定代表这份周报 |
| 通过什么渠道 | utm_medium | email,同类邮件保持一致 |
| 哪一轮推广 | utm_campaign | trial_launch,整轮活动共用 |
| 哪个素材或链接 | utm_content | top_button,区分文末链接 |
URL已有问号时,用&续接参数;没有查询参数才用问号。发布前点击实际推广链接,确认跳转后的落地页仍保留这些值。日常站内导航不必套用这套来源标签,按钮位置已有事件属性可以表达。
UTM分析按五个标准参数拆分Views;另一个参数utm_term用于付费搜索关键词,本例不需要。看到某渠道带来很多Views,只说明它带来浏览,不能据此判定注册多。
注册成功该在哪一行代码记录?
在后端确认注册成功后,由前端成功分支调用,而不是按下提交按钮时调用。以下是一行接入示例,应放进你已有的成功分支,不是完整注册程序:
window.umami?.track('signup_success', { plan: 'free' });
Tracker functions支持事件名加数据对象。可选链让统计对象不存在时跳过调用,业务流程仍继续,但那次事件也不会被记录。此处不需要传邮箱或姓名,套餐类别已经足够回答“哪种方案有人注册”。
如果注册失败,不发signup_success;如果用户连续点击提交按钮三次,也不该把三次点击解读为三个账号。统计看趋势,真实账号数量仍以业务数据库为准。需要保存数据库时,另见Supabase备份与恢复。
去哪里确认来源和事件对应上了?
发布后,用带示例UTM的链接进入页面,点击一次试用按钮。在同一日期范围里,先去Events查trial_click,再从Properties检查placement值;之后打开UTM分析,看来源是否出现。当前主文档使用这个属性入口;Event data页面仍写顶部入口,两页菜单描述并不一致,不能仅凭找不到同名标签判断漏计。
接下来才关联业务结果:在Attribution选择Type为Triggered event,Conversion Step选signup_success,并选择归因模型后运行。官方归因说明标明该功能自v2.18.0提供,模型有First-Click与Last-Click。前者把功劳记给最初接触,后者记给转化前最后接触。比较渠道时要固定模型,不要这周用首次、下周用末次。
例如,假设周报入口有一百次浏览,社交帖子有三百次浏览,但归因到注册成功的分别是八次和三次。这是示例数据,至少提示你继续研究周报读者为什么更愿意注册。它还不能证明周报值得无限加预算:两个渠道的受众和素材可能不同,重复访问也会影响分母。下一轮应保留落地页和成功事件定义,只更换一项推广素材来比较。
不能用“全站trial_click次数÷邮件渠道Views”当邮件转化率:分子包含其他来源,也可能包含重复点击。先确保目标事件表达成功,再用同一日期和模型读归因结果。
有访问却没有来源时,检查哪项设置?
确认最终URL含UTM后,检查脚本是否设置了data-exclude-search="true"。它用于排除URL查询参数,不适合直接照搬到依赖查询参数的来源统计方案中;具体行为见追踪配置。
本文按官方文档整理,未在真实账号执行点击或验证跨会话归因。完成接入后的验收对象很具体:一次访问、一条位置正确的点击事件,以及成功提交后才出现的signup_success。保留这次测试的时间和标签,后续查报表时就能认出测试数据。