Optimizing for conversion value lets you focus on the goals that are relevant to your business. A typical project optimizes for a static event; a single conversion point. But that's not how all businesses work.
On this page:
- How to set up a value-based project
- Enable conversion value for your account
- Update the schema
- Select a conversion value for your project
- Push data to the context
- Use cases
How to set up a value-based project
Before you can begin using conversion value in your next project, there are several things you have to know and do.
1. Enable value-based projects for your account
Using conversion value is only available for projects that use sessions instead of visitors.
Talk to your customer team or contact support to enable these features for your account. They can be enabled for a single project or the whole account.
2. Update the schema
Conversion value is based on an attribute and value you push to the context while your project runs, but the attribute must exist in the schema before it can be processed.
Here's how you could add a "cart_value" attribute that takes a number and calculates the average value in a given session.
3. Select a conversion value
Applying a conversion value to a project is the same as selecting a conversion metric.
On the DRAFT tab, select an option from the conversion value drop-down.
You still need to select a conversion event. The conversion value is how the system assigns value to the nominated conversion event.
4. Push data to the context
You have to push the conversion value to the context where it is stored against the session.
At the point of conversion, trigger a context update that includes the name of the attribute you added to the schema plus the value in whatever format you selected (number, string, etc.).
In the case of recording the cart value, it would look like this:
evolv.context.set('cart_value', 100 );
Push the conversion value each time a conversion occurs. Remember only to push the current conversion value. The backend takes care of aggregating the data based on how you defined the attribute in the schema.
Here's an example of a session containing three conversions to help demonstrate what each context update looks like.
First conversion:
evolv.context.set('cart_value', 100);
Second conversion:
evolv.context.set('cart_value', 20);
Third conversion:
evolv.context.set('cart_value', 30);
Expected values based on function type:
Schema Function Type | Value |
first_value | 100 |
last_value | 30 |
min | 20 |
max | 100 |
avg | 50 |
sum | 150 |
You can now start your project.
Use cases
The following use cases are examples of how you can use conversion value to optimize different types of websites with various conversion goals.
Multiple conversions with different values
Every conversion point on your website has some level of value associated with it.
Consider user engagement actions such as email sign-up or creating an account. They might not be your primary goal, but they still deliver value.
Emit the same event (e.g., "userEngaged") for each action and set the value of the conversion in the context using the custom attribute you set up earlier. Set the schema function to "sum" to optimize for the highest combined session value.
For the action to count as a conversion, use the optimization metric assigned to the project.
You can emit multiple events at the same time. This is helpful if you want to emit a second event to describe the specific action.
Here's an example of the events and context updates made for different actions a user might take, where 'conversion' is the optimization metric and 'conversionValue' is the schema attribute.
Clicked a referral link |
|
Created an account |
|
Email sign-up |
|
Video streaming service
For content-based subscriptions, there are a couple of ways you can optimize the value of a session.
- How many videos were watched?
- How many videos were started/reached 25% etc.?
- How many minutes of video were consumed?
How you choose to optimize depends on your business strategy. Subscriptions provide more value if the user stays subscribed, so how do you keep them engaged?
Here are some example scenarios.
- Most videos started
- Schema function: "Sum"
- Set the value of the conversion in the context to "1" each time someone starts streaming a video.
- Most minutes of video watched
- Schema function: "Sum"
- Set the value of the conversion in the context to a selected amount each time that amount of time passes.
- E.g., Every 5 minutes
- You can also store a counter of time locally and update the context when an exit action is detected.
You can also set different values for video events according to how valuable they are. For example:
Finished a video |
|
Started a video |
|
When you know how much content a user consumes, you can target or exclude them from your project.
- Target engaged or disengaged users.
- Schema function: "Sum"
- Create an audience using the schema attribute and use "less than" or "greater than" to decide who you want to target.
- Target disengaged users and encourage them to engage.
Comparison website
- Optimize for the number of referral links clicked.
- Schema function: "Sum"
- Optimize for the maximum value of the links that were clicked.
- Schema function: "Max" (assuming links have different values, such as promotional spots over standard placements)
- Set the appropriate value each time a conversion occurs.
Ecommerce
- Optimize for the average cart value.
- Schema function: "Sum"
- Optimize for the number of items in the cart.
- Schema function: "Sum"