# Set up goals and funnels to see where visitors give up

> A conversion rate says how many convert; a funnel says where the rest stop. How to pick goals, build a funnel, add your own events, and act on it.

Measurement · Published 2026-11-05

A conversion rate tells you how many visits end in a sign-up or an order. A funnel tells you where the others stop: on the pricing page, halfway through the sign-up form, or in the cart. You need both. Goals define what success is, and a funnel built from them shows the step where most visitors give up, which is the step to fix first.

## Step 1: Choose your goals

A goal is what counts as success: a sign-up, a demo request, an order. Pick one to three, not twenty. GeoEngage counts goals in several ways ([Goals and conversions](https://geoengage.app/docs/analytics/goals)):

| Goal type | Completed when | Good for |
| --- | --- | --- |
| **Page visit** | A visitor reaches a page you name | Thank-you, welcome and order confirmation pages |
| **Element click** | A visitor clicks something you name | Sign-up, demo and add-to-cart buttons |
| **Form submit** | A visitor submits a form | Contact, demo-request and newsletter forms |
| **Conversion from code** | Your code reports it | A sign-up your server accepted |
| **Revenue** | Your code reports a purchase with an amount | Orders and paid plans, with their value |

For an **Element click** goal, label the button in your HTML, such as `data-ge-goal="start-trial"`, rather than describing where it sits. A label survives a redesign; a position doesn't.

## Step 2: Build a funnel

A funnel is a sequence of steps on the way to a goal. GeoEngage builds it from visits you've already collected, so a funnel you create today shows the past straight away ([Funnels](https://geoengage.app/docs/analytics/funnels)). Each step is a page view, a goal, or a custom event your code sends.

A software company's funnel might be:

1. The pricing page: **Page view** of `/pricing`
2. The sign-up page: **Page view** with the path starting with `/signup`
3. The account created: your sign-up goal

A store's might be:

1. A product page: **Page view** with the path containing `/products/`
2. **Add to cart** clicked: your goal
3. The cart: **Page view** of `/cart`
4. The order: your purchase goal

Steps count in order, within one visit. A visitor who wanders off between two steps still counts, as long as they get there.

On Shopify, checkout runs on Shopify's own pages, where your theme's code doesn't load. End a Shopify funnel at the last step your theme shows, such as the checkout button.

## Steps only your code can see

Some steps never show up as a page view or a click: a sign-up wizard that stays on one address, a video played, a filter applied. Send those from your code with `trackEvent`:

```js
GeoEngage.trackEvent('signup_step_completed', { step: 'company' });
```

Then add a **Custom event** step with that name to the funnel. Keep names short, stable and lowercase, and put the detail in the properties ([`trackEvent`](https://geoengage.app/docs/widget/methods#trackevent)). The **Custom Events** report lists each name with how often it arrives and which countries and devices send it.

A custom event never counts as a conversion. For a step that *is* success, such as the account being created, call `trackConversion` and make a **Conversion from code** goal with the same name.

## Step 3: Find the biggest loss

The report marks the step that loses the most visits, counted in visits rather than percentage: a step that loses 900 visits matters more than one that loses half of 20. Start there.

Then narrow the funnel to one group with the filter bar: phones, a country, a channel, new or returning visitors. A sign-up form that works on desktop and collapses on phones looks like a mild drop until you filter.

## Step 4: Act on it

- **Watch the visits that left there.** With session replay, open recordings of visits that reached the step and stopped ([Sessions and replays](https://geoengage.app/docs/analytics/sessions)).
- **Change the page.** When a step names one exact page, **Personalize this page** opens the rule builder with a rule for that page.
- **Test the change** with an A/B test judged on the funnel's goal ([A/B tests](https://geoengage.app/docs/rules/ab-tests)).

## Common questions

### My funnel shows zero. What's wrong?

Usually the first step. A **Page view** step set to *equals* must match the path exactly, without the query string: try *contains*. Also check that no step points at a goal you deleted.

### Goal or funnel step?

A goal is success: it drives conversion rates and test results. "Visited the pricing page" is a funnel step, not a goal.

---

Source: https://geoengage.app/blog/goals-and-funnels-where-visitors-give-up
