Skip to main content

Budget allocation with Markov model



In the following use case, you will learn how to choose the best allocation for your budget using Markov model.

Import libraries

library(ChannelAttributionPro)

Set the password

password="mypassword"

Load data

Data = read.csv("https://app.channelattribution.net/data/Data.csv",sep=",")
print(Data)

Set the total budget you want to allocate

total_budget_new=100000

Set the percentage of the budget you want to reallocate from your previous allocation

The parameter can be set in the range (0,1]. Setting it to 0.1 means that you will reallocate the 10% of your previous allocation. Drastic changes in your previous allocation are not suggested because the allocation algorithm is based on ROI and thus it is a local optimization algorithm. We suggest to reallocate a small percentage each time

perc_reall=0.1

For each channel indicate its marketing spend

This parameter is optional. If you do not know the marketing spends you can set it to NULL

tab_costs=data.frame('channel'=c('alpha','iota','eta','beta','theta','lambda','epsilon','zeta','kappa','gamma','mi','delta'),
'value'=c(41111.43,10387.21,23816.66,6743.46,1650.4,523.52,709.94,288.77,269.46,153.57,0.61,0.43))

Perform attribution with Markov model

var_value and var_null are optional and can be set to NULL if you do not have this information

res_markov=markov_model(Data, var_path="path", var_conv="total_conversions", 
var_value="total_conversion_value",
row_sep=";", cha_sep=">", password=password)

Perform budget allocation

res=markov_budget_allocation(res_markov,total_budget_new,tab_costs,perc_reall,
min_perc_budget,server="app.channelattribution.net",
password=password)
print(res)