A goal counts the visits in which a visitor does something that matters to you, like signing up, buying or sending a contact form. This guide shows you how to create your first goal and where to find its numbers.
Info
Goals live in the Journeys tab, which is available on the Pro plan and above. Pro includes up to 25 goals. Scale and Enterprise have no goal limit.
What are goals?
A goal counts visits. Each visit counts at most once per goal, even if the visitor does the same thing several times during that visit.
| Use case | Example goal |
|---|---|
| Lead generation | Contact form sent |
| E-commerce | Purchase completed |
| SaaS | Account created |
| Content | Pricing page visited |
| Engagement | Click on your booking link |
The conversion rate of a goal is the share of all visits in the selected period that completed it. Example: your site had 1,000 visits, and 40 of them reached your thank-you page. The conversion rate is 4%.
Why track goals?
Goals help you:
- See how many visits turn into real results
- Find the traffic sources that bring results
- Improve the path that leads to a result
- Put a value on each result
What a goal can count
| In the dashboard | What counts | Code needed? |
|---|---|---|
| A page visit | A visit opens a page whose address matches, for example your thank-you page | No |
| A click on a link | A visitor clicks a link to an address that matches, for example your booking page or app store | No |
| An event from your code | Your site sends a named event, for example after a form was sent | One line |
| A click on a button or element | A click on an element that matches a CSS selector (for developers) | No, but a CSS selector |
See Goal types explained for details and examples of each type.
Create a goal step by step
Open the Goals sub-tab
Go to Domains, open your website, select the Journeys tab and then the Goals sub-tab.
Click New goal
Click New goal. A short assistant with three steps opens.
Step 1: What do you want to count?
Pick one of the four goal types, or start from a template: Sign-ups, Purchases, Contact form, Pricing page visits or Click on a link.
Step 2: Set up your goal
Tell Zenovay exactly what counts. For a page goal, pick the page from the list of your real pages. For an event goal, pick or type the event name. A live preview shows right away what matches.
Step 3: Name and value
Give the goal a clear name. If you like, add a description and a value per conversion. Leave Count past visits too switched on to see results from your existing data right away.
Create the goal
Click Create goal. The goal appears in the list with its numbers for the selected period.
Step 2 in detail
Page goals: pick the page from a list
For A page visit, the assistant lists the pages of your site that had visits, together with their view counts. Search for the page and click it, or type the address yourself (for example /thank-you).
- Include every language version: on a multi-language site, this switch turns
/en/pricinginto/{locale}/pricing, so/de/pricing,/fr/pricingand the other language versions count too. - On a site with several hosts (for example
example.comandshop.example.com), the picker keeps the host, so the goal only counts pages on that host. - A live preview shows "Matches N pages with X visits in the selected period". If nothing matches, it suggests similar real pages, which helps you catch typos.
How addresses are compared (upper and lower case, trailing slashes, query strings and more) is explained in Page visit goals.
Event goals: pick the event from a list
For An event from your code, the assistant lists the events your site already sent in the selected period, with how often each one arrived. Pick one, or type a new name. The assistant also shows the one line of code your developer adds where the action happens, for example after a successful form submit:
zenovay('track', 'signup');
A live check waits for the first event and turns green as soon as it arrives. It updates by itself, so you don't need to reload the page.
Event names are compared without regard to upper and lower case, and spaces count as underscores. "Sign Up" and "sign_up" are the same event. Names may use letters, numbers, spaces and the characters _ . : / -, with at most 64 characters.
Link and element goals
For A click on a link, enter the address (or part of it) of the link that should count, for example calendly.com or /download. For A click on a button or element, enter a CSS selector such as #signup-button. See Element click goals.
Step 3 in detail
| Setting | What it does |
|---|---|
| Name | How the goal appears in your reports |
| Description (optional) | A short note on why the goal matters |
| Give each conversion a value | Adds a value per conversion with a currency, for example 49 EUR for a plan |
| Count past visits too | Applies the goal to the last 12 months of data you already collected. Switched on by default |
An event can also send its own value. This is useful when every purchase has a different amount:
zenovay('track', 'purchase', { value: 49 });
Your past visits count too
A new goal is applied to the last 12 months of data you already collected, so you see results right away instead of starting at zero. This does not apply to A click on a button or element: element clicks are only counted from the moment you create the goal.
Where to see your goals
The Goals sub-tab lists every goal with its Conversions, Conversion rate, Trend and Value for the selected period, compared with the period before.
Choose the period at the top: Last 24 hours, Last 7, 14, 30 or 90 days, Last 6 months or Last 12 months. Longer periods depend on how much history your plan includes. Goals and Funnels share the same period selector, and your dashboard filters and saved segments apply here too.
Goal details
Click a goal (or choose View details in its … menu) to open its details:
- Conversions and conversion rate, compared with the previous period
- Visitors who converted, and the value or the last conversion
- A chart of conversions over the period
- Where conversions come from, by source, device, country, page and entry page
- Pages this goal counts: the real pages your rule matches
- Latest conversions, each with a link to that visitor's timeline in the Users sub-tab
- The button Build a funnel to this goal, to see which steps visitors take before they convert
Every open goal is a link. You can share it with a colleague, and it stays open when you reload the page.
Manage your goals
Every goal row (and every goal card on a phone) has a … menu. It is always visible, also on touch screens.
| Action | What happens |
|---|---|
| View details | Opens the goal's details |
| Edit | Opens the assistant to change the goal |
| Rename | Changes the name only |
| Duplicate | Creates "Name (copy)" with the same rule and counts its history |
| Pause / Resume | Pause keeps the history and stops counting new visits. Resume counts again |
| Delete | Deletes the goal and all its counted conversions. This cannot be undone |
A goal that is a step in a funnel cannot be deleted. Remove it from the funnel first. If you only want to stop counting, pause the goal instead.
Changing a goal later
When you change what a goal counts (the address, the match type, the event or the selector), Zenovay recounts the last 12 months with the new rule. The switch Recount past visits with the new rule controls this. The previous numbers are archived, not lost. Renaming a goal or changing its value does not recount anything.
Goals sent from your code (for developers)
Your site can also record a goal directly:
zenovay('goal', 'newsletter_signup', { value: 5, currency: 'EUR' });
The first time Zenovay receives a goal name it doesn't know yet, it creates the goal automatically. Such goals are marked From your code and count toward your plan's goal limit. If a goal from your code stops arriving, it is flagged Not seen in your code for 7 days.
Testing your goal
- Page goal: check that the live preview in step 2 finds the page you expect. Then open that page yourself and watch the Live View tab.
- Event goal: trigger the action on your site and watch the live check in step 2 turn green.
- Open the goal's details and look at Latest conversions.
Debug mode
Developers can turn on console logging while testing by adding data-debug="true" to the tracking script tag:
<script defer
data-tracking-code="YOUR_TRACKING_CODE"
data-debug="true"
src="https://api.zenovay.com/z.js">
</script>
Then perform the action and check the browser console for the event. Remove the attribute again when you are done testing.
Best practices
Naming
Use clear, descriptive names:
| Unclear | Clear |
|---|---|
| Goal 1 | Newsletter sign-up |
| Button Click | Free trial button clicked |
| Page View | Purchase completed |
Values
Tips for setting values:
- Use the real amount for purchases (send it with the event)
- Estimate a lead's worth for forms
- Leave the value empty for engagement goals
- Be consistent across similar goals
Common goals
Lead generation
| Goal | Goal type |
|---|---|
| Contact form | A page visit (thank-you page) or an event from your code |
| Newsletter | An event from your code |
| Demo request | A page visit (confirmation page) |
| Content download | A click on a link |
E-commerce
| Goal | Goal type |
|---|---|
| Add to cart | An event from your code |
| Begin checkout | A page visit (checkout page) |
| Purchase | A page visit (thank-you page) or an event with its value |
| Create account | An event from your code |
SaaS
| Goal | Goal type |
|---|---|
| Sign-up | A page visit (welcome page) or an event from your code |
| Trial start | An event from your code |
| Feature use | An event from your code |
| Upgrade | A page visit (upgrade success page) |
Troubleshooting
The goal shows no conversions
- Check the rule. Open the goal's details and look at Pages this goal counts. If the list is empty, edit the goal and pick the page from the list.
- Check the event. For event goals, the event picker lists the events your site sent in the period. If your event is missing, the code has not run yet.
- Check the goal is active. A paused goal does not count new visits.
- Check the period and filters. The numbers follow the period selector and any active filters or segments.
- Element clicks start at zero. A click on a button or element is only counted from the moment you created the goal.
A visitor did it twice, but it counts once
That is expected. A goal counts each visit at most once, so one visit is never counted twice.