フォームの識別
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 キー → フォーム」にあります。