Promotions always work great for our customers because everyone likes discounts. In this article we’re going to focus on one of our key features, the ability to create personalized promotions. This is a great way to boost customer satisfaction and increase loyalty metrics while reducing the effort required to manage promotions at the same time.
Personalized promotions give you the ability to automatically generate unique promotion sets tailored to specific customer needs and preferences based on an advanced recommendation engine.
Based on all the data that we have and can gather, we are able to create a unique set of promotions which will be tailored to the specific needs of our customers.
How to do it
Step 1: Behavioral data
We start with gathering all the behavioral data related to a customer. We gather this data (transactions) to build customer profiles and train recommendation models with items, promotions, products and clients, in order to make our recommendation engine work.
Step 2: Promotion metadata
We can also create a list of promotions which are unseen and inactive in any distribution channel until they are triggered.
Step 3: Select the best coupon set
You can create an individual coupon set for a unique, single customer based on a defined promotion list. So, for instance, we can create hundreds of promotions, but if the client is only active in a specific channel, the recommendation engine will be triggered and from dozens of potential candidates we will be able to select the best coupon set for each and every individual.
How to create candidates for personalized promotions
When it comes to promotion management, we can create multiple types of promotions. Some of them can be our regular promotions, which can be distributed, for instance, via mobile app to every single customer. We also have members-only promotions, which can be segmented only to a specific group of customers. We can also make promotion candidates invisible from the user’s perspective, until the selected promotions are generated for a specific user.
In the promotion module we can create promotions for a specific item, but obviously we can create also a promotion for the entire card as well. We can narrow down the audience of specific promotions even though they will still be personalized. Different types of content can be created for specific promotions, including all metadata descriptions, images and so on. We can also add any kind of parameters to these promotions.
Obviously, we are able to specify or narrow down the source in which promotions can be defined and items for which the promotion can be used, which is very important because we use those kinds of items which are assigned to the specific promotions in recommendation engines and obviously create a schedule.
While creating promotional campaigns, we can filter out which promotion we can choose as a candidate for the best promotion to send. This is one of the manual ways to promote only specific types of promotions. Moreover, when it comes to specific types of promotion which cannot be distributed to specific users, like offers related to alcohol, then we are able to create a segment for which this promotion will not be considered as a potential candidate. So, the promotion will not be distributed for this particular segment.
Challenges and solutions
How to implement personalized promotions in multiple distribution channels
With transactional data for specific customers and promotion candidates, we can now create a campaign that will build a specific promotion system to customers using different distribution channels. There are multiple types of distribution channels that we can integrate at the same time.
We are able to create a different types of promotions in different distribution channels.
Our clients can create promotions for:
- Check-in, which can be distributed at a kiosk in-store. So, we exactly know what kind of client and in which store they are.
- Check-out, to be used during purchase at a POS.
- Mobile, for distribution via a mobile app.
We are able to define how many promotions can be distributed to a specific customer in this distribution channel and obviously how long these promotions set will be valid from a client perspective.
Obviously, the main goal is that we always calculate this promotion set in real time.
So, we do not create specific list of promotions for a given client upfront. But every time when the user does not have a personalized set generated yet, and for instance, he enters the app, then we generate the whole set in real time, including all the recent information that we have from the client. It allows us to be as much accurate in our predictions as possible.
The more candidates we have, then the best personalization effects we can achieve. The variety of promotions can help in this particular case, to reach to preferences of majority of the clients. At the same time, we are running regular promotions and members only promotions. So, there is always a risk that there can be an overlap between those promotions.
First of all, we create a mechanism that will include what regular promotions are currently available in-store; how many of them are available to the whole population and how many of them are prepared for loyalty program members only. Then, we create the mechanism that helps to handle the overlaps.
In this particular case, if there is a specific promotion for a given product and we would like to personalize promotions, we will not include those promotions and those candidates in which they can be an overlap. Due to this fact, client will not have two promotions on the same time.
So, for instance, if the user enters the app, then the whole list of available promotions is sorted by the preferences of the user base of his previous actions.
How to measure performance and tune engine settings
One of the key points here involves tuning the engine settings and creating multiple versions in order to find out which kind of promotion variance performs best.
We created built-in A/B test capabilities and advanced engine configuration within personalized promotional campaigns, in which we can define multiple variants with different settings, like number of personalized promotions, duration of the promotions and advanced engine configuration for each individual variant.
This gives marketers the simple tools they need to configure the engine in a way that will meet the requirements of KPIs and other loyalty metrics. In fact, we can see that once the loyalty program has integrated the personalized promotions capabilities, on average, personalization is works well and actually drives higher conversion rates and higher revenues. In this particular case, revenue, including the cost of the promotion was higher: from 1,8% to 3% revenue uplift depends on the case (comparison to control group).
How to extend personalization capabilities to anonymous client
Loyalty card members are only a small part of the whole customer base. Our idea was to extend those kinds of capabilities to non-loyalty card members and especially to anonymous clients.
Check-out coupons for anonymous users (based on the last transaction)
In this particular case, we can use check out couponing. In this way we can also gather information about the last transaction of the anonymous user.
Based on this last transaction, we can calculate the scoring for each promotion and distribute personalized promotions after purchase at POS, just by printing out the coupons for future purchases. In this particular case, we also tracked those users, who were totally anonymous, but made a transaction at a POS.
As you can see, promotions give you a lot of possibilities. You can narrow down, personalize them and add options that make them more personalized for users. We encourage you to check those options and to use them in your business.