Optimization of an advertising campaign for launching a new product on the market
Description: The modern world is unthinkable without advertising. Advertising is the engine of progress.
When developing and conducting advertising campaigns, companies strive to maximize the effectiveness of their advertising dollars. In this case, the effectiveness of advertising is measured by the degree to which the campaign goals are achieved. The main goals of an advertising campaign can be:
Increase in sales;
Attraction of new clients;
Launch of a new product on the market;
Increasing/maintaining market share or profit level.
When developing and planning an advertising campaigns, it is necessary to take into account many factors that influence the final effectiveness of advertising, namely:
Characteristics of advertising channels (availability, cost, etc.);
Structure and composition of the target audience of each advertising channel;
Conversion rates for various advertising channels;
Limitation of the budget allocated for advertising;
Cost of 1 impression/click;
Localization of the target audience;
The intensity of advertising displays during the day, week;
Marketing activity of competitors;
Mathematical optimization allows you to synchronize all the specified factors and limitations of advertising channels with each other, and determine, among many options, the most effective (from the point of view of campaign goals) plan for investing in advertising.
Tags: Marketing, Advertisement, Deterministic model, Piecewise-linear, mip, ampl-only, cbc
Notebook author: Mikhail Riabtsev <mail@solverytic.com>
1. Problem statement
Let’s start by downloading the necessary extensions and libraries
The company plans to launch a new product on the market of 2 large cities (City1, City2). To inform customers about the new offer, the company is considering the possibility of placing the following types of advertisements:
|
Type of advertising |
Unit |
Cost 1 unit |
Audience, person |
Conversion, impressions to clicks, % |
0 |
TV: сhannel#1_time 0PM-5PM |
minutes |
1000 |
18000 |
3 |
1 |
TV: сhannel#1_time 5PM-10PM |
minutes |
1200 |
25000 |
3 |
2 |
Magazine A: cover |
pages |
200 |
7000 |
6 |
3 |
Magazine B: inner page |
pages |
220 |
8000 |
6 |
4 |
Radio A: time 5PM-10PM |
minutes |
200 |
11000 |
5 |
5 |
Radio B: time 5PM-10PM |
minutes |
250 |
15000 |
5 |
6 |
Subway: red line |
page to week |
250 |
15000 |
4 |
7 |
WebSite1 |
weeks |
500 |
10000 |
15 |
8 |
WebSite2 |
weeks |
400 |
7000 |
14 |
9 |
Billboard: 1place per week |
place |
400 |
3000 |
3 |
Table.1. Main characteristics of advertisements.
The audience of advertising consists of the following user segments, % of the total audience:
|
Type of advertising |
14-17 years old |
17-25 years old |
25-40 years old |
40-60 years old |
over 60 |
0 |
TV: сhannel#1_time 0PM-5PM |
7 |
25 |
25 |
27 |
16 |
1 |
TV: сhannel#1_time 5PM-10PM |
5 |
18 |
32 |
30 |
15 |
2 |
Magazine A: cover |
1 |
5 |
35 |
45 |
14 |
3 |
Magazine B: inner page |
5 |
18 |
32 |
30 |
15 |
4 |
Radio A: time 5PM-10PM |
15 |
32 |
18 |
30 |
5 |
5 |
Radio B: time 5PM-10PM |
14 |
45 |
35 |
5 |
1 |
6 |
Subway: red line |
16 |
27 |
25 |
25 |
7 |
7 |
WebSite1 |
5 |
18 |
32 |
30 |
15 |
8 |
WebSite2 |
15 |
32 |
18 |
30 |
5 |
9 |
Billboard: 1place per week |
5 |
18 |
32 |
30 |
15 |
Table.2. Segment composition of advertising audiences, %.
In addition, the audience of advertising media is distributed differently in cities (City1, City2), %:
|
Type of advertising |
City#1 |
City#2 |
0 |
TV: сhannel#1_time 0PM-5PM |
60 |
40 |
1 |
TV: сhannel#1_time 5PM-10PM |
70 |
30 |
2 |
Magazine A: cover |
0 |
100 |
3 |
Magazine B: inner page |
80 |
20 |
4 |
Radio A: time 5PM-10PM |
80 |
20 |
5 |
Radio B: time 5PM-10PM |
20 |
80 |
6 |
Subway: red line |
0 |
100 |
7 |
WebSite1 |
75 |
25 |
8 |
WebSite2 |
80 |
20 |
9 |
Billboard: 1place per week |
0 |
100 |
Table.3. Distribution of the audience of broadcasters by city, %
When developing an advertising campaign, it is necessary to take into account that the effectiveness of advertisements decreases as the number of views increases. So the first 10 views have the one indicated in Table 1. conversion rate, while the next 10 impressions are 10% less effective, and impressions >20 are 40% less effective.
Data on the reduction rate of advertising effectiveness are given in the following table, %:
|
Type of advertising |
10-20 views |
>20 views |
0 |
TV: сhannel#1_time 0PM-5PM |
10 |
40 |
1 |
TV: сhannel#1_time 5PM-10PM |
10 |
40 |
2 |
Magazine A: cover |
5 |
20 |
3 |
Magazine B: inner page |
5 |
20 |
4 |
Radio A: time 5PM-10PM |
20 |
40 |
5 |
Radio B: time 5PM-10PM |
20 |
40 |
6 |
Subway: red line |
5 |
40 |
7 |
WebSite1 |
10 |
40 |
8 |
WebSite2 |
10 |
40 |
9 |
Billboard: 1place per week |
10 |
20 |
Table.4. Indicators of decrease in the effectiveness of advertisements, %.
One of the client’s requirements is the need to allocate at least 20% of the budget to TV advertising.
Optimization goals
It is necessary to distribute the advertising budget in such a way as to maximize the following indicators:
Inform the maximum number of people about the release of a new product;
Inform the maximum number of people from the target audience (persons 25-40 years old) about the release of a new product;
Maximize the total number of conversions (purchases) of the target audience.
5. Solve problem
Use %%ampl_eval to evaluate AMPL commands and declarations
Substitution eliminates 10 variables.
10 piecewise-linear terms replaced by 30 variables and 10 constraints.
Adjusted problem:
30 variables, all linear
2 constraints, all linear; 36 nonzeros
2 inequality constraints
1 linear objective; 30 nonzeros.
cbc 2.10.10:cbc 2.10.10: optimal solution; objective 32164.7
0 simplex iterations
6. Display the solution
|
X.val |
Billboard: 1place per week |
0.000000 |
Magazine A: cover |
0.000000 |
Magazine B: inner page |
0.000000 |
Radio A: time 5PM-10PM |
20.000000 |
Radio B: time 5PM-10PM |
0.000000 |
Subway: red line |
0.000000 |
TV: сhannel#1_time 0PM-5PM |
0.000000 |
TV: сhannel#1_time 5PM-10PM |
8.333333 |
WebSite1 |
64.000000 |
WebSite2 |
10.000000 |
7. Retrieve solution as a pandas dataframe