Multi Campaign Optimisation

Added in Q2 2020 - Multiple Campaigns

Campaign Optimisation now supports the allocation of an individual across multiple campaigns over a span of time. It can reserve up to 5 campaigns per person ensuring that they are included in their “best” campaigns.

The definition of of a person's best campaign is determined by a priority score, a model score, or a combination of both.

As well as allowing overlap within the optimised campaigns, you can add constraints to ensure that the recipient is not overwhelmed by the frequency of campaigns received. You can ensure that, where an individual has been allocated to 5 campaigns, the 5 campaigns chosen adhere to an applied contact strategy constraint. This ensures, for example, that a person is not allocated to 5 campaigns scheduled to be run on the same day, if a constraint has been applied which prevents them from being contacted any more than once a day.

This example makes use of the FastStats Modelling Environment, and a set of models specifically created to allow Campaign Optimisation to choose the best campaign for an individual.

Example Set-Up

In this example, we have six campaigns promoting sporting events that we would like fundraisers to take part in throughout the coming year to support our charity. Three of the campaigns target new customers and three are general newsletters. Campaign Optimisation will be used to allocate individuals to their most relevant campaigns and, in this case, we will use 'drive-time' models to allocate a person to the campaign describing events in their geographic area.

Our Campaign Optimisation is applied at the Area level.

Constraints View - One Constraint

To allow Campaign Optimisation to recognise the allocation of an individual across multiple campaigns there are two conditions that need to be set up:

  1. The constraint applied at the Area level must cover a span of time rather than just one day.

One Constraint in Capaign Optimisation

The constraint time period must span the whole Optimisation window size

For example, if we want to look ahead to optimise the next week of the campaigns, for this to happen, the constraint must be per week or longer - i.e. 2 campaigns per week, or up to 5 per month.

It is also possible to have both constraints in place.

In our example, we shall allow an individual to be allocated to 3 out of our 6 campaigns in the week.

Constraints View Optimisation Window

  1. The optimisation window needs to be longer than a day.

It must span time. In this example, we are optimising campaigns running over a week. However, this can be longer if required.

Here we are looking to optimise a week's worth of campaigns, which means our Optimisation Window and constraint both need to span a week.

Where a particular campaign's schedule repeats within the Optimisation Window, an individual is still only ever reserved for the next occurrence of that campaign. For this reason, we should run the Optimisation at least as frequently as the schedule for the most frequent campaign.

Look out for a red icon on the right of the Constraints View window. This indicates an invalid constraint or Optimisation Window Hover over the icon to display a tooltip explaining why the choice is invalid and how it should be corrected.


Criteria View

In the Criteria View, we can select which campaigns in the Area are to be included in the Optimisation, as well as the method which ensures the priority order to apply to the selected campaigns; this can be by priority number, or achieved by applying FastStats models to drive who is allocated to which campaign.

Criteria View

In this example, all six campaigns are included. The Schedule View shows that each campaign is on a weekly schedule. The Optimisation itself will be based on an Individual Level and the Score set to Lowest is best is applied on the basis that the closer the recipient is to the event location, the more likely they are to be interested in receiving the campaign. As all the FastStats models are drive times, we can state that the scores are comparable during the Optimisation process


The Optimisation Schedule View

Here we decide when our Optimisation job should run and ensuring that this part of the process runs before any of our campaigns start.

For the first run of the Optimisation process, we recommend leaving more than an hour between the start of the first campaign schedule and the Optimisation job. The Optimisation log records how long the Optimisation job actually t akes and, based on this, the schedule can then be amended for subsequent runs.

There are no settings in the Schedule View to allow an individual to be allocated to multiple campaigns within the week.

Schedule View

In this example, the Optimisation job is run every day to ensure that new people who meet the defined criteria are considered.

Where the campaigns have relatively static audiences, and all the schedules are set to run weekly, running this job once a week, in line with campaign schedules, is sufficient to ensure all individuals are allocated to their “best” campaigns.

The frequency of the Optimisation job should match the most frequent campaign schedule. If you have one campaign running daily and the other campaigns running weekly, your Optimisation job should be set to run daily to ensure that individuals are allocated correctly.


The Results View

When the Optimisation job completes, the Results View will show you the volume allocation.

Here, individuals are allocated to up to 3 campaigns depending on their eligibility and the contact strategy applied in the Constraints view.

Results View


The History View

The History View provides a detailed description of the Optimisation process. Details regarding the process of allocating an individual to the campaigns are added to the log.

History View


Multiple Constraints

Setting up Campaign Optimisation with multiple Contact Strategies

In the example above, we are allowing an individual to receive up to 3 campaigns per week. However, this allocation potentially means that the campaigns an individual receives could all be scheduled to run on the same day, or perhaps in the first two days of the week. Whilst the constraint applied in the example above, effectively takes care of the number of campaigns, we can apply a second contact strategy to control how spread out these communications should be.

This is expressed with a constraint of 1 campaign every N days, where the number of days is shorter than the Optimisation Window size. This constraint is not compulsory for the Optimisation process but is useful to ensure a spread of communications over the week.

Two Constraints in Campaign Optimisation

The pair of constraints above would reserve up to 3 campaigns every week while ensuring that there was at least two days between successive campaigns.

This optional constraint must have a time period which is shorter than the Optimisation Window size.

The Optimisation Window is 1 week and therefore, our second constraint must firstly look at days and concentrate on what conditions surround a single campaign.

In this scenario, you cannot specify 2 campaigns every 3 days as this is invalid for the Optimisation Window and does not define what the time gap should be for a single campaign.

The results would show an individual can be allocated to up to 3 campaigns, but only when those campaigns are scheduled to run with at least 2 days between them.

Applying Limits with Campaign Optimisation

We can apply Audience volume constraints to a campaign being selected for Campaign Optimisation. The volume constraint is honoured within the process, alongside the Optimisation constraints applied

Results with Two Constraints in Campaign Optimisation

Here we have placed a 30,000 volume constraint on the Audience for the Newsletter campaign and can see that Campaign Optimisation has applied this limit and ensured, where it can, that the volume is satisfied .

Where an individual can be selected for multiple campaigns and has been selected within the limit, the Campaign Optimisation job will process several iterations of allocating individuals to ensure they are allocated to their most appropriate campaign. We call each iteration a pass:

On each pass, the following two stages take place:

  • Each person first “applies” for their “preferred” campaign (either the campaign with the highest priority, or for which they have the best score)

  • Each campaign then “selects” the best people who have applied, up to any set volume constraint in place .

The algorithm will stop if either:

  • all the campaigns have reached their volume constraints, or

  • all the customers have been reserved for the maximum number of campaigns allowed, or

  • given the minimum gap constraints, there are no valid campaigns for people to receive

Where an audience has a large base, but a small volume limit has been applied, the likelihood of the first reason for the algorithm stopping is substantially increased. This means that, although an individual may be eligible to be in multiple campaigns, they may only be allocated to one in the processed iteration. Once this volume limit is reached, the process does not continue to check eligibility of further campaigns.

This will be enhanced in future releases