Skip to main content
How do you know if a message was successful? The answer depends on the message and its purpose.
  • If the message is about your referral program, you would naturally measure success by looking at increases in referral events
  • If the message is about using some specific product feature, you would measure success by monitoring usage of that product
Reward Functions are how you tell Aampe what success looks like for different types of messages.

Overview: How Aampe Evaluates Messages

Aampe determines if messages succeed by looking for changes in a user’s event feed. Each event has a numeric value (“reward”). An agent examines the sum of event rewards for a window of time before and after a message was sent to determine if the user increased their activity in response to the message.

Not all events are equally important. Agents typically places small rewards on log-ins, button clicks, and similar events and larger rewards on key conversion events.
How do we determine the reward for each event?

Building A Reward Function

Step 1: What specific outcome do you want to see as the result of a message?

Building a Reward Function starts by identifying the one desired outcome you want to see as a result of a message. Examples of key outcomes include:
  • Making a purchase
  • Enrolling in a paid subscription
  • Streaming a movie or a song
  • Referring a friend
  • Trying out a new product feature
  • Signing up for a webinar
Use that outcome to give your Reward Function a sensible name and description. Reward Start Form For your convenience, you can apply the Reward Function to several messages organized under a common Topic. You can also designate a Reward Function as the default for future messages. Click Save & Proceed.

Step 2: Identify Target Events

With the key outcome in mind, we need to determine which events in the event feed are the best clues that the message has been successful. Aampe calls these events Target events. These events receive full points when observed within an attribution window. By default, all other positive events receive some amount of partial credit.
Example: Let’s say I want to set up a Reward Function for messages focused on selling a product. I am going to name my Reward Product “Selling Products” and look for events in my event feed mean someone bought my product.
**Reality check: **Two things tend to make this exercise difficult
  • Event streams are messy
  • Not all events are equally useful as Target events.
Agents can quickly learn user preferences when the Target events are voluntary and repeatable. Agents struggle when Target events are infrequent, delayed, or impossible to repeat. (For a deeper look at which events make good learning signals, see Characteristics of Good Reward Events.) Aampe scores all your events based on their potential for being a Target event. Find one or more events associated with your outcome of interest. Event Menu Once you’ve selected your Target events, all other events will be scored based on how often they happen shortly before the Target events you’ve selected.

The partial credit Aampe assigns for these events is central to how Aampe works. Not every message will lead to a purchase. But there is still an opportunity to learn based on more subtle behavior changes.
Event Scores

Sometimes Individual Event Rewards are Negative

Not every event in a user’s event stream is good. How does an Aampe agent account for unsubscribes, order cancellations, or other similarly bad events?

Negative events receive negative rewards. Since agents learn from the sum of individual event rewards, agents will learn to avoid negative events.
Negative Reward

What if the event I need does not provide good signal for learning?

It’s possible an event of interest is infrequent or unrepeatable and so makes a poor selection for a Target event. But it is the event you need, so what do you do now?

You can still choose these rare events as Target events, but Aampe requires an additional Target event that is sufficiently frequent and repeatable.
Unsuitable Event Menu Aampe ranks the remaining suitable events by how well they signal that the unsuitable Target event will occur in upcoming weeks — we call this the Precursor score. The Precursor score is simply an aid to help you choose a powerful combination of Target events.

Choose any suitable Target event. You will then see the individual event rewards.
Event Scores With Unsuitable Click Save & Proceed.

Step 3: Review

Review And Save Take a moment to review the Reward Function, then click Send For Review.

Reward Function FAQs

Aampe recommends a Reward Function for each distinct customer experience you encourage through your content.Most Aampe customers have 3 to 5 Reward Functions. It is not necessary or helpful to have a unique Reward Function for each offering. Buying shoes, hats, and shirts can all share one Reward Function for making a purchase.
No. If anything it helps provide agents with helpful context when evaluating the success of a message.Messages about referrals should be evaluated on how they generate referrals while messages about purchases should be evaluated on whether they generate incremental purchases.
While you can create multiple Reward Functions in the Aampe UI, agents really have one objective which is to increase the sum of event rewards as much as possible.The global objective is very flexible and resilient to adjustments on a per-message basis. In every case, we’re simply summing the value of individual event rewards.
Event Types is how Aampe categorizes events as positive, negative, or irrelevant. Target events can only be selected from positive events. Negative events will have negative event rewards. Agents ignore irrelevant events when calculating the final reward for a message. See the Event Types page for setup instructions.