自托管 Umami 实现 iOS 应用分析:免重量级 SDK,数据统计更精准!
鲁纳·奥维森·耶尔巴克相关信息涉及领导力、产品与技术包含项目、文章、演讲、关于等方面。使用自托管的 Umami 进行 iOS 应用分析2026 年 7 月 14 日发布阅读时长 7 分钟标签有分析、iOS、应用、开源、Fly、Cloudflare。因已自托管 Umami希望在应用中有同样体验且无需重量级分析 SDK、请求 IDFA 权限、借助第三方收集数据所以创建了开源 Swift 包 umami - swift可在同一仪表盘看到与网站相同的访客和访问数据。我的 Umami 实例支持应用分析情况每个应用在 Umami 中注册为网站显示在网站列表中与真实网站并列还展示应用真实图标。应用概览页面与网站类似访客数、访问数和页面浏览量统计方式相同。应用各个屏幕将自身报告为页面如健身追踪应用 Simplest Workout Tracker 的日历、年度总结、设置页面和记录健身页面会显示在页面列表中能知道用户使用应用的部分。实现方式umami - swift 是无依赖的开源 Swift 包公共 API 简洁。configure 方法需传入网站 ID 和主机字符串主机是在 Umami 中添加网站时输入的域名应用使用伪域名baseURL 可指向自己的 Umami 实例配置时会将启动页面浏览和 app_started 事件加入队列应用启动信息会显示在 Umami 概览页面。track 方法用于发送带有可选额外数据字典的命名事件screen 方法用于发送指定屏幕的页面浏览信息两个方法都会先将数据存入磁盘再批量发送无网络启动应用也不会丢失数据且不影响 UI。将其集成到应用中将 umami - swift 集成到应用只需几个步骤一是在 Xcode 中选择“文件”→“添加包依赖项”粘贴链接设置规则添加产品到应用目标使用 Package.swift 的项目在 dependencies 中添加相关内容并添加产品到目标。二是在 Umami 仪表盘为应用添加新网站给应用一个稳定伪域名复制生成的网站 ID。三是在应用启动时调用一次 Umami.configure 方法传入网站 ID、域名和 Umami 实例。四是运行应用在 Umami 仪表盘中打开应用网站页面app_started 事件应在几秒钟内出现表明事件数据正常传输。同一后端的不同客户端Umami 的跟踪脚本与 /api/send 和 /api/batch 两个端点交互接受 JSON 格式请求体不需要 API 密钥或签名请求通过有效负载中的 website - id 识别网站。Swift 应用可直接调用这些端点发送相同格式 JSON 数据设置合适的 User - Agent蜜罐机制同样适用于应用。准确统计唯一用户Umami 以访客和访问统计流量网页端通过对 IP 地址和 User - Agent 进行无 cookie 哈希计算确定访客身份应用中 umami - swift 自行提供访客 ID每个事件携带 UUIDUmami 作为访客标识符接受。该 UUID 随机生成仅存在于内存日历日期变更时更新不写入设备数据每次应用启动视为新访客以一天为上限与 Umami 无 cookie 网页跟踪方式一致不涉及 IDFA 或应用跟踪透明度无法跨应用、安装或日期跟踪用户。页面浏览量让概览页面数据准确Umami 通过页面浏览量计算访客数、访问数和页面浏览次数带有 name 的有效负载是自定义事件仅发送命名事件时概览页面数据显示为零事件只显示在“事件”列表中。客户端在每次应用启动和返回前台时发送一个 / 页面的浏览量让概览页面显示真实数据应用屏幕也可参与统计Umami.screen 方法会发送页面浏览量屏幕会显示在 Umami 页面列表中。不受广告拦截器影响浏览器请求会经过广告拦截器或隐私扩展拦截器可看到完整 URL/np/ 路径可避开问题。应用更难被拦截iOS 上 Safari 内容拦截器仅适用于 Safari 浏览器系统级拦截器或 DNS 拦截器只能看到 DNS 查找和 TLS 握手时的域名路径信息加密浏览器中能拦截 Umami 的规则在应用中无法匹配普通自托管实例默认不会被拦截。umami - swift 直接与 Fly 源服务器通信不经过 Cloudflare Worker但 /np/ 代理仍有作用。在 Umami 中显示应用图标Umami 在仪表盘上每个网站旁显示小图标从 DuckDuckGo 的 favicon 服务根据注册域名获取应用使用伪域名注册显示灰色地球图标。自托管可改变这种情况Umami 读取 FAVICON_URL 环境变量可替换 favicon 服务设置指向 Cloudflare Worker。请求 /icons/ 时Worker 会比对域名与应用列表匹配则返回应用真实图标其他情况重定向到 DuckDuckGo 的 favicon 服务网站仍显示原有图标。这是美观上的改进现在应用显示真实图标。相关文章推荐包括为 Scratch a Saying 添加一些小亮点2026 年 7 月 17 日阅读时长 2 分钟、使用 Cloudflare、Fly 和 Supabase 自托管 Umami2026 年 7 月 11 日阅读时长 8 分钟、SinceTag 现已上架 Mac App Store2026 年 6 月 13 日阅读时长 1 分钟。还有上一篇、主页、下一篇等导航信息以及项目、文章、演讲、关于、隐私政策、联系我们、Github、领英、订阅源等相关内容。

相关新闻

frab 会议系统用户手册:从议程安排到参会者管理全攻略

frab 会议系统用户手册:从议程安排到参会者管理全攻略

frab 会议系统用户手册:从议程安排到参会者管理全攻略 【免费下载链接】frab conference management system 项目地址: https://gitcode.com/gh_mirrors/fr/frab frab 是一款强大的会议管理系统,专为社区会议打造,支持从会议创建、演讲…

2026/10/17 11:56:42 阅读更多 →
Bloom在生产环境的应用:Crisp如何处理250 RPS的API流量

Bloom在生产环境的应用:Crisp如何处理250 RPS的API流量

Bloom在生产环境的应用:Crisp如何处理250 RPS的API流量 【免费下载链接】bloom :cherry_blossom: HTTP REST API caching middleware, to be used between load balancers and REST API workers. 项目地址: https://gitcode.com/gh_mirrors/bloom/bloom Bloo…

2026/10/16 12:50:15 阅读更多 →
深入Unipacker架构:理解其模拟引擎和API调用实现机制

深入Unipacker架构:理解其模拟引擎和API调用实现机制

深入Unipacker架构:理解其模拟引擎和API调用实现机制 【免费下载链接】unipacker Automatic and platform-independent unpacker for Windows binaries based on emulation 项目地址: https://gitcode.com/gh_mirrors/un/unipacker Unipacker是一款基于模拟技…

2026/10/15 7:13:40 阅读更多 →

最新新闻

Python+Tkinter开发元宵节猜灯谜软件:从题库到判分的完整实践

Python+Tkinter开发元宵节猜灯谜软件:从题库到判分的完整实践

简介:一款以元宵节猜灯谜为场景的Python练手项目,面向刚开始接触爬虫与桌面图形界面的编程学习者。项目完整展示了从汉谜网自动抓取灯谜、解析网页内容并保存为CSV结构化数据,再到使用Tkinter搭建可交互的猜灯谜界面的整个流程,同…

2026/10/18 11:14:01 阅读更多 →
9个降AI率工具实测:原理、避坑与论文写作实操指南

9个降AI率工具实测:原理、避坑与论文写作实操指南

先说个扎心的场景:辛辛苦苦写了一周的报告,自己做的数据、自己总结的结论,结果交上去一查,AI检测直接标红,显示疑似AI生成率83%。别急着怀疑自己,这情况在专科生里面太常见了——课程设计说明书、毕业设计论…

2026/10/18 11:14:01 阅读更多 →
AI视频创作半自动化工作流:从拉片到成片的全流程解析

AI视频创作半自动化工作流:从拉片到成片的全流程解析

做AIGC视频这行,我最常听到的一句话是:为什么我用AI生成视频,画质看着不错,发出去就是没流量?答案其实不在生成环节,而在生成之前。大部分人的工作流是打开工具、输入一句描述、等画面出来、再输入下一句。…

2026/10/18 11:14:01 阅读更多 →
从select到epoll:I/O多路复用原理与高并发实践

从select到epoll:I/O多路复用原理与高并发实践

1. 从阻塞到复用:一次真实业务把我逼进 I/O 多路复用事情得从一次线上事故说起。当时我维护一个内部推送服务,逻辑很简单:每个客户端连上来之后,服务端要维护一条 TCP 连接,等客户端发心跳,再偶尔推数据下去…

2026/10/18 11:14:01 阅读更多 →
NRBO-DBN回归预测:智能优化深度信念网络超参数

NRBO-DBN回归预测:智能优化深度信念网络超参数

做回归预测这一块,我踩得最多的坑不是模型选型,而是超参数怎么调。早几年做多输入单输出的预测任务,先用BP神经网络,后换SVM,精度始终卡在某个瓶颈上;后来换上深度信念网络(DBN)&…

2026/10/18 11:14:01 阅读更多 →
基于深度学习的目标检测道路坑洼识别:YOLOv8训练与部署实践

基于深度学习的目标检测道路坑洼识别:YOLOv8训练与部署实践

毕业设计选“基于深度学习的道路坑洼识别”这个方向的同学,最近明显多了起来。原因不难理解:既能用到Python、深度学习、图像识别这些当下最热的技术词汇,又有一个清晰可落地的应用场景,数据也相对容易获取。但真正动手做起来&…

2026/10/18 11:13:00 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →