# Return incentives

**URL:** https://heroiclabs.com/docs/satori/guides/return-incentives/
**Summary:** A guide for using audience targeting to incentivize players to return to your game.
**Keywords:** return incentives, satori
**Categories:** satori

---


# Return Incentives

In this guide you will learn how to use audience targeting to incentivize players who may have churned out of your game to return by offering a new event or content drop. To accomplish this you will:

* [Create a custom property](#creating-a-custom-property)
* [Update identity properties from the client](#update-identity-properties-from-the-client)
* [Create an audience](#create-an-audience)
* [Create a metric](#create-a-metric)
* [Create a live event](#creating-a-live-event)

## Creating a custom property

Start by creating a custom property: `playerLevel`. You will use this to indicate in Satori what level the player is.

1. Navigate to the **Settings** -> **Properties** screen in the Satori Console.
2. Click the **Create New Custom Property** button.
3. For **Property Name** enter: `playerLevel`.
4. For **Type** change it to `numeric`.

![Creating a custom property]({{< fingerprint_image "/images/pages/satori/guides/return-incentives/creating-property.png" >}})

## Update identity properties from the client

An identity must update their `playerLevel` custom property in Satori to be added to the new audience. This should be done via the client:

```csharp
var playerLevel = 5;
var customProperties = new Dictionary<string, string>
{
    {"playerLevel", playerLevel.ToString() }
};

await client.UpdatePropertiesAsync(session, null, customProperties);
```

{{< note "important" "Audience refresh interval" >}}
By default the Satori server will refresh the identities in an audience every **10 minutes**, so an identity may not be added immediately. This can be configured with the `audience.processor_interval_sec` configuration parameter.
{{< / note >}}

## Creating an event

Create a custom event that will be triggered by the user when they return to the game.

1. Navigate to the **Settings** -> **Events** screen.
2. Click the **Create New Event** button.
3. For **Event Name** enter: `playerReturned`.
4. For **Type** change it to `Numeric`.

![Creating an event]({{< fingerprint_image "/images/pages/satori/guides/return-incentives/create-event.png" >}})

The client will send this event after they return to the game:

```csharp
await client.EventAsync(session, new Satori.Event("playerReturned", DateTime.Now));
```

## Create an audience

Next create the audience that will segregate players based on whether they have reached level 5 or higher and have not been seen in 7 days or more.

1. Navigate to the **Audiences** screen.
2. Click **Create New Audience**.
3. For **Audience Name** enter `ChurnedProgressedPlayers` and give it an appropriate description.
4. Click **Create**.
5. On the next screen, enter the appropriate [filter](../../concepts/segmentation/understand-audiences/). This filter should check that the player has a `playerLevel` custom property of 5 or higher and that they have not been seen within the last 7 days.

```
Now() - PropertiesComputed("seenLast", 0) >= Duration("7d") and PropertiesCustom("playerLevel", 0) >= 5
```

## Create a metric

Now create a metric to allow you to determine how many players engage with the live event.

{{< note "important" "Metrics" >}}
Metrics must be defined by giving them a name that matches an existing event such as `adStarted` or `screenViewed`.
{{< / note >}}

1. Navigate to the **Metrics** screen.
2. Click **Create New Metric**.
3. For **Name** enter the name of our event from earlier: `playerReturned`.
4. For **Type** change it to `Count`.
5. For **Order** leave it as `High`.

![Creating a metric]({{< fingerprint_image "/images/pages/satori/guides/return-incentives/create-metric.png" >}})

This metric will analyse the count of how many players returned to the game.

## Creating a live event

Create a live event that will target the new audience and run for one week to offer a promotional login reward as well as access to a returning players leaderboard.

1. Navigate to the **Live Events** screen.
2. Click **Create Live Event**.
3. For **Name** enter: `ReturningPlayersEvent` and give it an appropriate **Description**.
4. For **Value** enter a JSON string that defines the reward and tournament ID that returning players can join.

```json
{
  "reward": {
    "coins": 500
  },
  "tournament": "returningPlayers0323"
}
```

5. For **Audiences** select the `ChurnedProgressedPlayers` audience.
6. For **Monitor Metrics** select the `playerReturned` metric.
7. For **Start Time** choose a day to start (e.g. `01/03/2023 00:00`)
8. For **End Time** choose a week later (e.g. `08/03/2023 00:00`)
9. For **Duration** enter: `604800`, which is one week in seconds.
10. Leave **Reset Schedule** as blank, it should not reset.

![Create a live event]({{< fingerprint_image "/images/pages/satori/guides/return-incentives/create-live-event.png" >}})

Returning players will now be able to take part in this live event. You may decide to use native push notifications or email marketing to tell those players to come back and take part in the event.

{{< note "important" "Retrieving live events on the client" >}}
You can retrieve the live event on the client by using the [list live events](../../client-libraries/unity/#live-events) API.
{{< / note >}}

Once the live event is over you can [view the metrics](../../concepts/performance-monitoring/) to see how successful the live event was in re-engaging churned players.
