Features
Goals & funnels
On this page
A goal records an action. A funnel shows how many people complete a sequence of actions in order.
Track clicks and visible sections
Add data-goal to clickable elements and data-scroll-goal to sections. Extra data-goal-* attributes become goal properties.
<button data-goal="signup_clicked" data-goal-plan="pro">Start free trial</button>
<section data-scroll-goal="pricing_seen" data-scroll-threshold="0.5">Pricing…</section>Track JavaScript actions
This helper works both before and after the tracker loads:
function trackGoal(name, props = {}) {
if (window.analytics?.track) {
window.analytics.track(name, props);
} else {
window.analytics = window.analytics || { q: [] };
window.analytics.q.push(["track", name, props]);
}
}
trackGoal("checkout_started", { plan: "pro" });A click such as signup_clicked only records intent. Send signup from your backend after the account is actually created; see Server events.
Build a funnel
Open Traffic → Funnel
The conversions card at the bottom of Traffic lists goals, funnels, journeys and customers.
Choose Edit funnels
Select the ordered steps, such as a page, goals and payment.
Verify it works
Perform the action once and refresh Traffic: the goal appears in the Goal tab. A later funnel step counts only when the same tracked visitor completed every earlier step in order.
Make a goal your headline KPI
Open Settings → Primary goal
Choose Tracked goal.
Enter the exact event name and save
Names are case-sensitive. You can configure it before the first event arrives.
The setting applies to this site, including shares and embeds. Choose Purchase rate (default) to switch back. Purchase metrics and revenue stay available in either mode.
Details
- Goal names start with a letter and may contain letters, numbers, underscores, colons, dots and hyphens. Each event accepts up to ten string, number or boolean properties. Keep secrets out of names, URLs and properties.
- Scroll goals fire when the share in
data-scroll-thresholdis visible (default 0.5), after an optionaldata-scroll-delayin milliseconds (default 0), once per element per page. - The primary goal counts distinct tracked visitor IDs with both a pageview and the goal in the period, after filters. Repeated goals count once; server events can use linked visitor IDs, including links added later. Goal-only accounts without a period pageview are excluded.
- Conversion rate divides converted visitors by period visitors; with no visitors the rate is unavailable. It is a period association regardless of which action came first; use a funnel when order matters. Changes compare with the preceding equal-duration period; All time has no comparison.
- Funnel steps use recorded timestamps within the period. Equal timestamps are allowed because separate events can share a millisecond. One pageview can satisfy different overlapping steps, such as
visitandpage:/pricing; repeating the same step needs a separate occurrence. Page steps match a literal path prefix. - Server events linked to a visitor later keep their original event time. The
identifystep uses the stored first-link and latest-update timestamps, so it is not a complete login history; track an explicit login goal if you need every login. - Counts use tracked visitor IDs; linking a user may associate server actions with several visitor IDs.
- The
paymentstep counts positive net payments in the selected currency, excluding trials and full refunds. Value per visitor is the period's net revenue for visitors who reached that step, not a claim that the step caused those payments.