Framer インテグレーション
Site Settings → Custom Code から任意の Framer サイトに Zenovay を追加します。スニペットは公開済みサイトでのみ動作します。プレビューで Custom Code が無視されるのは正常な動作です。
Custom Code は Framer の有料プラン(Mini 以上)すべてで利用できます。無料の Framer サイトにはサードパーティスクリプトを追加できません。
クイックスタート
| ステップ | 場所 | 操作 |
|---|---|---|
| 1 | Zenovay ダッシュボード | トラッキングスニペットをコピーする |
| 2 | Framer → Site Settings → General → Custom Code | Start of <head> tag に貼り付ける |
| 3 | 公開する | 右上の Publish をクリックする |
| 4 | Zenovay ダッシュボード | 約 30 秒以内にリアルタイムビジターが表示される |
方法 1: サイト全体の Custom Code(推奨)
Framer の Custom Code パネルは、すべての公開済みページに HTML を直接注入します。アナリティクスやマーケティングタグに対して Framer が推奨するアプローチです。
手順
- Framer でプロジェクトを開きます。
- Site Settings(左パネル上部のギアアイコン)をクリックします。
- まだ開いていない場合は General タブを開きます。
- Custom Code までスクロールします。
- Start of
<head>tag に以下を貼り付けます。
<script defer data-tracking-code="YOUR_TRACKING_CODE" src="https://api.zenovay.com/z.js"></script>
- フィールドの外をクリックすると自動保存されます。
- エディターの右上の Publish をクリックします。Custom Code はプレビュー URL には適用されません。公開済みのライブサイトにのみ適用されます。
確認する
プライベートブラウザウィンドウで公開済み Framer URL(*.framer.app またはカスタムドメイン)を開き、ソースを確認します。<head> の先頭付近に <script defer data-tracking-code=...> が表示されているはずです。Zenovay の リアルタイムビュー に約 30 秒以内に自分のアクセスが表示されます。
方法 2: ページ固有の Custom Code
ページ固有のトラッキング(例: キャンペーンランディングページのみ)には、Framer はページごとの Custom Code も提供しています。
- Pages パネルでページを選択します。
- ページの右側パネルを開いて Custom Code までスクロールします。
- そのページの Start of
<head>tag にスニペットを貼り付けます。 - 公開します。
ページごとの Custom Code はサイト全体のコードの後に追加されます。両方にトラッカーを貼り付けると二重カウントになります。
カスタムイベントをトラッキングする
Framer はページを React SPA としてレンダリングしますが、トラッカーは SPA ナビゲーションを自動的に処理します(history.pushState をリッスンします)。カスタムイベントについては、任意の Framer Code Override または Code Component から window.zenovay() を呼び出せます。
Code Override を使って CTA クリックをトラッキングする
Framer で新しい Code Override を作成します。
import type { ComponentType } from 'react';
export function withCtaTracking(Component): ComponentType {
return (props) => {
return (
<Component
{...props}
onClick={(e) => {
props.onClick?.(e);
// @ts-ignore – global injected by tracker
window.zenovay?.('track', 'cta_clicked', {
location: props.id || 'unknown',
page: typeof window !== 'undefined' ? window.location.pathname : '',
});
}}
/>
);
};
}
Frame → Code Overrides → withCtaTracking から CTA フレームにオーバーライドを適用します。
フォーム送信をトラッキングする
Framer Forms は非表示の iframe を通じて送信されます。Code Override またはページルートに付加したグローバルオーバーライドでフォームの submit イベントをリッスンします。
import { useEffect } from 'react';
export function useTrackFormSubmits() {
useEffect(() => {
const handler = (e: Event) => {
const form = e.target as HTMLFormElement;
if (!form?.matches('form')) return;
// @ts-ignore
window.zenovay?.('track', 'form_submitted', {
form_id: form.id || form.getAttribute('name') || 'unnamed',
page: window.location.pathname,
});
};
document.addEventListener('submit', handler, true);
return () => document.removeEventListener('submit', handler, true);
}, []);
return null;
}
ログインユーザーを識別する(Framer Auth またはサードパーティを使用している場合)
Framer を外部認証プロバイダー(Memberstack・Outseta・Clerk など)に接続している場合は、認証プロバイダーの onSignIn コールバックから window.zenovay('identify', ...) を呼び出します。Framer にはフックできるネイティブ認証がありません。
プラン要件
| プラン | Custom Code | カスタムドメイン |
|---|---|---|
| Free | ❌ | ❌ |
| Mini | ✅ | ✅ |
| Basic | ✅ | ✅ |
| Pro | ✅ | ✅ |
| Business | ✅ | ✅ |
よくある落とし穴
プレビューは Custom Code を無視します。 これは最も多い驚きの #1 です。Framer エディターのプレビュー(再生ボタン)は Custom Code なしでページをレンダリングします。Publish をクリックしてライブ URL でテストする必要があります。プレビューをテストすると常に「Zenovay スクリプトが読み込まれていない」と表示されます。
localhost / カスタムドメイン。 Framer のホスティングを通じてカスタムドメインを使用している場合、Custom Code は *.framer.app と同様に機能します。Framer を静的 HTML としてエクスポートしてセルフホストする場合は、エクスポートされた index.html にスニペットを手動で貼り付ける必要があります。現在、Framer の静的エクスポートにはバンドルに Custom Code が含まれていません。
SPA ナビゲーションは処理されます。 Framer は内部で React を使用しています。Zenovay トラッカー(v2 以上)は history.pushState をリッスンし、すべてのルート変更時にページビューを発火するため、window.zenovay('trackPageView') を手動で呼び出す必要はありません。
遅延読み込みセクション。 Framer の「スクロールで表示」パターンはトラッカーに影響しません。スクリプトは <head> に存在し、セクションの可視性に関係なく最初のペイント時に実行されます。
テストモードのノイズ。 Framer の CMS プレビューは ?framer-publish=true クエリ文字列付きでページを読み込みます。エディターのトラフィックを除外したい場合は、Zenovay ダッシュボードの 保存済みセグメント でそのクエリ文字列をフィルタリングしてください。
トラブルシューティング
| 症状 | 考えられる原因 | 対処法 |
|---|---|---|
| プレビューでデータが表示されない | Custom Code は公開済みサイトでのみ動作する | Publish をクリックしてライブ URL でテストする |
| Free プランでデータがない | Custom Code が Free では無効 | Mini 以上にアップグレードする |
| 一部のページのみトラッキングされる | ページごとの Custom Code が上書きしている | サイト全体の Custom Code に移動する |
| ページビューが重複している | サイト全体とページごとの両方のスロットにスニペットがある | どちらか一方のスコープを選ぶ |
| イベントは発火するがページビューがない | トラッカーバージョンが v2 より古い(SPA サポートなし) | ダッシュボードからスニペットを再コピーする |
プライバシーとコンプライアンス
クッキーレストラッキングを行うには、data-cookieless="true" を追加します。
<script defer
data-tracking-code="YOUR_TRACKING_CODE"
data-cookieless="true"
src="https://api.zenovay.com/z.js"></script>
詳細については プライバシーコンプライアンス をご覧ください。
関連リソース
サポートが必要ですか? [email protected] までお問い合わせいただくか、ヘルプセンター をご覧ください。