フォームの識別

SilentShield がフォームをどう区別しているか、そして共通のヘッダーやフッターにあるフォームが複数回数えられてしまう理由。

フォームが複数回現れる理由

各フォームにはキーが割り当てられ、設定したもの(保護、判定に応じた挙動)はすべてそのキーに紐づきます。フォームに識別できる手がかりがない場合、キーは見つかったページから導き出すしかありません。共通のヘッダーやフッターにあるフォームは、そのためページごとに別のキーになります。ページごとに 1 件ずつ現れ、設定はそのうち 1 件にしか及びません。

フォームに自分で名前を付ける

属性を 1 つ付けるだけで恒久的に解決します。他の何ものにも上書きされない唯一の識別方法です。お客様だけが管理できるからです。

<form data-ss-form="newsletter">
  <input type="email" name="email" required>
  <button type="submit">Subscribe</button>
</form>

フォームの内容がわかる名前を選び、変更せずに使い続け、別々のフォームには別々の名前を付けてください。この名前が訪問者に見えることはありません。以降はマークアップを変更しても、フィールドを追加しても、識別は変わりません。

マーカーがない場合に使うもの

マーカーがない場合は、フォームが備えている最初の安定した手がかりを使います。

識別方法意味
data-ss-formお客様がフォームに名前を付けた状態です。ページをまたいでも、デザイン変更後も安定します。
actionフォームが特定の宛先に送信しており、その宛先はどのページでも同じです。
idお客様自身が付けた id です。生成された id(React の「:r1:」や長い数字が続くもの)は、ページを読み込むたびに変わるため無視します。
nameフォームの name 属性です。
pathフォームを識別できるものが何もないため、見つかったページを使います。1 つのフォームが複数回数えられるのはこの場合です。

ページのパスで識別されたフォームは、設定という観点では次のページでは別のフォームです。マーカーを付けられるなら、それが解決策です。フォームページでは該当するものに印を付けているので、どれが対象かがわかります。

マークアップを変更できない場合

テーマやプラグイン由来で編集できないフォームは少なくありません。フォームページで、実際には 1 つのフォームである行を選んでまとめることができます。まとめたフォームの設定は、そのフォームが現れるすべての場所に適用されます。効果はマーカーと同じで、お客様のページではなく当社側に記録されます。

フォームが変わったときの扱い

フォームがより確かな識別方法を得た場合(マーカーを付けた、action 属性が加わった)、既存の行と設定内容をそのまま引き継ぎます。以前と同じフォームとして認識されます。変更前に記録された統計は古い識別に紐づいたままで、引き継がれません。

各フォームの識別方法と、名前の設定・フォームの統合は「API キー → フォーム」にあります。