Perform budget allocation with an attribution model
Algorithm
The algorithm uses results from an ttribution model to allocate the budget among the available channels. In the following we suppose we trained a Markov model and obtained for each channel odds and attribution.
The main steps of the algorithms are:
- Suppose we have k=1,…,K channels. Perform attribution with Markov model and store odds and path level attribution.
Let oddsk, k=1,…,K be the odds for each channel
- If costs and conversion values are available, aggregate at the channel level the path level attribution of the conversion value.
Let costk, k=1,…,K be the costs for each channel
Let attr_valuek, k=1,…,K be the conversion value attributed to each channel
If costs and/or conversion values are not available, aggregate at the channel level the path level attribution of the number of conversions.
Let attr_convk, k=1,…,K be the conversions attributed to each channel
- Define a normalized index to be used to perform budget allocation.
If costs and conversion values are available, then:
indexk=∑kattr_valuek/costkattr_valuek/costk for each available channel k
hence indexk is the normalized ROI for channel k
If costs and/or conversion values are not available then:
indexk=∑koddskoddsk for each available channel k
- Define the new allocation for each channel.
allocationk=allocation1,k+allocation2,k+allocation3,kk=1,…,K
If costs and conversion values are available:
allocation1,k=∑kcostkcostk×(1−min_perc_budget−perc_reall)×total_budget_new
If costs and/or conversion values are not available:
allocation1,k=∑kattr_convkattr_convk×(1−min_perc_budget−perc_reall)×total_budget_new
and allocation1,k represents the quote of the budget that one doesn't want to reallocate.
While:
allocation2,k=Kmin_perc_budget×total_budget_new
and allocation2,k represents the (small) quote of budget to be equally allocated to each channel.
Finally:
allocation3,k=indexk×perc_reall×total_budget_new
and allocation3,k represents the quote of budget to be allocated proportional to index_k