Decide what to measure.
Turn the actions that matter into a small, useful set of goals.
You may already be done
If your site runs Google Tag Manager or gtag, your events arrive without any new tagging. The tracker reads window.dataLayer, so every push of an event — sign_up, generate_lead, purchase — is recorded under that name in Goals & Events, where you can nominate any of them as a goal. Pushes that happened before the script loaded are replayed, so a conversion inlined on a thank-you page is not missed.
value and currency, top-level or in a GA4 ecommerce object, become revenue. GTM’s own gtm.* messages and page_view are skipped. Check what is already arriving before you write any code.
Sending an event yourself
funnelsights('Signup', { props: { plan: 'pro' } })
funnelsights('Purchase', { revenue: { amount: 49.0, currency: 'USD' } })Or tag the markup
No JavaScript needed — the tracker listens on click, auxclick and submit:
<a class="fs-event-name=Download fs-event-format=pdf" href="/guide.pdf">Guide</a>
Start from a question
Add an event because it answers something you would otherwise guess at. “How many people finish sign-up?” is a question. “Track every click” is not — it produces a list nobody reads and a bill that grows with your traffic.
- Name events after the completed action, in one consistent style — consistent names are what make a funnel readable six months later.
- Prefer a handful you check weekly over fifty you check never.
- Keep personal data out of event names and props: those are fields you control, and the privacy guarantees do not cover what you put in them.
- Verify an event fires once, on the real completion, before building a report on it.