アナリティクス
ファーストパーティのウェブアナリティクス — PostHog、Google Analytics、Plausible、Mixpanel、Segment ほか多数 — を blume.config.ts のアダプターとして設定できます。
Blume は blume.config.ts の analytics リストからアナリティクスを注入します。各エントリは blume/analytics からインポートしたアダプターです。アダプターはプロバイダーごとに 1 つずつ用意されており、アダプターがないものには script() を使用します。
import { defineConfig } from "blume";
import { googleAnalytics, plausible, posthog, vercel } from "blume/analytics";
export default defineConfig({
analytics: [
posthog({ key: "phc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }),
vercel(),
googleAnalytics({ id: "G-XXXXXXXXXX" }),
plausible({ domain: "docs.example.com" }),
],
});
アダプターは列挙した順に <head> へ出力され、いくつでも組み合わせることができます。すべてのアダプターは単純なデータです。アダプターが返す値は設定の他の部分とともに検証され、ビルドされたサイトにインライン化されます。そのため、任意の JSON 値を含めることはできますが、関数を含めることはできません。JSON で表現できないパススルーオプション(関数、undefined、bigint)は、ビルドから黙って消えるのではなく、そのパスを示して検証エラーになります。
アナリティクスが読み込まれるのは本番ビルドのみです。スクリプトは blume build によって出力され、blume dev では決して出力されません。そのため、ローカルのトラフィックがダッシュボードに届くことはなく、別途「開発用」プロジェクトを用意する必要もありません。
先に読者の同意を求めるには、consent を設定してください。設定すると、ここで紹介するすべてのアダプターは、読者がアナリティクスを許可するまで待機します。
以下で扱う識別子(プロジェクトキー、測定 ID、サイトトークンなど)はすべて、プロバイダー自身のインストールスニペットに含まれる、ブラウザ側で使われる公開用のものです。各アダプターはそのスニペットをレンダリングするだけなので、ドキュメントのリポジトリにコミットしても安全です。Blume がシークレットを要求することはありません。
アダプター
| アダプター | プロバイダー | 必須 |
|---|---|---|
adobe() |
Adobe Analytics | url |
amplitude() |
Amplitude | key |
clarity() |
Microsoft Clarity | id |
clearbit() |
Clearbit | key |
clics() |
Clics | projectId |
cloudflare() |
Cloudflare Web Analytics | token |
databuddy() |
Databuddy | clientId |
fathom() |
Fathom | site |
googleAnalytics() |
Google Analytics 4 | id |
googleTagManager() |
Google Tag Manager | id |
heap() |
Heap | id |
hightouch() |
Hightouch | key |
hotjar() |
Hotjar | id |
logrocket() |
LogRocket | id |
mixpanel() |
Mixpanel | token |
oneDollarStats() |
OneDollarStats | — |
pirsch() |
Pirsch | code |
plausible() |
Plausible | domain |
posthog() |
PostHog | key |
segment() |
Segment | key |
vercel() |
Vercel Web Analytics | — |
script() |
その他すべて | src または content |
Blume のドキュメントはクライアントサイドルーターを使用するため、ほとんどのナビゲーションはページ全体の読み込みではなく、ページ内の差し替えになります。すべてのアダプターはこれをページビューとしてカウントします。スクリプト自体が履歴の変更を追跡するプロバイダーでは追加の設定は不要で、実際のページ読み込みしかカウントしないプロバイダー(PostHog、Segment、Hightouch)では Blume 自身がページビューを送信します。例外は 2 つのタグマネージャーです。Google Tag Manager と Adobe は、何を発火させるかを独自のルールで決めるコンテナを読み込むため、コンテナに履歴変更のトリガーを設定してください。
PostHog
PostHog を追加するには、posthog() にプロジェクト API キーを渡します。ホストのデフォルトは PostHog Cloud US です。EU Cloud(https://eu.i.posthog.com)やセルフホストのインスタンスを使う場合は host を設定してください。
analytics: [
posthog({
key: "phc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
host: "https://us.i.posthog.com", // optional, this is the default
}),
],
Blume が対応付けるオプションは key と host の 2 つです(host は api_host になります)。それ以外に渡したもの — persistence、capture_pageview、autocapture、disable_session_recording、その他あらゆる posthog.init オプション — は、そのまま posthog.init に転送されます。
Blume がクライアントルーターによる各ナビゲーションで $pageview を送信するのは、PostHog がページ読み込みのみをキャプチャしている場合に限られます。これは capture_pageview と defaults のどちらも設定していないときの PostHog の動作です。capture_pageview: "history_change" を設定した場合、または PostHog の現在のスニペットにある "2025-05-24" のような defaults の日付を設定した場合は、PostHog 自身がナビゲーションをキャプチャするため、Blume は追加で何も送信しません。capture_pageview: false の場合は、ページビューは一切送信されません。
Vercel Web Analytics
Vercel Web Analytics を追加するには vercel() を追加します。Blume は Vercel 公式の Astro コンポーネントをレンダリングします。このコンポーネントは、Vercel ダッシュボードでプロジェクトの Web Analytics を有効にすると、あなた自身のドメインから配信されるファーストパーティスクリプトを注入します。
analytics: [vercel()],
キーは不要です — スクリプトはデプロイ先のプロジェクトにレポートします。これは /_vercel/insights エンドポイントが存在する Vercel のデプロイでのみデータを収集します。渡したオプションはすべて props としてコンポーネントに転送されます(mode、debug、endpoint、scriptSrc など)。beforeSend は関数であり設定を経由して渡せないため、代わりに script() アダプターから window.webAnalyticsBeforeSend に代入してください。
Cloudflare Web Analytics
Cloudflare Web Analytics には 2 つのセットアップ方法があり、アダプターが必要なのはそのうち一方だけです。
プロキシされたゾーン(自動セットアップ)。 Cloudflare がサイトを配信している場合(カスタムドメインを持つ Worker、Pages、またはオレンジ色の雲が有効になっている任意のゾーン)は、Cloudflare ダッシュボードでそのゾーンの Web Analytics を有効にするだけで完了です。Cloudflare がエッジでビーコンを注入するため、cloudflare() は含めないでください。併せて列挙すると、すべてのページビューが二重にカウントされます。
その他のホスト(手動セットアップ)。 Cloudflare がプロキシしていないサイトの場合は、ダッシュボードの Web Analytics でサイトを追加し、表示される JS スニペットからトークン(data-cf-beacon 内の token)をコピーして、ここに指定してください。Blume はスニペットと同じビーコンタグをレンダリングします。
analytics: [
cloudflare({
token: "0123456789abcdef0123456789abcdef",
}),
],
オプションオブジェクト全体がビーコンの data-cf-beacon JSON になるため、その他のビーコン設定(spa など)もそのまま渡されます。
Google Analytics 4
GA4 ウェブデータストリームの測定 ID(G-…。プロパティの[管理]→[データストリーム]にあるストリームの詳細に表示されます)を googleAnalytics() に渡します。Blume は、ストリームのインストール手順とまったく同じ形で Google タグをレンダリングします。つまり、非同期の gtag.js ローダーに加えて、dataLayer の初期化と config の呼び出しです。
analytics: [
googleAnalytics({
id: "G-XXXXXXXXXX",
anonymize_ip: true, // optional: any other `config` parameter
}),
],
Blume が対応付けるオプションは id だけです。それ以外に渡したものは、そのまま gtag('config', …) の呼び出しに含まれます(send_page_view、cookie_domain、debug_mode など)。GA4 の拡張計測機能はデフォルトで履歴の変更をページビューとしてカウントするため、クライアントサイドのナビゲーションも追加の設定なしで計測されます。Google Analytics に新しいデータが表示されるまでには 1〜2 日かかります。Google Analytics Debugger 拡張機能を使うと、リクエストが送信されるたびにその場で確認できます。
Google Tag Manager
コンテナ ID(GTM-…。ワークスペースのヘッダーに表示されます)を googleTagManager() に渡します。Blume はコンテナスニペットのうち <head> 側の部分をレンダリングします。<noscript> の iframe は JavaScript が無効なブラウザ向けのものであり、そうしたブラウザではそもそもアナリティクスが実行されません。
analytics: [
googleTagManager({
id: "GTM-XXXXXXX",
dataLayer: "dataLayer", // optional, this is the default
}),
],
どのタグを何をきっかけに発火させるかは、コンテナの設定で決まります。クライアントサイドのナビゲーションは履歴の変更としてコンテナに届くため、ページビューのタグはページ読み込みのトリガーではなく履歴の変更(History Change)トリガーから発火させてください。Cookie 同意バナーもコンテナ内でご自身で設定してください。
Plausible
Plausible に追加したドメインを plausible() に渡します。セルフホストまたはプロキシ経由のインスタンスの場合は、host にそのオリジンを設定してください。デフォルトは Plausible Cloud です。
analytics: [
plausible({
domain: "docs.example.com",
host: "https://plausible.example.com", // optional, defaults to https://plausible.io
}),
],
domain は data-domain になり、host は /js/script.js の読み込み元を決めます。その他のオプションはそれぞれタグ上の個別の data- 属性になります(api: "/api/event" → data-api)。ファイル名に追加機能が組み込まれたスクリプトのバリアント(script.outbound-links.js など)は別のタグになるため、script() で読み込んでください。
Clics
Clics ダッシュボードの Configure → Tracking にあるプロジェクト ID を clics() に渡します。Blume は、必須の data-project-id 属性を付けて Clics ブラウザトラッカーを追加します。
import { clics } from "blume/analytics";
analytics: [clics({ projectId: "YOUR_PROJECT_ID" })],
トラッカーは、Blume のクライアントルーターによるものも含め、ページ読み込みとクライアントサイドのナビゲーションを自動的にカウントするため、ページビュー用のフックを別途追加しないでください。また、デフォルトで外部リンクも追跡します。これらのイベントをオフにするには disableOutboundLinks: true を設定してください。本番ビルドを localhost でプレビューする場合は allowLocalhost: true を設定してください。通常の blume dev ではアナリティクスは読み込まれません。
Blume のカスタムイベントは Clics には届きません。Clics のブラウザトラッカーには、イベントの転送先となるグローバルなイベント関数がないためです。独自のイベントを送信するには、ご自身のクライアントコードから @clicsdev/tracker の track() ヘルパーを呼び出してください。
Fathom
サイト ID(Fathom のサイトのスクリプト設定で確認できます)を fathom() に渡します。
analytics: [
fathom({
site: "ABCDEFGH",
"honor-dnt": "true", // optional: any other `data-` setting
}),
],
site は data-site になります。その他のオプションはそれぞれ文字列として、タグ上の個別の data- 属性になります(honor-dnt、excluded-domains、canonical など)。spa のデフォルトは "auto" で、これにより Fathom がクライアントルーターによるナビゲーションをカウントします。上書きするには独自の spa の値を渡してください。
Pirsch
識別コード(Pirsch の Settings → Developer → Identification Code)を pirsch() に渡します。
analytics: [
pirsch({
code: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
}),
],
code は data-code になります。また、Blume はタグに pianjs という id を付与します。Pirsch のスクリプトはこの id を使って自身のタグを見つけます。その他のオプションはそれぞれ個別の data- 属性になります(dev、exclude、include、domain、endpoint など)。
Databuddy
クライアント ID(Databuddy のウェブサイト設定で確認できます)を databuddy() に渡します。
analytics: [
databuddy({
clientId: "xxxxxxxxxxxxxxxxxxxxx",
"track-web-vitals": "true", // optional: any other `data-` setting
"skip-patterns": '["/admin/*"]',
}),
],
clientId は data-client-id になります。その他のオプションはそれぞれタグ上の個別の data- 属性になるため、属性名と同じケバブケースで指定してください(track-web-vitals、track-errors、track-outgoing-links、api-url など)。trackWebVitals のようなキャメルケースの名前は Databuddy に無視されます。値は文字列です。オン/オフの切り替えには "true" または "false" を、skip-patterns と mask-patterns には JSON 配列を指定してください。それ以外の形式のリスト値は、Databuddy では空として扱われます。
OneDollarStats
OneDollarStats にサイトのドメインを追加してから、oneDollarStats() をリストに追加します。OneDollarStats はイベントの送信元ドメインによってイベントをサイトに対応付けるため、キーは不要です。
analytics: [oneDollarStats()],
各オプションはそれぞれタグ上の個別の data- 属性になります。値は文字列です。
hostnameを設定すると、localhostだけでなくすべてのホストで、すべてのイベントがそのホスト名(https://やパスを含まないdocs.example.comの形式)でレポートされます。そのため、プレビューデプロイやステージング環境もそのサイトのトラフィックとしてカウントされます。すべてのビルドをその名前でレポートすべき場合を除き、設定しないでください。devmode: "true"をhostnameと組み合わせると、ローカルのblume previewからイベントを送信できます。localhostでは両方を設定しない限りトラッカーは何も送信しないため、これらはコミットする設定には含めないでください。urlはサイトの URL ではなく、イベントの送信先となるコレクターのエンドポイントです(デフォルトはhttps://collector.onedollarstats.com/events)。autocollect: "false"を指定すると、ページビューの自動計測がオフになります。"hash-routing": "true"を指定すると、目次のクリックのように#fragmentだけが変わる場合も含め、すべてのナビゲーションでページビューを送信します。トラッカーはこの属性が存在するだけでハッシュルーティングを有効にするため、"false"の場合 Blume はこの属性を出力しません。
Mixpanel
プロジェクトトークン(Mixpanel のプロジェクト設定 → Access Keys)を mixpanel() に渡します。プロジェクトで EU またはインドのデータレジデンシーを使用している場合は、それに合わせて region を設定してください。設定しないと Mixpanel がイベントを破棄します。
analytics: [
mixpanel({
token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
region: "eu", // optional: "us" (default), "eu", or "in"
}),
],
Blume が対応付けるオプションは token と region です(region は api_host になります)。また、Blume は track_pageview を "url-with-path-and-query-string" に設定するため、ライブラリ自身が各ナビゲーションを追跡します。それ以外に渡したもの(track_pageview を含む)は、そのまま mixpanel.init に転送されます(persistence、autocapture、record_sessions_percent など)。
Amplitude
プロジェクト API キー(Amplitude のプロジェクト設定で確認できます)を amplitude() に渡します。Blume は Browser SDK のスクリプトローダースニペット、つまりキー付きの SDK バンドルと init の呼び出しをレンダリングします。
analytics: [
amplitude({
key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
serverZone: "EU", // optional: any other `init` option
}),
],
Blume が対応付けるオプションは key だけです。init のオプションは、ダッシュボードのスニペットに含まれる値 — autocapture: true と fetchRemoteConfig: true — が初期値になり、それ以外に渡したものはその上にそのままマージされます。Autocapture はページビューと履歴の変更を対象とするため、クライアントサイドのナビゲーションもカウントされます。
Segment
Segment の JavaScript ソースの書き込みキーを segment() に渡します。広告ブロッカーを回避するために analytics.js をカスタムドメインから配信している場合は、cdn にそのオリジンを設定してください。
analytics: [
segment({
key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
cdn: "https://cdn.example.com", // optional, defaults to https://cdn.segment.com
}),
],
Blume が対応付けるオプションは key と cdn です。スニペットは cdn からライブラリを読み込み、インテグレーションも同じ場所から取得するよう指示します。それ以外に渡したものは、そのまま analytics.load のオプションとして転送されます(integrations など)。
Hightouch
Hightouch のイベントソースの書き込みキーを hightouch() に渡します。イベント API ホストのデフォルトは US East リージョンです。ワークスペースが別のリージョンを使用している場合は、host(スキームなし)を設定してください。
analytics: [
hightouch({
key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
host: "us-east-1.hightouch-events.com", // optional, this is the default
}),
],
Blume が対応付けるオプションは key と host です(host は apiHost になります)。それ以外に渡したものは、そのまま htevents.load のオプションとして転送されます。
Heap
アプリ ID(Heap のプロジェクトのインストール設定にある環境 ID)を heap() に渡します。
analytics: [
heap({
id: "1234567890",
disableTextCapture: true, // optional: any other `heap.load` option
}),
],
Blume が対応付けるオプションは id だけです。それ以外に渡したものは、そのまま heap.load の設定オブジェクトになります。
Hotjar
サイト ID(Hotjar のサイトのトラッキングコードに含まれる数値)を hotjar() に渡します。
analytics: [
hotjar({
id: 1234567,
version: 6, // optional, this is the default
}),
],
id は Hotjar のトラッキングコードにおける hjid、version は hjsv に相当します。このアダプターはそれ以外のオプションを受け付けません。
Microsoft Clarity
プロジェクト ID(Clarity のプロジェクトのトラッキングコードで確認できます)を clarity() に渡します。
analytics: [
clarity({
id: "xxxxxxxxxx",
}),
],
このアダプターはそれ以外のオプションを受け付けません。Clarity の設定はダッシュボードで行います。
LogRocket
アプリ ID(org/app。LogRocket のプロジェクト設定で確認できます)を logrocket() に渡します。Blume はインストールスニペット、つまり SDK と、ガード付きの LogRocket.init の呼び出しをレンダリングします。
analytics: [
logrocket({
id: "your-org/your-app",
release: "1.2.0", // optional: any other `init` option
}),
],
Blume が対応付けるオプションは id だけです。それ以外に渡したものは、そのまま LogRocket.init に転送されます(release、console、network、dom など)。リクエストやレスポンスのサニタイザーは関数であり、設定を経由して渡せません。その場合はこのアダプターを使わず、script() アダプターからご自身で LogRocket.init を呼び出してください。
Clearbit
公開可能な API キー(pk_…)を clearbit() に渡します。Blume は Clearbit タグをレンダリングし、このタグが Clearbit で管理しているタグ(Reveal、フォームなど)を読み込みます。
analytics: [
clearbit({
key: "pk_xxxxxxxxxxxxxxxx",
}),
],
このアダプターはそれ以外のオプションを受け付けません。
Adobe Analytics
Launch(Adobe Experience Platform Tags)環境の埋め込みスクリプト URL を adobe() に渡します。Data Collection の Environments にある、その環境のインストール手順からコピーしてください。本番環境の URL は https://assets.adobedtm.com/…/launch-….min.js のような形式です。
analytics: [
adobe({
url: "https://assets.adobedtm.com/xxxxxxxx/launch-xxxxxxxx.min.js",
}),
],
Blume はスクリプトを非同期で読み込みます。何を追跡するかはプロパティのルールで決まります。クライアントサイドのナビゲーションではページが再読み込みされないため、プロパティに履歴の変更をトリガーとするルールを設定してください(または script() アダプターから _satellite.track を呼び出してください)。
カスタムスクリプト
アダプターのないプロバイダーや、アダプターがレンダリングしない形式のプロバイダーのタグを読み込むには script() を使用します。それぞれが 1 つの <script> タグをレンダリングし、src(外部)または content(インライン)のどちらか一方だけを設定する必要があります。
analytics: [
// Umami
script({
src: "https://cloud.umami.is/script.js",
strategy: "defer",
attributes: { "data-website-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" },
}),
// An inline snippet
script({
content: "console.log('analytics ready')",
}),
],
attributes はタグに展開される追加の HTML 属性(data-*、id など)のマップで、strategy は外部スクリプトに async または defer を追加します。
ルート相対の src は public/ 内のファイルを指します(public/js/redirects.js なら src: "/js/redirects.js")。そのため、deployment.base を設定している場合は、リンクと同様にベースが付加されます。たとえば base: "/docs" の場合、タグは /docs/js/redirects.js を読み込みます。すでにベースで始まっている src は記述どおりのまま残り、絶対 URL やプロトコル相対 URL はそのまま渡されます。そのため、サイトのベースの外から配信されるスクリプトは完全な URL で指定してください。
オプション
| アダプター | オプション | デフォルト | 説明 |
|---|---|---|---|
adobe() |
url |
— | Launch 環境の埋め込みスクリプト URL。必須です。 |
amplitude() |
key |
— | Amplitude のプロジェクト API キー。必須です。 |
amplitude() |
その他すべて | autocapture: true、fetchRemoteConfig: true |
そのまま amplitude.init のオプションにマージされます。 |
clarity() |
id |
— | Clarity のプロジェクト ID。必須です。 |
clearbit() |
key |
— | Clearbit の公開可能な API キー。必須です。 |
clics() |
projectId |
— | Clics の公開プロジェクト ID。必須です。 |
clics() |
allowLocalhost |
false |
本番ビルドをローカルでプレビューするために data-allow-localhost を出力します。 |
clics() |
disableOutboundLinks |
false |
data-disable-outbound-links を出力して、外部リンクの追跡を停止します。 |
cloudflare() |
token |
— | Cloudflare Web Analytics のサイトトークン(手動セットアップ)。必須です。 |
cloudflare() |
その他すべて | — | そのままビーコンの data-cf-beacon JSON に含めて転送されます。 |
databuddy() |
clientId |
— | Databuddy のクライアント ID。必須です。 |
databuddy() |
その他すべて | — | タグ上の data- 属性としてレンダリングされます。 |
fathom() |
site |
— | Fathom のサイト ID。必須です。 |
fathom() |
spa |
"auto" |
Fathom の履歴変更トラッキング(data-spa)。 |
fathom() |
その他すべて | — | タグ上の data- 属性としてレンダリングされます。 |
googleAnalytics() |
id |
— | GA4 の測定 ID。必須です。 |
googleAnalytics() |
その他すべて | — | そのまま gtag('config', …) の呼び出しに含めて転送されます。 |
googleTagManager() |
id |
— | Tag Manager のコンテナ ID。必須です。 |
googleTagManager() |
dataLayer |
dataLayer |
コンテナが読み取るデータレイヤーのグローバル変数名。 |
heap() |
id |
— | Heap のアプリ ID。必須です。 |
heap() |
その他すべて | — | そのまま heap.load の設定として転送されます。 |
hightouch() |
key |
— | Hightouch のイベントソースの書き込みキー。必須です。 |
hightouch() |
host |
us-east-1.hightouch-events.com |
イベント API ホスト(スキームなし)。 |
hightouch() |
その他すべて | — | そのまま htevents.load のオプションとして転送されます。 |
hotjar() |
id |
— | Hotjar のサイト ID(hjid)。必須です。 |
hotjar() |
version |
6 |
トラッキングコードのバージョン(hjsv)。 |
logrocket() |
id |
— | LogRocket のアプリ ID(org/app)。必須です。 |
logrocket() |
その他すべて | — | そのまま LogRocket.init に転送されます。 |
mixpanel() |
token |
— | Mixpanel のプロジェクトトークン。必須です。 |
mixpanel() |
region |
us |
データレジデンシーのリージョン:us、eu、in のいずれか。 |
mixpanel() |
その他すべて | track_pageview: "url-with-path-and-query-string" |
そのまま mixpanel.init のオプションにマージされます。 |
oneDollarStats() |
hostname |
— | すべてのホストで、すべてのイベントのレポートに使われるホスト名(スキームやパスなし)。 |
oneDollarStats() |
その他すべて | — | タグ上の data- 属性としてレンダリングされます("hash-routing": "false" は出力されません)。 |
pirsch() |
code |
— | Pirsch の識別コード。必須です。 |
pirsch() |
その他すべて | — | タグ上の data- 属性としてレンダリングされます。 |
plausible() |
domain |
— | Plausible に登録したサイトのドメイン。必須です。 |
plausible() |
host |
https://plausible.io |
セルフホストまたはプロキシ経由のインスタンスのオリジン。 |
plausible() |
その他すべて | — | タグ上の data- 属性としてレンダリングされます。 |
posthog() |
key |
— | PostHog のプロジェクト API キー。必須です。 |
posthog() |
host |
https://us.i.posthog.com |
PostHog の取り込みホスト(EU Cloud またはセルフホスト)。 |
posthog() |
その他すべて | — | そのまま posthog.init に転送されます。 |
segment() |
key |
— | Segment のソースの書き込みキー。必須です。 |
segment() |
cdn |
https://cdn.segment.com |
Segment の CDN をプロキシするカスタムドメインのオリジン。 |
segment() |
その他すべて | — | そのまま analytics.load のオプションとして転送されます。 |
vercel() |
mode、debug など |
— | props として公式の Astro コンポーネントに転送されます。 |
script() |
src |
— | 外部スクリプトの URL。content とは排他的です。 |
script() |
content |
— | インラインスクリプトの本文。src とは排他的です。 |
script() |
strategy |
— | 外部スクリプトに対する async または defer。 |
script() |
attributes |
— | <script> タグに展開される追加の HTML 属性。 |
カスタムイベント
Blume のページフィードバック(feedback、および記述式フィードバックが有効な場合は feedback_comment)、検索(search、search_select)、アシスタント(ask、ask_answer、ask_error)、ナレーションプレーヤー(narration_play、narration_complete)は、クライアント API を持つ設定済みのすべてのアダプター — PostHog、Mixpanel、Heap、Segment、Hightouch、Amplitude、LogRocket、Adobe、Google Analytics、Google Tag Manager(window.dataLayer への { event } の push として)、Plausible、Databuddy、Fathom、OneDollarStats(各プロパティの値は文字列として)、Pirsch、Clarity、Hotjar、Vercel — を通じてカスタムイベントを送信します。Fathom、Clarity、Hotjar はイベント名しか受け取らないため、各イベントはプロパティなしでカウントされます。Cloudflare と Clearbit にはイベント API がなく、Clics には Blume が呼び出せるグローバルなイベント API がありません。また、すべてのイベントは detail に { event, props } を持つ blume:track CustomEvent として window 上でも発火するため、script() アダプターを使えば他の任意の送信先に転送できます。アシスタントが質問のテキストをプロバイダーに送信することはありません。検索はクエリを入力されたとおりに送信しますが、search.analytics.queries を false に設定すると、代わりに各クエリの長さを送信します。いずれの場合もテキスト自体は blume:track イベントに含まれるため、ご自身で作成したリスナーから転送できます。ビルドしたサイトのデプロイについては、デプロイを参照してください。