分析
Fathom Analytics
在你的 Nuxt 应用中使用 Fathom Analytics。
Fathom Analytics 是一款适用于 Nuxt 应用的隐私分析解决方案。 它不会收集来自访客的个人数据,但会提供有关网站使用情况的详细见解。
全局加载
在你的 Nuxt 应用中全局加载 Fathom Analytics 最简单的方法是使用 Nuxt 配置,提供你的站点 ID 作为字符串。
export default defineNuxtConfig({
scripts: {
registry: {
fathomAnalytics: {
site: 'YOUR_TOKEN_ID'
}
}
}
})
Composable useScriptFathomAnalytics
Composable useScriptFathomAnalytics
可让你对 Fathom Analytics 在网站上的加载时间和方式进行精细控制。
useScriptFathomAnalytics(options)
默认值
- 触发器:当 Nuxt 完成 hydration 时,脚本将加载。
选项
export const FathomAnalyticsOptions = object({
/**
* The Fathom Analytics site ID.
*/
site: string(),
/**
* The Fathom Analytics tracking mode.
*/
spa: optional(union([literal('auto'), literal('history'), literal('hash')])),
/**
* Automatically track page views.
*/
auto: optional(boolean()),
/**
* Enable canonical URL tracking.
*/
canonical: optional(boolean()),
/**
* Honor Do Not Track requests.
*/
honorDnt: optional(boolean()),
})
此外,与所有注册表脚本一样,你可以提供额外的配置
scriptInput
- 要添加到脚本标签的 HTML 属性。scriptOptions
- 查看 脚本选项。 不支持打包,bundle: true
不会执行任何操作。
返回值
Fathom Analytics composable 会将 window.fathom
对象注入到全局作用域中。
export interface FathomAnalyticsApi {
beacon: (ctx: { url: string, referrer?: string }) => void
blockTrackingForMe: () => void
enableTrackingForMe: () => void
isTrackingEnabled: () => boolean
send: (type: string, data: unknown) => void
setSite: (siteId: string) => void
sideId: string
trackPageview: (ctx?: { url: string, referrer?: string }) => void
trackGoal: (goalId: string, cents: number) => void
trackEvent: (eventName: string, value: { _value: number }) => void
}
你可以直接作为代理访问 fathom
对象,或者等待 $script
promise 来访问该对象。 建议对任何 void 函数使用代理。
const { proxy } = useScriptFathomAnalytics()
function trackMyGoal() {
proxy.trackGoal('MY_GOAL_ID', 100)
}
示例
当 Nuxt 准备就绪时,通过 app.vue
加载 Fathom Analytics。
app.vue
<script setup>
useScriptFathomAnalytics({
site: 'YOUR_SITE_ID',
scriptOptions: {
trigger: 'onNuxtReady'
}
})
</script>