Shield · Events

Events reference

The standard event catalog, how auto-detection classifies forms, and the payload the SDK sends.

Standard events

Unknown names are stored as custom.

EventDescription
page_viewPage loaded
session_startNew or resumed session
form_viewForm became visible
form_submittedGeneric form submit (low confidence)
signup_view / signup_attempt / signup_successSignup funnel
login_view / login_attempt / login_success / login_failedLogin funnel
password_reset_view / password_reset_attemptPassword reset
checkout_view / checkout_startedCheckout funnel
payment_attempt / payment_failedPayments
lead_form_view / lead_submittedLead / contact forms
api_requestAPI request event
customCustom / manual event

Auto-detection

Forms are classified by fields, button text, and URL.

{
  "auto_detected": true,
  "confidence": 0.94,
  "detection_method": "form_fields_button_text_url"
}
0.90–1.00Very likely
0.70–0.89Likely
0.50–0.69Maybe
Below 0.50Falls back to form_submitted

Payload schema

Sent to the ingest endpoint below.

POST https://shield.findip.net/v1/shield/track

The SDK sends the JSON payload as text/plain so requests stay CORS "simple requests" — no preflight, and sendBeacon delivery on page unload always works.

{
  "site_key": "pub_xxx",
  "sdk": { "name": "findip-shield-js", "version": "1.0.1", "integration": "javascript" },
  "event": { "name": "signup_attempt", "timestamp": "...", "source": "auto_form_detect" },
  "page": { "url": "...", "path": "/signup", "title": "...", "referrer": "...", "utm": {} },
  "session": { "session_id": "sess_xxx", "visitor_id": "vis_xxx" },
  "browser": { "user_agent": "...", "language": "en-US", "timezone": "..." },
  "form": { "field_count": 5, "has_email_field": true, "has_password_field": true },
  "customer_context": { "email_domain": "gmail.com", "plan": "free" },
  "privacy": { "mode": "balanced", "consent": { "granted": true, "source": "default" } }
}