メインコンテンツへスキップ
無料3分初級

Ghost インテグレーション

Settings → Code Injection → Site Header から Ghost パブリケーションに Zenovay アナリティクスを追加します。セルフホストを含むすべての Ghost プランで動作します。

ghostcmsblogintegrationtracking-script
最終更新日:

任意の Ghost パブリケーションに 2 分で Zenovay を追加できます。Code Injection はセルフホスト Ghost CMS を含むすべての Ghost プランで利用可能です。アップグレードは不要です。

Code Injection はセルフホスト Ghost CMS を含むすべての Ghost プランで利用できます。カスタムテーマには default.hbs 内に {{ghost_head}} ヘルパーが必要です(ほとんどのテーマにはすでに含まれています)。

クイックスタート

  1. Zenovay ダッシュボードからトラッキングスニペットをコピーします。
  2. Ghost 管理画面で Settings → Code injection → Site Header を開きます。
  3. スニペットを貼り付けます。
  4. Save をクリックします。

インストール

Site Header injection(推奨)

  1. Ghost 管理画面にログインします(通常 https://your-site.com/ghost/)。
  2. Settings(ギアアイコン)をクリックします。
  3. Site → Code injection までスクロールします。
  4. Site Header ボックスに次のスニペットを貼り付けます。
<script defer data-tracking-code="YOUR_TRACKING_CODE" src="https://api.zenovay.com/z.js"></script>
  1. Save をクリックします。

投稿ごと / ページごとの注入

特定の投稿のみトラッキングする場合:

  1. エディターで投稿を開きます。
  2. 右上のギアアイコン(設定)をクリックします。
  3. Code injection を展開します。
  4. Post Header にスニペットを貼り付けます。
  5. 投稿を更新します。

サイト全体と投稿ごとの両方に貼り付けないでください。二重カウントになります。

インストールを確認する

  1. プライベートブラウザウィンドウで Ghost サイトを開きます。
  2. ソースを確認して <head> 内の <script defer data-tracking-code=...> を探します。
  3. Zenovay リアルタイムビュー を確認します。約 30 秒以内にアクセスが表示されます。

Ghost メンバーを識別する

Ghost は /members/api/member/ を通じて現在のメンバーを公開しています。すべてのページで識別します。

<script>
  fetch('/members/api/member/', { credentials: 'include' })
    .then(r => r.ok ? r.json() : null)
    .then(member => {
      if (member && window.zenovay) {
        window.zenovay('identify', member.uuid, {
          email: member.email,
          name: member.name,
          plan: member.subscriptions?.[0]?.plan?.nickname,
        });
      }
    })
    .catch(() => {});
</script>

ニュースレター登録をトラッキングする

Ghost サインアップフォームは標準の submit イベントを発行します。

<script>
  document.addEventListener('DOMContentLoaded', () => {
    document.addEventListener('submit', (e) => {
      const form = e.target;
      if (form?.matches('[data-members-form]')) {
        window.zenovay?.('track', 'signup', {
          form_type: form.dataset.membersForm || 'signup',
        });
      }
    }, true);
  });
</script>

有料サブスクリプションのクリックをトラッキングする

Ghost は data-portal 属性付きのポータルトリガーボタンをレンダリングします。

<script>
  document.addEventListener('click', (e) => {
    const target = e.target.closest('[data-portal]');
    if (target && window.zenovay) {
      window.zenovay('track', 'portal_opened', {
        action: target.dataset.portal,
      });
    }
  }, true);
</script>

有料メンバーシップの正確な収益アトリビューションには、Ghost の Stripe Webhook インテグレーションを使用して、サーバーサイドトラッキング経由で Stripe イベントを Zenovay に送信してください。

カスタム Ghost テーマを使用する

Code Injection は {{ghost_head}} Handlebars ヘルパーを通じてレンダリングされます。カスタムテーマを使用している場合は、default.hbs に以下が含まれていることを確認してください。

{{ghost_head}}

<head> 内の </head> の前に記述します。ほとんどのサードパーティ Ghost テーマ(Casper・Source・Edition など)にはデフォルトで含まれています。

トラブルシューティング

データなし、カスタムテーマ。 default.hbs{{ghost_head}} があるか確認してください。含まれていないと、Code Injection のレンダリング先がありません。

/amp/ URL でデータがない。 Ghost AMP インテグレーションを有効にしている場合、Code Injection は AMP バリアントに適用されません(AMP は任意のスクリプトを除去します)。AMP を無効化するか、AMP トラフィックがトラッキングされないことを受け入れてください。

ページビューが重複している。 Site Header と投稿ごとの Code Injection の両方にスニペットが貼り付けられています。どちらか一方のスコープを選んでください。

メンバーが識別されない。 古い Ghost バージョン(< 4.x)では /members/api/member/ が 404 を返します。Ghost インストールをアップグレードしてください。

プラン要件

Ghost エディションCode Injectionカスタムテーマ
Ghost(Pro) Starter❌(Casper のみ)
Ghost(Pro) Creator
Ghost(Pro) Team / Business
Self-hosted Ghost CMS

プライバシー

クッキーレストラッキングには data-cookieless="true" を追加します。

<script defer
        data-tracking-code="YOUR_TRACKING_CODE"
        data-cookieless="true"
        src="https://api.zenovay.com/z.js"></script>

Ghost 自身のメンバーアナリティクスはいずれにせよファーストパーティ Cookie を使用しているため、Zenovay をクッキーレスモードで重ねるのは一般的なパターンです。

次のステップ

この記事は役に立ちましたか?