plausible
@nuxtjs/plausible

Plausible Analytics をネイティブに統合する Nuxt モジュール

Nuxt Plausible module

Nuxt Plausible

npm version

Nuxt 用の Plausible Analytics のネイティブ統合。

機能

  • 🌻 設定不要
  • 📯 コンポーザブルでイベントとページビューを手動でトラッキング
  • 🔀 広告ブロッカーを回避するためのオプションの API プロキシ
  • 📂 .env ファイルのサポート
  • 🧺 妥当なデフォルトオプション
  • 🦾 SSR対応

セットアップ

npx nuxi@latest module add plausible

基本的な使い方

@nuxtjs/plausible を Nuxt 設定の modules セクションに追加します。

// `nuxt.config.ts`
export default defineNuxtConfig({
  modules: ['@nuxtjs/plausible'],
})

完了!Plausible はアプリケーションのクライアントで実行されます。

!TIP デフォルトでは、@nuxtjs/plausible は Plausible の domain 設定キーに window.location.hostname を使用します。これはほとんどのユースケースに適しています。ドメインをカスタマイズする必要がある場合は、モジュールオプションで行うことができます。

設定

すべてのサポートされているモジュールオプションは、Nuxt 設定の plausible キーを使用して設定できます。

export default defineNuxtConfig({
  modules: ['@nuxtjs/plausible'],

  plausible: {
    // Prevent tracking on localhost
    ignoredHostnames: ['localhost'],
  },
})

!TIP localhost でイベントをトラッキングするには、ignoredHostnames オプションを空の配列に設定します。

ランタイム設定

または、実行時に環境変数を照合することで自動的に置き換えられるパブリックランタイム設定値を利用して、プロジェクトの .env ファイルに目的のオプションを設定します。

# Sets the `plausible.domain` option to `example.com`
NUXT_PUBLIC_PLAUSIBLE_DOMAIN=example.com

この設定では、Nuxt 設定の plausible キーを省略できます。

プロキシ設定

このモジュールは、Plausible のサーバーに直接送信する代わりに、Plausible イベントを Nitro サーバー経由でルーティングできるプロキシ API 機能を提供します。これは、広告ブロッカーが Plausible のドメインへのリクエストをブロックするのを防ぎたい場合に便利です。プロキシが有効になっている場合、トラッカーはリクエストを自動的に現在のオリジン経由でルーティングします。

プロキシ API を有効にするには、proxy オプションを true に設定します。

export default defineNuxtConfig({
  modules: ['@nuxtjs/plausible'],

  plausible: {
    proxy: true,
  },
})

!NOTE 有効にすると、すべての Plausible イベントはまずサーバーに送信され、そこから Plausible の API に転送されます。デフォルトのプロキシエンドポイントは /_plausible ですが、proxyBaseEndpoint モジュールオプションを使用してパスをカスタマイズできます。

モジュールオプション

オプションタイプデフォルト説明
有効ブール値trueトラッカーを有効にするかどうか。
ハッシュモードブール値falseURL ハッシュが変更されたときにページビューを追跡するかどうか。Nuxt アプリがデフォルトの履歴モードではなく hashMode ルーターオプションを使用している場合は、これを有効にします。
ドメイン文字列'window.location.hostname'追跡イベントをバインドするドメイン。
ignoredHostnamesstring[]['localhost']イベントを追跡する際に無視するホスト名。
ignoreSubDomainsブール値falseホスト名が ignoredHostnames のサブドメインである場合は無視します。
apiHost文字列https://#イベントが送信される API ホスト。
autoPageviewsブール値true現在のページとそれ以降のすべてのページを自動的に追跡します。ページビューの追跡を手動で管理したい場合は、これを無効にします。
autoOutboundTrackingブール値falseすべての外部リンククリックを自動的に追跡します。有効にすると、MutationObserver がアプリケーション全体でリンクノードを自動的に検出し、それらに click イベントをバインドします。
logIgnoredEventsブール値falseイベントが無視された場合、コンソールにイベントを記録します。
プロキシブール値falseイベントエンドポイントを現在のオリジン経由でプロキシするかどうか。
proxyBaseEndpoint文字列'/_plausible'Plausible イベントエンドポイントをプロキシするベースエンドポイント。

コンポーザブル

Nuxt エコシステムの他のコンポーザブルと同様に、自動インポートされ、アプリケーションのコンポーネントで使用できます。

!NOTE Plausible インスタンスはクライアントでのみ利用できるため、サーバーでコンポーザブルを実行しても効果はありません。

useTrackEvent

カスタムイベントを追跡します。目標の名前を引数 eventName として渡して、定義された目標を追跡します。

型宣言

function useTrackEvent(
  eventName: string,
  options?: EventOptions,
  eventData?: PlausibleOptions,
): void

// Tracks the `signup` goal
useTrackEvent('signup')

// Tracks the `Download` goal passing a `method` property.
useTrackEvent('Download', { props: { method: 'HTTP' } })

useTrackPageview

ページビューを手動で追跡します。

オプションのイベントデータを eventData 引数と共に送信します。Plausible の初期化中に提供されたデフォルトオプションとマージされた現在のページのデータがデフォルト値となります。

型宣言

function useTrackPageview(
  eventData?: PlausibleOptions,
  options?: EventOptions,
): void

💻 開発

  1. このリポジトリをクローンする
  2. corepack enable を使用して Corepack を有効にする
  3. pnpm installを使用して依存関係をインストールする
  4. pnpm run dev:prepare を実行します。
  5. pnpm run dev を使用して開発サーバーを起動します。

クレジット

ライセンス

MIT ライセンス © 2022-現在 Johann Schopplich