Sorena
اینترنت امن و سریع
برای اتصال لمس کنید
سریع‌ترین سرور انتخاب می‌شود
انتخاب سرور
--
دانلود Mb/s
--
آپلود Mb/s
--
پینگ ms
● دانلود● آپلود
Ad
📢
تبلیغات Google AdMob
320×50 Banner
ترافیک
حجم امروز۵۰۰ MB
حجم باقی‌مانده۱۸۰ MB
سرورها
EU
اروپا
۵ سرور
32-45 ms
TR
ترکیه و همسایه
۳ سرور
28-35 ms
Asia
آسیا
۲ سرور
85-92 ms
وظایف روزانه
🎬
تماشای ویدیو
+50 MB
امروز: 0/3
📅
ورود روزانه
+30 MB
📤
اشتراک‌گذاری
+20 MB
👥
دعوت از دوستان
+500 MB/نفر
حجم دریافت شده امروز
+0 MB
عمومی
زبان
فارسی
حساب
حساب کاربری
وصل نشده
پروفایل
کد دعوت دوست
بازخورد
نسخه
v1.0.0
اطلاعات حساب
UUIDa1b2c3d4-e5f6
ایمیل
کد دعوتTRN-A7K2M
حساب کاربری
ایمیل و بازیابی حساب
کد دعوت دوست
⚠️
برای دریافت جایزه، ابتدا ایمیل خود را وصل کنید → اتصال ایمیل
🎁

هر دعوت = ۵۰۰ MB

شما و دوستتان هر دو ۵۰۰ MB حجم رایگان دریافت می‌کنید

قوانین دعوت
1دعوت‌کننده باید ایمیل وصل کرده باشد
2دعوت‌شونده باید کد دعوت را وارد کند
3دعوت‌شونده باید ایمیل وصل کند
کد دعوت شما
TRN-A7K2M
اشتراک‌گذاری لینک
۵
دعوت موفق
۲.۵ GB
حجم دریافت شده
AD5s
Loading ad...
🎉
恭喜获得奖励!
+50 MB
流量已添加到您的账户
به‌روزرسانی اختیاری
نسخه جدید در دسترس است
v1.0.0 → v1.2.0
تغییرات این نسخه
حجم: 12.4 MB
0%
شما از آخرین نسخه استفاده می‌کنید
📱
حساب در دستگاه دیگری وارد شد
حساب شما روی یک دستگاه جدید وارد شده است. این دستگاه به حالت مهمان بازگشت.
原型语言
启动 主页 节点 免费 设置 更新 反馈 资料 账号 邀请码 邀请 埋点
启动页 (Splash)
App 冷启动时展示品牌标识,同时完成初始化检查
📋 页面元素
元素说明数据源
品牌 Logo盾牌图标,圆角方形,绿色渐变,100×100px静态
App 名称"Sorena",36px 粗体白色静态
品牌标语多语言标语(安全快速的互联网)静态i18n
加载动画旋转圆环,品牌绿色,40×40px本地
🔄 交互逻辑
触发行为时机
自动App 启动展示 Splash 页 → 执行后台初始化立即
自动初始化完成生成/读取 UUID → 拉取节点列表 → 版本检查 → 进入主页2.5s
⚙️ 后台初始化任务
任务说明失败处理
UUID 检查首次安装自动生成并上报服务端注册离线时延迟上报
节点列表更新拉取最新订阅地址,更新本地缓存使用本地缓存
版本检查对比最新版本号,强制更新时阻断进入跳过
任务状态同步同步当日签到/视频/分享完成状态默认未完成
Splash 固定 2.5s。网络不可用时跳过远程任务,使用本地缓存直接进入主页。
主页 (Home)
核心页面,一键连接 VPN 并展示实时网络状态,一屏完整展示。连接前为大按钮,连接后切换为紧凑控制栏,减少占用面积
📋 页面元素
元素说明数据源
连接按钮(未连接)130px 大圆形,绿色+脉冲动画,居中展示,下方为状态文案+节点选择器本地VPN 引擎
紧凑控制栏(已连接)连接后大按钮收起,替换为一行:关闭(圆形) — 节点药丸(蓝绿描边胶囊,含节点名+国旗) — 重启(圆形),下方居中显示"已连接: HH:MM:SS"本地
关闭按钮54px 圆形,红色调电源图标,点击断开 VPN 并恢复大按钮视图本地
重启核心按钮54px 圆形,橙色调刷新图标,点击重启 VPN 核心(不断开会话),图标旋转 ~1.6s本地VPN 引擎
节点药丸(中间)绿色渐变胶囊,圆形国旗 + 节点名 + 实时连接指示(呼吸绿点"已连接") + 箭头,点击切换节点本地
节点选择器(未连接)圆角胶囊,圆形国旗 + 节点名 + 箭头,默认已预选节点(欧洲),非"选择节点"占位文案本地
实时速率下载/上传 (Mb/s) + 延迟 (ms),每 2s 刷新本地VPN 引擎
速率曲线图下载(绿)+上传(紫)双线实时曲线本地
Banner 广告位速率曲线图与流量卡片之间,60px 高横幅,左上角"Ad"角标,承载 Google AdMob 320×50 BannerAdMob SDK
流量配额卡片标题栏含刷新按钮(圆形,旋转图标)+获取流量按钮(绿色胶囊,FREE 角标);下方总流量(500MB)/剩余流量(180MB)+进度条服务端
获取流量按钮绿色渐变胶囊,文案"获取流量",右上角橙色"FREE"角标,点击跳转免费任务页静态
刷新按钮30px 圆形,刷新图标,点击重新拉取流量数据,加载时图标旋转 ~0.8s服务端
🔄 交互逻辑
操作行为
点击大连接按钮(未连接)进入"连接中"过渡态:按钮图标淡出 → 显示白色旋转圈 + 光晕呼吸动画 + 状态文案"正在连接..."(~1.2s) → 连接成功后大按钮淡出收起 → 紧凑控制栏缩放淡入 → 开始计时 → 开始速率监控
连接中过渡期间按钮锁定(pointer-events:none),忽略重复点击,避免状态错乱
点击关闭按钮(已连接)进入"断开中"过渡态:状态显示"正在断开..." → 紧凑控制栏缩放淡出(~0.28s) → 清除速率数据 → 大按钮(脉冲)视图淡入 → 停止计时
点击重启核心按钮保持连接 → 图标旋转 → 速率短暂重置 → ~1.6s 后恢复"已连接",状态文案显示"核心重启中..."
点击节点选择器/中间节点信息弹出节点底部弹窗(覆盖当前页面 70% 高度),已连接时切换节点即时更新控制栏
点击获取流量按钮跳转到免费任务页(Tab 切换至"免费"),引导用户做任务赚流量
点击刷新按钮图标旋转 → 重新请求服务端流量数据 → 更新总量/剩余/进度条(~0.8s)
自动流量耗尽强制断开 → 弹窗提示"流量已用完" → 引导去免费任务页获取
自动网络断线网络恢复后自动重连
📢 Banner 广告 (Google AdMob)
说明
位置速率曲线图与流量卡片之间,常驻展示
广告平台Google AdMob,标准 Banner 尺寸 320×50
广告标识左上角"Ad"角标,符合广告合规要求
加载失败拉取失败时折叠隐藏,不占用布局空间
刷新策略建议 30-60s 自动刷新一次(遵循 AdMob 政策,最短 30s)
免广告后续 Premium 用户可移除 Banner 广告
一屏布局确保连接操作零滚动。节点选择器默认预选最优节点(欧洲),用户无需先选节点即可直接连接。连接/断开均有过渡动画:连接中显示旋转加载圈+光晕呼吸(~1.2s),两个视图缩放淡入淡出平滑切换。流量卡片提供刷新(手动同步服务端数据)与"获取流量"(跳免费任务页)两个快捷操作,FREE 角标强化引导。Banner 广告承载 AdMob 变现,需遵循平台刷新与标识规范。
节点选择 (Node Sheet)
底部弹窗形式,从首页唤起,选择后自动关闭回到首页
📋 节点列表
区域节点延迟范围
🇪🇺 欧洲德国/法兰克福、荷兰/阿姆斯特丹、芬兰/赫尔辛基、罗马尼亚/布加勒斯特、瑞典/斯德哥尔摩32-45ms
🇹🇷 土耳其及邻国土耳其/伊斯坦布尔、亚美尼亚/埃里温、格鲁吉亚/第比利斯28-35ms
🌏 亚洲新加坡、印度/孟买85-92ms
📋 卡片信息
字段说明
国旗 Emoji视觉标识,28px
国家名称多语言,14px 粗体白色
城市名称多语言,11px 灰色
延迟值绿色数字 + "ms",右对齐
🔄 交互逻辑
操作行为
点击首页节点选择器弹出底部弹窗(高度 70%),列表可滚动
点击节点卡片卡片高亮(绿色边框)→ 200ms 后自动关闭弹窗 → 首页显示已选节点名
点击遮罩层关闭弹窗,不改变选择
节点数据 Splash 时预加载并缓存。底部弹窗保证用户不离开主页,选择后可直接连接。未来版本可增加 Premium 节点标识和延迟排序。
免费流量 / 任务墙 (Task Wall)
通过完成每日任务获取免费流量,核心变现+留存模块
📋 任务列表
任务图标奖励每日限制交互流程
观看激励视频🎬+50 MB/次3 次全屏视频广告(5s) → 奖励弹窗
每日签到📅+30 MB1 次点击 → 奖励弹窗 → 按钮灰化
分享应用📤+20 MB1 次分享界面(3s) → 奖励弹窗 → 按钮灰化
邀请好友👥+500 MB/人上限 30 次跳转邀请 Tab
🎬 激励视频流程
阶段UI 表现时长
1. 启动全屏黑色覆盖 + AD 标识 + 倒计时(5s) + 旋转加载圆0s
2. 加载文案"加载中..." + 进度条从 0% 开始走0-1.5s
3. 播放文案变"播放中..." + 进度条持续推进1.5-5s
4. 完成视频层消失 → 弹出奖励弹窗(🎉 +50MB)5s
📤 分享流程
阶段UI 表现时长
1. 拉起分享全屏遮罩 + Telegram/WhatsApp/更多图标 + 旋转加载 + "正在打开分享..."0s
2. 分享中模拟用户跳转到外部 App0-1.5s
3. 返回文案变"分享成功!返回中..."1.5-3s
4. 完成分享层消失 → 弹出奖励弹窗(🎉 +20MB)3s
🎁 奖励弹窗
元素说明
图标🎉 庆祝 Emoji,48px
标题"恭喜获得奖励!"多语言
金额"+50 MB" 绿色粗体 32px
描述"流量已添加到您的账户"
按钮"确定" → 关闭弹窗
📋 底部汇总
元素说明数据源
今日已获取实时累计当日所有任务获得的流量总和本地累加计算
视频任务需完整播放 5s 才计入奖励,提前关闭不发放。分享任务需确认用户实际完成分享操作。
设置页 (Settings)
通用偏好和账户管理入口,精简展示
📋 设置项
设置项类型分组说明
语言选择器(底部Sheet)通用波斯语/English/中文,切换即时生效,方向自动 RTL↔LTR
账号入口 →账户显示绑定状态(邮箱/未绑定),跳转账号页(绑定/找回/退出)
个人资料入口 →账户跳转个人资料子页(UUID、邮箱状态、邀请码只读展示)
填写邀请码入口 →账户一级入口,跳转邀请码填写子页,输入好友邀请码双方各得 500MB
反馈入口 →账户跳转反馈子页,提交问题/建议
版本号入口 + 版本号账户显示当前版本 v1.0.0,点击即检查更新(检查更新功能合并到此项,无独立入口),逻辑见"更新"页
🔄 交互逻辑
操作行为存储
点击语言弹出底部 Sheet → 三选一 → 全局文案即时切换本地SharedPreferences
点击账号跳转账号页(邮箱+验证码绑定/找回/退出登录)服务端
点击个人资料跳转 Profile 子页
点击填写邀请码跳转邀请码填写子页 → 输入 TRN-XXXXX → 校验提交后输入框灰化服务端
点击反馈跳转 Feedback 子页
点击版本号请求服务端版本 → 有更新弹更新窗 / 无更新 Toast 提示
MVP 设置页精简。检查更新无独立入口,合并到"版本号"项——点击版本即检查更新,符合用户直觉。填写邀请码从个人资料页提升为设置一级入口,缩短被邀请人填码路径。后续版本可增加 Kill Switch、自动连接、分应用代理、深色模式等高级选项。
应用更新 (App Update)
启动时检查版本,根据更新类型弹出可选/强制更新弹窗;设置页提供手动检查入口
📋 更新类型
类型updateType可否关闭行为
可选更新optional可关闭弹窗显示「稍后」+「立即更新」,用户可关闭继续使用
强制更新force不可关闭隐藏「稍后」,无遮罩关闭,点击遮罩/返回均无效,必须更新完成才能使用
无更新none启动时静默;手动检查时提示「已是最新版本」
📋 弹窗元素
元素说明数据源
更新图标圆角方形下载图标,绿色渐变,64×64px静态
类型标签「可选更新」蓝色 / 「强制更新」红色服务端
标题可选:「发现新版本」/ 强制:「需要更新」静态i18n
版本号当前版本 → 最新版本 (v1.0.0 → v1.2.0)服务端
更新内容更新说明列表(多语言),可滚动,最大高 160px服务端
安装包大小显示 APK 体积 (12.4 MB)服务端
下载进度条点击更新后显示,0-100% + 百分比文案本地
操作按钮「立即更新」主按钮 + 「稍后」次按钮(仅可选)静态
🔄 启动检查流程
触发行为时机
自动Splash 初始化请求服务端版本信息接口启动 ~0.4s
自动进入主页后若 optional/force → 弹出更新弹窗;none → 不弹Splash 结束 2.5s 后
自动请求失败(离线)跳过检查,使用本地版本正常进入
🔄 设置页手动检查
操作行为
点击版本号项检查更新已合并到设置页"版本号"项;点击 → 版本号变「...」→ 请求服务端
有更新弹出更新弹窗(逻辑与启动一致,按类型区分可选/强制)
无更新底部 Toast 提示「已是最新版本」,2.2s 后消失
🔄 更新交互逻辑
操作行为
点击立即更新隐藏按钮 → 显示下载进度条 → 进度到 100% → 「安装中...」→ 关闭弹窗 → Toast「更新成功」→ 版本号刷新
点击稍后(仅可选)关闭弹窗,正常使用 App
点击遮罩(强制更新)无响应,弹窗不可关闭
点击遮罩(可选更新)保留弹窗(也可配置为关闭),引导用户决策
📡 版本检查接口 (示例)
字段类型说明
updateTypestringforce / optional / none
latestVersionstring最新版本号 (v1.2.0)
apkSizestring安装包大小 (12.4 MB)
downloadUrlstringAPK / 商店下载地址
minSupportedVersionstring低于此版本强制更新
notesobject多语言更新说明 {fa, en, zh}
强制更新场景:服务端协议变更、严重安全漏洞、低于 minSupportedVersion。强制更新弹窗不可绕过,确保旧版本用户必须升级。可选更新尊重用户选择,避免打扰。建议同一版本的可选更新弹窗每日最多提示一次。
反馈页 (Feedback)
用户提交问题或建议,自动附带设备信息辅助定位
📋 表单字段
字段类型必填说明
问题类型下拉选择连接/速度/错误/建议/其他
问题描述多行文本最多 500 字
截图图片上传最多 3 张,单张 ≤5MB
🔄 交互逻辑
操作行为
点击提交按钮校验必填项 → 提交 → 按钮变"已提交 ✓"(2s) → 恢复
点击上传图片唤起系统图片选择器 → 显示"已选择 1 个文件"
自动附带信息设备型号、OS版本、App版本、UUID、网络类型、当前节点
反馈提交后无需等待回复确认。设备信息自动收集减少用户填写负担。
个人资料 (Profile)
只读账户信息展示。邮箱绑定/找回已抽离为独立"账号"页(设置一级入口)
📋 页面元素
区块元素说明数据源
账户信息卡片UUID设备唯一标识(匿名账号),自动生成,不可修改本地
邮箱状态未绑定(红色标签)/ 已绑定(绿色✓)服务端
邀请码用户唯一码 TRN-XXXXX(只读展示)服务端
账号入口「邮箱与账号找回」入口 →跳转账号页(绑定/找回/退出)点击
个人资料页改为纯展示。账号相关的所有操作(绑定邮箱、换机找回、退出登录)统一收口到独立"账号"页,本页与设置页均提供入口。
账号体系 (Account)
匿名优先 + 邮箱找回。一个动作(邮箱+验证码)统一承担绑定、登录、找回,无密码,单设备登录
🧭 账号模型
概念角色说明
UUID匿名账号本身安装即生成,零注册可用,全部功能开放
邮箱账号钥匙(找回锚点)绑定后可在新设备找回;不是账号本身
云端账号数据载体按账号存流量/邀请/绑定状态/当前活跃设备;一个邮箱对应一个云端账号
🔑 核心原则:一个动作走天下
说明
用户视角永远只做"输入邮箱 → 收验证码 → 填验证码",无需理解绑定/登录/找回的区别
服务端判定邮箱未注册 → 绑定到当前匿名账号;邮箱已注册 → 切换到老账号(找回/登录)
验证方式邮箱 6 位数字验证码(OTP),无密码
📋 页面元素(三态)
状态元素说明
未绑定·邮箱步说明卡片"绑定邮箱后换机可找回账号和流量"
邮箱输入 + 发送验证码校验邮箱格式,点击发送进入验证码步
未绑定·验证码步验证码输入框6 位数字,大字间距居中
重发倒计时"重新发送(60s)",倒计时结束才可点
更换邮箱返回上一步重填邮箱
已绑定账号卡片绿色✓ + 邮箱地址 + "退出登录"按钮
保护说明说明单设备登录规则
🔄 四条流程
流程步骤
A 首次使用安装 → 生成 UUID → 直接可用,不弹任何登录/注册
B 绑定邮箱设置/资料→账号 → 输入邮箱 → 发码 → 填码 → 绑定成功,状态变"已绑定/可找回"
C 新机找回新机(临时匿名账号) → 账号页 → 输入已注册邮箱 → 验证码 → 拉取老账号数据 → 临时账号丢弃
D 老设备被踢新机登录后,老设备下次活动时收到"已在他处登录" → 弹窗提示 → 退回匿名账号
🔐 验证码 (OTP) 规则
规则
位数 / 有效期6 位数字 / 10 分钟
发送频率60s 内仅一次,按钮倒计时
错误处理验证码错误:输入框抖动报错;过期:提示重新发送
防滥用同邮箱/同 IP 每日发送次数上限(服务端)
⚖️ 单设备登录 & 边界场景
场景处理
单设备规则一个账号同一时刻仅一台设备活跃;新设备登录成功 → 老设备下次活动被踢下线
踢下线时机被动发现(下次打开/连接时),无需长连接推送
被踢后状态温和弹窗"账号已在新设备登录" → 退回新的匿名账号,App 仍可用
绑定时邮箱已被占用不报错,自动转找回:"该邮箱已有账号,正在为你恢复" → 走流程 C
新机登录时本地已有流量以老账号为准,本地临时数据丢弃
主动退出登录退回新的匿名账号,App 继续可用,不停在空白页
绑定前换机/卸载数据不可恢复(匿名固有代价),靠"攒流量后引导绑定"降低发生率
设计目标:用户不需要理解"注册/登录/绑定"的概念,全程只有"填邮箱+验证码"一个动作。绑定时机不应一进 App 就强制,而是在用户攒下流量/成功邀请等"有价值资产"时温和引导。话术讲收益("换手机也能找回流量"),不讲动作("去注册")。原型中已绑定态提供一个"模拟其他设备登录(演示)"入口,用于演示被踢下线弹窗。
填写邀请码 (Invite Code)
被邀请人填写好友邀请码的独立子页,从设置页一级入口进入
📋 页面元素
元素说明数据源
邀请码输入框placeholder: TRN-XXXXX,LTR 方向,供被邀请人填写
提交按钮半透明绿色按钮,提交成功后灰化不可再次修改
奖励提示"填写好友邀请码,双方各得 500MB 免费流量"静态
🔄 交互逻辑
操作行为后续影响
点击设置→填写邀请码跳转本子页
点击提交邀请码校验格式 TRN-XXXXX → 提交 → 输入框+按钮灰化禁用双方各获得 500MB(需双方均绑定邮箱)
输入格式错误输入框边框变红 1.5s → 恢复
邀请码仅能提交一次,提交后不可修改。提升为设置一级入口,缩短被邀请人填码路径。奖励发放需被邀请人同时满足:填码 + 绑定邮箱(见"邀请"页奖励机制)。
邀请页 (Invite)
裂变增长核心模块,邀请奖励驱动用户自传播
📋 页面元素
元素说明数据源
⚠️ 未绑定警告横幅黄色背景,提示需绑定邮箱才能获得奖励,含跳转链接本地emailBound 状态
🎁 奖励说明卡片"每邀请1人=500MB",双方各得静态
📋 邀请规则卡片三条编号规则(邀请人绑邮箱、被邀请人填码、被邀请人绑邮箱)静态
邀请码展示TRN-XXXXX 大字 + 复制按钮本地
分享按钮组Telegram / WhatsApp / 复制链接(三列等宽)本地
邀请统计成功邀请数 + 已获流量(双卡片)本地
🔄 奖励机制
规则说明
邀请人条件必须已绑定邮箱,否则显示警告横幅
被邀请人条件必须填写邀请码 绑定邮箱,两者缺一不可
"成功邀请"定义被邀请人同时满足:① 填写了邀请码 ② 绑定了邮箱
奖励发放条件满足后,双方各获得 +500MB
累计上限单用户最多 15GB(30 次成功邀请)
防作弊同设备指纹不重复;同 IP 24h 限 3 次注册;邮箱需真实可接收验证
🔄 交互逻辑
操作行为
点击复制按钮复制邀请码到剪贴板 → 按钮文案变"✓" → 1.5s 恢复
点击Telegram唤起 Telegram 分享(预填文案:Sorena VPN 邀请链接+邀请码)
点击WhatsApp唤起 WhatsApp 分享(同上)
点击复制链接复制 https://sorena.link/invite/TRN-XXXXX → "✓"
点击警告横幅链接跳转到个人资料页绑定邮箱
分享文案预设:"🛡 Sorena VPN — 安全快速的网络。使用我的邀请码 TRN-XXXXX 注册,你我各得 500MB 免费流量!下载: https://sorena.link/invite/TRN-XXXXX"
数据埋点 (Tracking)
用户行为与关键事件埋点,用于分析留存、转化和增长
📋 公共参数(每个事件自动附带)
参数类型说明
uuidstring设备唯一标识
app_versionstringApp 版本号 (v1.0.0)
osstring操作系统 (Android/iOS)
os_versionstring系统版本号
device_modelstring设备型号 (Samsung SM-G991B)
channelstring渠道来源 (official/telegram/invite)
regionstring用户地区 (IR/TR/DE),根据 IP 或 SIM 卡判断
languagestringApp 当前语言 (fa/en/zh)
network_typestring网络类型 (wifi/4g/5g)
timestampint64事件时间戳 (ms)
🚀 App 生命周期
事件名触发时机附加参数
app_launchApp 冷启动完成is_first_launch(bool)
app_init_completeSplash 初始化完成进入主页duration_ms(int)
app_enter_foreground从后台切回前台
app_enter_background切到后台connection_status(connected/disconnected)
🔗 VPN 连接
事件名触发时机附加参数
vpn_connect_tap点击连接按钮selected_node(string), is_auto_select(bool)
vpn_connect_successVPN 隧道建立成功node_id, node_country, connect_duration_ms
vpn_connect_fail连接失败node_id, error_code, error_msg
vpn_disconnect_tap手动点击断开session_duration_sec, traffic_used_bytes
vpn_disconnect_auto被动断开reason(quota_exhausted/network_lost), session_duration_sec
vpn_reconnect断线后自动重连成功node_id, reconnect_count
🎬 任务墙(免费流量)
事件名触发时机附加参数
task_page_view进入免费流量页
task_video_start点击观看激励视频video_count_today(int)
task_video_complete视频播放完成,发放奖励reward_mb(int), video_count_today
task_checkin_tap点击签到完成reward_mb(int)
task_share_tap点击分享按钮platform(telegram/whatsapp/copy)
task_share_complete分享完成返回,发放奖励reward_mb(int)
task_invite_entry_tap点击邀请好友入口
👥 邀请系统
事件名触发时机附加参数
invite_page_view进入邀请页email_bound(bool)
invite_share_tap点击分享按钮(Telegram/WhatsApp/复制)channel(telegram/whatsapp/copy)
invite_code_submit被邀请人提交邀请码code(string), success(bool)
📧 账号 / 邮箱登录
事件名触发时机附加参数
profile_page_view进入个人资料页email_bound(bool)
account_page_view进入账号页email_bound(bool)
email_send_code点击发送验证码email_domain, is_resend(bool)
email_verify_success验证码校验通过action(bind/recover)
email_verify_fail验证码校验失败reason(invalid/expired)
account_bind_success新邮箱绑定成功
account_recover_success已有邮箱找回老账号成功
account_login_other_device本设备被新设备登录踢下线
account_logout用户主动退出登录
📊 流量配额
事件名触发时机附加参数
quota_warning剩余流量低于 20%remaining_mb, total_mb
quota_exhausted流量用完,VPN 被断开total_used_mb
quota_refresh_tap点击流量刷新按钮remaining_mb, total_mb
get_traffic_tap点击"获取流量"按钮跳转免费页source(home_quota)
📢 广告 (AdMob)
事件名触发时机附加参数
ad_banner_impression主页 Banner 广告成功展示ad_unit_id, ad_format(banner)
ad_banner_click点击 Banner 广告ad_unit_id
ad_banner_failBanner 广告加载失败error_code
ad_rewarded_impression激励视频广告展示(任务墙)ad_unit_id, ad_format(rewarded)
📋 上报策略
策略说明
上报方式实时上报,失败时本地缓存,下次启动重发
批量合并5s 内的事件合并为一次请求
离线缓存无网络时本地存储,上限 1000 条,FIFO 淘汰
核心转化漏斗:app_launch → vpn_connect_tap → vpn_connect_success → task_page_view → task_video_complete → invite_page_view → invite_share_tap。关注每步流失率。