# Goals

> Choose what counts as a conversion: a built-in event, a custom event, a screen or a store purchase, within a time window after the message.

Source: https://docs.grovs.io/docs/engagement/experiments/goals

A goal is the action you want a message to drive. A person converts when they do it within the conversion window after exposure. With a goal, the report shows conversion rates, compares variants on conversions and, with a control group, shows what the message added.

Set it in the **Experiment** step of a push campaign or in-app message, under **Count as a conversion**. Each campaign has one goal.

## Kinds of goal

| Kind                 | Counts                                                                                                                                                               | Example                                            |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| **A built-in event** | An event the SDK records in every app: **App installed**, **App reinstalled**, **App opened**, **Link opened**, **Link viewed** or **Came back** (a returning user). | Streamly counts **Came back** for a win-back push. |
| **A custom event**   | An event your app tracks, by name.                                                                                                                                   | Fitloop counts `workout_logged`.                   |
| **A screen**         | A view of one screen your app reports. Case-insensitive.                                                                                                             | Northbank counts the `Transfer` screen.            |
| **A purchase**       | A store purchase, renewals included. **Any product** or **Only these products**, up to 20 product IDs.                                                               | Streamly counts `premium_month`.                   |

Event and screen names can be up to 100 characters. Seeing, clicking or answering a message never counts: in-app message events and `push_open` can't be goals.

Custom events and screens come from your app; see [Analytics on iOS](https://docs.grovs.io/docs/sdk/ios/analytics). Purchases come from the SDK's revenue tracking; see [Revenue on iOS](https://docs.grovs.io/docs/sdk/ios/revenue).

## Conversion window

Pick **within 1 day**, **within 3 days** or **within 7 days**. Purchase goals also allow **within 30 days**.

The window starts at exposure (see [Who counts as exposed](https://docs.grovs.io/docs/engagement/experiments#who-counts-as-exposed)):

- **Push**: when the audience is frozen, for variants and control alike. In a local-time campaign, people far west get the push up to a day after the freeze, so a 1-day window misses some conversions. Use a longer window.
- **In-app**: when the person first saw the message. For the control group, when they were first held back.

A person converts once, however often they act within the window.

## Revenue

Every experiment report shows revenue per group, with or without a goal:

- **Revenue**: net store purchases in US dollars, made after exposure within the goal's window, or within 72 hours without a goal. Refunds are subtracted.
- **Per person**: a group's revenue divided by the people exposed in it.
- With a control group, the report shows how much more or less the variants earned than the control, per person and in total.

Revenue has no confidence figure. Treat a revenue difference between small groups as a hint, not a result.

> **Note:** When two visitors are merged, purchases made before the merge stay with the old visitor in experiment reports, so they can drop out of revenue figures.

For how purchases are recorded and how revenue goals work across Grovs, see [Revenue goals](https://docs.grovs.io/docs/revenue/goals).

## Journeys

A journey can have several goals. Reaching any of them takes the person out as converted. The first goal sets the report's window. See [Journeys](https://docs.grovs.io/docs/engagement/journeys).
