feat: Retention(留存)分析

1. 最受欢迎的功能
    - 哪些功能用户使用最频繁?
    - 新闻、事件、个股、模拟盘的使用对比
  2. 用户行为路径
    - 用户从哪里进入?
    - 在每个页面停留多久?
    - 从哪个环节流失?
  3. 内容偏好
    - 什么类型的新闻最受欢迎?
    - 用户关注哪些行业?
    - 哪些事件获得最多关注?

  Revenue(收入)转化

  1. 付费转化漏斗
  个人中心查看 →
  自选股/关注事件使用 →
  订阅页面查看 →
  升级按钮点击 →
  (付费转化)
  2. 模拟盘转化分析
  模拟盘进入 →
  搜索股票 →
  下单操作 →
  持续使用 →
  (付费转化)
This commit is contained in:
zdl
2025-10-29 11:48:29 +08:00
parent 1cf6169370
commit 78e4b8f696
4 changed files with 87 additions and 10 deletions

View File

@@ -49,6 +49,7 @@ import LineChart from '../../components/Charts/LineChart';
// 模拟盘账户管理 Hook
import { useTradingAccount } from './hooks/useTradingAccount';
import { useTradingSimulationEvents } from './hooks/useTradingSimulationEvents';
export default function TradingSimulation() {
// ========== 1. 所有 Hooks 必须放在最顶部,不能有任何条件判断 ==========
@@ -76,6 +77,15 @@ export default function TradingSimulation() {
getAssetHistory
} = useTradingAccount();
// 🎯 初始化模拟盘埋点Hook传入账户信息
const tradingEvents = useTradingSimulationEvents({
portfolio: account ? {
totalValue: account.total_assets,
availableCash: account.available_cash,
holdingsCount: positions?.length || 0
} : null
});
// 所有的 useColorModeValue 也必须在顶部
const bgColor = useColorModeValue('gray.50', 'gray.900');
const cardBg = useColorModeValue('white', 'gray.800');