Contextual personalization for scenarios is a feature that **drives your conversion rates** and **provides truly personalized content** for your customers. It **automatically assesses all the chosen contexts** of your customers and **utilizes the insights in real time** to serve the most suitable variant to your customers based on their specific context.
This guide shows you how you can set up contextually personalized scenarios. For general information on scenarios, please refer to our [documentation page](🔗).
To learn more about contextual personalization and how it works, check out our [main documentation page](🔗).
You can watch this video guide to see how to set up contextual personalization in scenarios. Everything is covered in the textual guide, too.
# Setup Guide
## 1. Select a Use Case
Select a use case where personalization plays a relevant role to achieve desired results. This guide will use a **Welcome SMS campaign** after subscribing with two variants of the text as an example.
## 2. Create a Scenario
Create a scenario triggered by the `
register` event, with as many SMS nodes as variants you want to use.
## 2. Create the SMS Templates
Create different variants of an SMS and set all the relevant settings as in standard SMS campaigns. Read more about how you can create SMS campaigns [here](🔗).
As this is a **Welcome SMS campaign** triggered after the customer registers, the assumption is that their first name was filled in during the registration. This means that the SMS will always contain their name. [Click here](🔗) if you want to find out more about Jinja.
## 3. Set the Contextual Personalization
To set the contextual personalization, add the **`
Contextual Personalization`** node to the scenario, and place it before the SMS variants — similar to when you add an **A/B test** split node.
In the **`
Contextual Personalization`** node, adjust all the settings to your needs.
Contextual personalization works with contexts that are defined via selected features. The features can be anything from the visitor's device to the most visited product category to some behavior segment like RFM.
As the example used is an on-event triggered campaign that will run for weeks or months, select the `
Automatic campaign` option.
You can also use a newsletter one-off campaign in scenarios. Select `
One off campaign` and set the `
Distribute within` to 12 hours.
Contextual personalization applies **reinforcement learning**, which means it learns from every action it takes right from the start. But when it comes to a one-off campaign, there is not enough time to learn and apply what is learned.
That is why it is recommended to **spread out the email send-out over 12 hours**. This way, recipients have time to interact with the email, and contextual personalization can track rewards and feedback to update the model accordingly.
If you need the **campaign to be delivered sooner**, you can still select a shorter time frame, but remember, that the shorter the time, the less feedback the model will receive and the less accurate it will be.
Set the reward target to `
click` as you want to get more recipients to revisit your website. The reward target opened/clicked events help the contextual personalization adapt together with the specific context that comes with this action.
Under the `
Settings` page, choose relevant data, including the **consent category**. Learn more about consent management in [our documentation](🔗).
To be able to properly send and track links in SMS, use the [campaign link shortener](🔗) in the **settings**.
**After you set up the contextual personalization, you are ready to run the scenario.**
**Comparative A/B Test**
To make sure you make the right choices, it is essential to **not only use contextual personalization**, but **also compare it to simple variants**. That is why you should send some customer traffic to a [comparative A/B test](🔗).
A good ratio in `
traffic distribution` is to send 80% of the traffic to contextual personalization and 20% to the comparative A/B test. This way, contextual personalization can learn fast, and at the same time, enough relevant traffic goes to the simple variants so you can measure the improvement accurately.
Imagine a case with two variants that also uses the comparative A/B test option.
To **evaluate the uplift of contextual personalization** against simple variants, you need to **split the customers** based on the served variant and its origin.
The best way to do this is to **create a segmentation with three segments**:
To be able to create such segmentations, use the **property** `
variant_type`. A dedicated campaign event is tracked.
Since contextual personalization and also the comparative A/B test serve all the different variants, the **property** `
variant_type` tells you **what the origin of the variant was**.
Usually, contextual personalization performs better than the whole A/B test or each variant on its own. But if it does not, it is more helpful to show everyone the winning variant.
There are a few reasons why contextual personalization might not do as well as the simple variants. One reason is that visitor behavior cannot always be predicted based on the selected features. Also, as part of the ongoing learning process, contextual personalization and its algorithm always show a small percentage of different options to visitors randomly.
For example, in a simple case where one variant is better for every context, the worse variant will also be served via contextual personalization. Overall, they will lose against the single variant.
# Post-Evaluation Settings
The last step after the evaluation is to **take action based on the results**. If you are happy with the results and do not plan to make any adaptations or rerun the test, you need to **select the winner** — either the contextual personalization or one of the variants. This can be quickly done in the contextual personalization **settings** in the _Finish A/B test_ section.
This section is available only for running weblayers with non-100% traffic sent to contextual personalization.
A confirmation window is displayed as this action cannot be undone after you select the winner and click the `
Finish A/B Test` button.
After the confirmation, all the traffic is served with the selected variant, and the _Finish A/B test_ section informs you about this.
# Advanced Settings
You may encounter situations where not all the variants and the intended activity have the same business value.
Imagine an SMS campaign where one version offers a 10% discount for the next purchase and the second one does not. **You can calculate how much business value the version without the discount has for your business**, not only directly via the discount but also from a long-term perspective — subscribers without discounts usually have higher customer lifetime value in the long run.
In situations like this, the difference between business values can be propagated to contextual personalization via _Reward_ settings. If the value from the no-discount subscribers is twice as big as the value of discount subscribers, just set the reward for the no-discount version to 2 and the discount version to 1.
**What matters is the ratio between the numbers**, not the absolute value itself (2:1 has the same meaning as 50:25). This also needs to be considered in the evaluation, as achieving twice the conversion rate with the discount variant has the same business value.