Amazonで商品を見る セール会場へ

Snow Monkey Forms│計測タグを仕込む方法

LPなどはお問い合わせフォームとサンクスページに計測タグを仕込んでCV率など計測することがあると思います。

Snow Monkey Formsでの計測タグを仕込む方法を書いておきます。

Snow Monkey Forms の設定・カスタマイズ方法はこちらにまとめています。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

計測未設定・失敗・応答待ちを分けて試す

掲載コードの初期状態では、計測せずに送信完了後の移動だけを行います。

導入先の計測処理を設定した後は、成功時に成果が1件だけ記録されることを利用サービス側で確認します。

計測処理が失敗した場合と応答を返さない場合も試し、送信完了後のページ移動が止まらないことを確認します。

実HTTP通信の隔離検証では、未設定の処理に加え、計測処理だけを失敗・応答待ちへ置き換えた条件でも移動しました。

確認画面とメール処理の失敗時には、元のフォーム画面へ留まりました。

この検証は計測サービスへの送信や成果件数を確認したものではありません。

通常の移動だけで足りる場合は、サンクスページへの転送方法を使います。

送信完了イベントから自サイトの完了ページへ移動した実画面
2026年10月2日撮影。WordPress 7.1.2・SWELL 2.19.0・Snow Monkey Forms 13.0.0の隔離環境。計測未設定の掲載コードでも送信完了後に同じ移動先へ到達しました。

Snow Monkey Formsで計測タグを仕込む方法

やりかたは簡単です。

まずはサンクスページを作成しておきましょう。

固定記事(/thanks)を作成するだけです。

下記の記事でも似たようなことをしています。

子テーマのfunctions.phpまたはPHPスニペットのどちらか一方へ追加します。フォームIDとサンクスページのパスを変更してください。送信完了後の転送を別コードでも登録している場合は重複を解消します。

エラーが怖い人はCode Snippetsのプラグインを入れて、そこからコードを挿入しましょう。

掲載コードは送信完了後の処理順を示す骨組みです。初期状態では計測しません。trackCompletionへ使用サービスの処理を実装すると、成功・失敗・最大1.5秒の待機後に自サイトのサンクスページへ移動します。

サンプルコード

add_action( 'wp_enqueue_scripts', function () {
    $thanks = wp_json_encode( home_url( '/thanks/' ) );
    $js = <<<JS
(() => {
  const bind = () => {
    const form = document.getElementById('snow-monkey-form-16'); // 実際のID
    if (!form) return;
    let handled = false;
    form.addEventListener('smf.submit', async event => {
      if (event.detail?.status !== 'complete' || handled) return;
      handled = true;
      let timer;
      try {
        await Promise.race([
          Promise.resolve().then(trackCompletion),
          new Promise(resolve => { timer = setTimeout(resolve, 1500); })
        ]);
      } catch (_) {
        // 計測の失敗で送信完了後の移動を止めない。
      } finally {
        clearTimeout(timer);
        window.location.assign($thanks);
      }
    });
  };
  function trackCompletion() {
    // 使用する計測サービスの公式仕様・同意状態に合わせて実装。
    // 未設定では計測せず、移動だけを行います。
    return Promise.resolve();
  }
  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', bind, {once:true});
  else bind();
})();
JS;
    wp_add_inline_script( 'snow-monkey-forms', $js, 'after' );
}, 11 );

計測地点の重複に注意してください。

サンクスページ到達とフォーム送信完了を同じ成果として二重計上しないよう、計測地点を1つ決めます。単なるサンクスページへの直接アクセス・再読込を送信成功と扱わないでください。サービスごとのタグ実装は公式仕様に従います。

以上です。

上記を応用して、ASP や自社計測のスクリプト(計測タグ)を仕込んでみてください。

SMFのcomplete通知だけで処理し、同じページ内の二重通知は無視します。計測がエラー・応答待ちでも転送を止めません。ただし1.5秒以内に計測が完了する保証はなく、失敗時に送信記録を補完する機能もありません。同意状態を確認し、名前・メール本文などを計測パラメーターへ入れないでください。実フォーム・利用サービスでの計測は別途検証が必要です。戻す場合は追加したコードを削除し、キャッシュを消します。

  • URLをコピーしました!

プラグインの設定でお困りなら

プラグインの導入・カスタマイズ代行

プラグインの選定から設定、競合の解消、動作に合わせた追加実装まで承ります。1時間 ¥8,000〜(税込)。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのカスタマイズのサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次