Umami 升级1.39 版本以后支持站点事件统计数据的展示,本文记录 1.40 版本该功能的使用方法。
简介
- 在我们安装好 Umami 后,可以在升级 1.39 版本以后展示指定统计的网站事件
- 统计事件的方法在 官方文档 中有简单说明
- 官方文档:https://umami.is/docs
使用方法
升级版本
- 首先需要升级到 1.39 以后的 Umami 版本
- docker 的升级方法我 记录了下来
添加类标记
- 使用简单的 css 标记即可完成 Umami 的事件统计,要启用事件,只需向要跟踪的元素添加一个特殊的 CSS 类。
- 添加格式如下的类:
1 | umami--<event>--<event-name> |
---|
- 例如一个按钮元素,我们想要统计点击事件的话:
1 | <button id="signup-button" class="button umami--click--signup-button">Sign up</button> |
---|
- 另外也有 js 调用的方法,还可以自定义追踪事件 由于没有运行过就不举例了
API 调试
- 如果想单独调试 Umami 的 Event Tracker 功能,可以单独向 Umami 的
地址:端口
发送专门追踪事件的 API 请求 - 相关文档:https://umami.is/docs/api
- 核心 API 为
/api/collect
,请求类型需要是 POST 请求 - 如果你的版本是 1.37 以上的 Umami 核心内容名字叫做
event_name
- 发送报文格式为:
1234567891011 | { payload: { website: "your-website-id", url: "/", event_name: "click-signup-button", hostname: "your-hostname", language: "en-US", screen: "1920x1080" }, type: "event"} |
---|
- 如果是早期版本,格式为:
123456789101112 | { payload: { website: "your-website-id", url: "/", event_type: "click", event_value: "signup-button", hostname: "your-hostname", language: "en-US", screen: "1920x1080" }, type: "event"} |
---|
- 还需要加入带有 User-Agent 的 HTTP Header 才可以
- 示例代码(In Python):
123456789101112131415161718192021222324252627282930313233343536373839404142 | import requestsimport jsonroot_url = "<your umami IP:port>/api/collect"header={ "Accept": "*/*", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh,en-US;q=0.9,en;q=0.8,zh-TW;q=0.7,zh-CN;q=0.6", "Connection": "keep-alive", "Content-Length": "201", "Content-Type": "application/json", "Host": "101.43.39.125:3000", "Origin": "https://www.zywvvd.com", "Referer": "https://www.zywvvd.com/", "sec-ch-ua": '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "Windows", "Sec-Fetch-Dest": "empty", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Site": "cross-site", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36", "x-umami-cache": <your token>}data = { 'payload': { "website": <website-uuid>, "hostname": <your-host-name>, "screen": "1920x1080", "language": "zh", "url": "/", "event_type": "click-type", "event_name": "click", "event_value": "click-Umami" }, 'type': 'event'}url = root_urlres = requests.post(url=url, data=json.dumps(data), headers=header)print(res)print(json.loads(res.text)) |
---|
- 返回代码 200 表示请求成功。
参考资料
- https://umami.is/docs
- https://github.com/umami-software/umami