Advertising Media Selection to Maximize "Eye's on" Media Impressions using Piecewise Linear Function:
Solution: Run 6 spots in print, 14 spots digital display in select media to maximize eye's on of 985,300 impressions
Problem, objective, constraints outlined below
Programming language: Python, PuLP package for linear programming
Solution: Run 6 spots in print, 14 spots digital display in select media to maximize eye's on of 985,300 impressions
Problem, objective, constraints outlined below
Programming language: Python, PuLP package for linear programming

Advertising Budget = $2,290,000
Media 1 Print-Mag (PM)
Media 2 Digital Display (DD)
PM Impression Results:
1-6 ads = 561,000 impressions per ad
7-10 ads = 207,000 impressions per ad
11-15 ads = 110,000 impressions per ad
16+ ads = 0 impressions per ad
DD Impressions Results:
1-4 ads = 490,000 impressions per ad
5-12 = 261,000 i/a
13-15 = 90,000 i/a
16+ = 0 i/a
Impressions = Eyes on the ad
Definition of Decision Variables::
x1 = # of PM ads that create 561,000 impressions, 6 ad spots available
x2 = # of PM ads that create 207,000 impressions, 4 ad spots available
x3 = # of PM ads that create 110,000 impressions, 5 ad spots available
y1 = # of DD ads that create 490,000 impressions, 4 ad spots available
y2 = # of DD ads that create 261,000 impressions, 8 ad spots available
y3 = # of DD ads that create 90,000 impressions, 3 ad spots available
Objective Function::
56.1x1 + 20.7x2 + 11x3 + 49y1 + 26.1y2 + 90y3
Goal is to maximize, thus function will be:
z = 56.1x1 + 20.7x2 + 11x3 + 49y1 + 26.1y2 + 90y3
Constraints::
Budget:
x1 + x2 + x3 + y1 + y2 + y3 ≤ 229
Available Spots:
x1 ≤ 6
x2 ≤ 4
x3 ≤ 5
y1 ≤ 4
y2 ≤ 8
y3 ≤ 3
x2 ≤ 4
x3 ≤ 5
y1 ≤ 4
y2 ≤ 8
y3 ≤ 3
xi,yi must be an integer, where i = 1,2,3
xi,yi ≥ 0