如何按邮箱域名/自定义类别过滤Vercel Analytics访问指标?
如何在Vercel Analytics中区分内部/外部用户的页面访问指标
核心结论
Vercel原生Analytics不支持直接按邮箱域名或自定义用户类别过滤数据,但可以通过自定义事件追踪+维度筛选的方式实现需求。
具体实现步骤
1. 标记用户类别(内部/外部)
利用NextAuth获取登录用户的邮箱,通过域名判断用户类别:
- 内部用户:邮箱后缀为你的公司域名(如
@yourcompany.com) - 外部用户:其他域名邮箱
2. 发送带用户类别的自定义页面访问事件
通过@vercel/analytics包的track函数,在页面加载时发送包含用户类别的自定义事件。推荐在全局布局(App Router的layout.js或Pages Router的_app.js)中统一处理,覆盖所有页面:
// App Router 示例(layout.js) import { useSession } from 'next-auth/react'; import { track } from '@vercel/analytics/react'; import { useEffect } from 'react'; import { usePathname } from 'next/navigation'; export default function RootLayout({ children }) { const { data: session } = useSession(); const pathname = usePathname(); useEffect(() => { if (session?.user?.email) { // 判断用户类别 const isInternal = session.user.email.endsWith('@yourcompany.com'); const userType = isInternal ? 'internal' : 'external'; // 发送带用户类别的页面访问事件 track('page_view_custom', { user_type: userType, page: pathname }); } }, [session, pathname]); return ( <html lang="zh-CN"> <body>{children}</body> </html> ); }
3. 在Vercel Analytics中筛选数据
登录Vercel Dashboard进入你的项目,打开Analytics页面:
- 切换到「Events」标签,找到你发送的
page_view_custom事件 - 点击「Add Filter」,选择
user_type维度,设置筛选值为internal或external - 你可以创建自定义看板,添加基于
user_type的指标(如页面访问量、用户数),对比内部/外部用户的访问数据
补充说明
- 未登录用户会被自动排除(因为无法获取邮箱),如果需要统计未登录用户,可以在事件中额外添加
user_type: 'unauthenticated'的标记 - 确保
@vercel/analytics包已正确安装并完成初始化配置
内容的提问来源于stack exchange,提问作者hatemelseidy
相关产品推荐
相关产品推荐

