Trace
Features

Goals

Define what success looks like on your site and track conversions and conversion rate for it.

A goal is something you want your visitors to do — sign up, buy something, read an article to the end, click a button. Trace records pageviews for every visitor automatically, but it doesn't know what "success" looks like for your site until you tell it. A goal is how you tell it.

Once a goal is set up, Trace shows:

  • How many visitors completed it (conversions)
  • What share of your visitors completed it (conversion rate)
  • Which pages, channels, countries and so on converted best, using the same filters as the rest of the dashboard

The three kinds of goals

When you create a goal you choose its Goal trigger.

Pageview

Counts a visitor as converted when they view a specific page.

  • Example: /thank-you counts anyone who lands on your order-confirmation page — a simple, reliable proxy for "completed checkout".
  • Wildcards: use * to match any run of characters. /blog/* matches /blog/my-post and /blog/2026/my-post (but not /blog itself), and /*/pricing matches /en/pricing. Without a *, the path has to match exactly.
  • No code required — it works from the pageviews Trace already collects.

Custom event

Counts a visitor as converted when they trigger a specific named event — for actions that don't have their own page, like a "Sign up" button that opens a modal, or a form submitted without a page reload.

  • Example: add window.datafast("signup") to your sign-up button's click handler (see Custom events), then create a Custom event goal with the event name signup.
  • Built-in events work too: external_link (outbound link clicks), file_download, form_submission and payment are sent automatically. Use any of them as the event name — no extra code needed.

Scroll depth

Counts a visitor as converted when they scroll far enough down a given page — useful for judging whether long content is actually being read.

  • Example: a Scroll depth goal on /pricing set to 75% only counts visitors who scrolled three quarters of the way down that page.
  • Scroll depth goals match the page path exactly.
  • No code required — the tracking script measures scroll depth on every page automatically.

Create a goal

  1. Open Settings → Goals, or click Set up goals / Manage goals in the dashboard's Goals tab.
  2. Fill in the form:
    • Goal trigger — Pageview, Custom event or Scroll depth.
    • Page path or Event name — a path like /thank-you or /blog/* (a missing leading / is added for you), or the exact event name your code sends. The field suggests pages and event names your site has actually received, so you don't set up a goal against a typo.
    • Scrolled at least — Scroll depth only, 1–100% (default 75%).
    • Display name — optional, up to 120 characters. Left empty, the goal is named after what it matches (Visit /thank-you, signup, Scroll 75% on /pricing).
  3. Click Add goal. If something's wrong — a duplicate name, a goal that already tracks exactly the same thing, or a name Trace records automatically such as pageview — the form tells you.

Below the list, Trace shows custom events your site has sent in the last 6 months that aren't goals yet. Click one to turn it into a goal, or Add all.

A site can have up to 1,000 goals, so it's fine to create one for every meaningful action.

Matching is case-sensitive

Page paths and event names must match exactly, including case: /Pricing and /pricing are different pages, and Signup and signup are different events.

Narrowing a goal with properties

Sometimes "signup" isn't specific enough — you want pro plan sign-ups only. Click + Add a custom property condition in the goal form to add up to 3 conditions like plan is pro. The goal then only counts a conversion when the event carries those exact property values — for example, a Custom event goal on signup with the condition plan is pro only counts calls like window.datafast("signup", { plan: "pro" }).

Every condition is required (AND, not OR). Property names are matched in lower case; values are case-sensitive. Conditions work on all three goal types — for a pageview goal, they match properties set with props.

Edit a goal

Click Edit next to a goal to change its name, path or event name, scroll threshold or property conditions. The trigger type can't be changed — delete the goal and create a new one instead. Renaming is safe: dashboard filters and funnels keep pointing at the same goal.

The #1 KPI

One goal can be marked #1 KPI — your headline goal. The first goal you create becomes the #1 KPI automatically; after that, promote any other goal with Set as #1 KPI in Settings → Goals. Only one goal holds the badge at a time, and it's marked in the Goals report.

The Goals report

The Goals tab on the main dashboard lists every goal, most conversions first:

ColumnMeaning
UniquesUnique visitors who completed the goal.
TotalHow many times it was completed. Shown as "—" for Scroll depth goals, since one visitor scrolling one page sends many scroll updates.
CRConversion rate (see below).

The report respects every dashboard filter — filter by country, source or page and the numbers are for that slice.

Click a goal to filter the whole dashboard to visitors who completed it (click it again to clear). While filtered:

  • The stats row switches to Unique conversions, Total conversions and Conversion rate, with period-over-period changes when comparison is on.
  • Every other report (sources, pages, countries…) shows only converting visitors — so you can see which channels and pages drive conversions.
  • For goals on built-in events, the Goals tab adds a breakdown: which URLs outbound link clicks and file downloads went to, or which pages forms were submitted from.

How conversion rate is calculated

For a given date range and set of filters:

conversion rate = unique visitors who completed the goal
                  ÷ unique visitors (same filters, without any goal filter)

Both sides count each visitor once, no matter how many times they triggered the goal. The denominator ignores goal filters on purpose: filtered by a goal, every remaining visitor has converted, and dividing converters by converters would always show 100%.

Delete a goal

Click Delete next to a goal in Settings → Goals and confirm. Its conversions stop showing on the dashboard. If the goal you delete was your #1 KPI, the badge is cleared until you set a new one.

If the goal is a step in a funnel, you're warned first: a two-step funnel using it is deleted, and a longer funnel just loses that step.

FAQ

A goal isn't counting any conversions — what's wrong?

Check the path or event name is typed exactly as it appears on your site (it's case-sensitive). For Custom event goals, confirm the window.datafast(...) call is actually firing — check your browser's network tab for a request when you trigger the action, or watch the event log in Realtime.

Do I need to change my site's code for Pageview or Scroll depth goals?

No — both work off tracking Trace already does automatically. Only Custom event goals need a window.datafast(...) call (unless you use one of the built-in events).

Can one goal match more than one page?

Yes, with a wildcard on a Pageview goal: /docs/* matches every page under /docs/.

Who can create goals?

Anyone with the Member role or above. Viewers can see goals but not change them. See Team & roles.

On this page