An event plan for a landing page: seven events, not seventy
Most landing pages need seven events. Which ones, what each carries, and the delegated click listener that tracks them without touching every component.
The usual analytics setup is either nothing or everything. Nothing tells you nothing; everything tells you so much that nobody opens the dashboard. A landing page needs a short list of events, each tied to a question.
The seven
| Event | Question it answers |
|---|---|
| page_viewed | Which pages get read at all? |
| skill_opened | Which products get interest, and from where? |
| checkout_clicked | Who reached for the buy button? |
| outbound_clicked | Where do people leave to? |
| faq_opened | What are buyers unsure about? |
| scroll_depth_reached | Does anyone see the bottom half? |
| order_completed | Did the reach turn into a sale? |
Track the buy click even when checkout is off. Someone reaching for a button that does not work yet is demand, and losing that signal hides it.
One listener, not seventy handlers
We attach one click listener to the document and use closest("a, button") to find what was clicked, then match on the href or a data attribute. A new button with a known link pattern is tracked the day it ships, with no analytics code inside it. The same trick covers FAQ opens with a toggle listener on the window, since that event does not bubble.
Properties worth attaching to all of them
- The first channel that brought the visitor, stored once.
- Whether this visit came from an assistant, graded per visit: see tracking ChatGPT and Claude traffic.
- The page path, without its query string, for the reason in keeping keys out of analytics.
Questions
What events should a landing page track?
Page views, clicks on the primary action, clicks through to a product, outbound clicks, FAQ opens, scroll depth milestones, and whatever the conversion is. Seven is usually enough to answer the questions you actually have.
Should I track every click?
No. A stream of every click is hard to query and easy to misread. Track the few interactions that answer a decision you will make.
How do I add tracking without editing every component?
One delegated click listener on the document, matching on links and data attributes. New buttons are covered automatically, and analytics code stays out of the components.