分析

Plausible Analytics

在你的 Nuxt 应用中使用 Plausible Analytics。

Plausible Analytics 是一款针对 Nuxt 应用的隐私友好型分析解决方案,可让您跟踪网站流量,而不会损害用户的隐私。

在你的 Nuxt 应用中全局加载 Plausible Analytics 的最简单方法是使用 Nuxt 配置。或者,您可以直接使用 useScriptPlausibleAnalytics 组合式 API。

全局加载

如果您不打算发送自定义事件,可以使用 环境覆盖 来在开发环境中禁用脚本。

export default defineNuxtConfig({
  scripts: {
    registry: {
      plausibleAnalytics: {
        domain: 'YOUR_DOMAIN'
      }
    }
  }
})

useScriptPlausibleAnalytics

组合式 API useScriptPlausibleAnalytics 可让您对 Plausible Analytics 在网站上的加载时间和方式进行细粒度控制。

const plausible = useScriptPlausibleAnalytics({
  domain: 'YOUR_DOMAIN'
})

请遵循 注册表脚本 指南,了解有关高级用法的更多信息。

自托管 Plausible

如果您使用的是自托管版本的 Plausible,则需要为脚本提供显式的 src,以便 API 事件发送到正确的端点。

useScriptPlausibleAnalytics({
  scriptInput: {
    src: 'https://my-self-hosted-plausible.io/js/script.js'
  }
})

PlausibleAnalyticsApi

export interface PlausibleAnalyticsApi {
  plausible: ((event: '404', options: Record<string, any>) => void) &
  ((event: 'event', options: Record<string, any>) => void) &
  ((...params: any[]) => void) & {
    q: any[]
  }
}

配置模式

您必须在首次设置脚本时提供选项。

export const PlausibleAnalyticsOptions = object({
  domain: string(), // required
  extension: optional(union([union(extensions), array(union(extensions))])),
})

示例

仅在生产环境中使用 Plausible Analytics,同时使用 plausible 发送转换事件。

<script setup lang="ts">
const { proxy } = useScriptPlausibleAnalytics()

// noop in development, ssr
// just works in production, client
proxy.plausible('event', { name: 'conversion-step' })
function sendConversion() {
  proxy.plausible('event', { name: 'conversion' })
}
</script>

<template>
  <div>
    <button @click="sendConversion">
      Send Conversion
    </button>
  </div>
</template>