Markov model for the online multichannel attribution problem

••

R-package ChannelAttribution for the online multichannel attribution problem.

Davide Altomare, David Loris
2016-12-07
R-package ChannelAttribution for the online multichannel
attribution problem.
Introduction
Advertisers use a variety of online marketing channels to reach consumers and they want to know the
degree each channel contributes to their marketing success. It’s called the online multi-channel attribution
problem. In many cases, advertisers approach this problem through some simple heuristics methods that
do not take into account any customer interactions and often tend to underestimate the importance of
small channels in marketing contribution.
R-package ChannelAttribution (https://cran.r-project.org/web/packages/ChannelAttribution/index.html) provides a
function that approaches the attribution problem in a probabilistic way. It uses a k-order Markov
representation to identifying structural correlations in the customer journey data. This would allow
advertisers to give a more reliable assessment of the marketing contribution of each channel. The approach
basically follows the one presented in F. Anderl, I. Becker, F. v. Wangenheim, J.H. Schumann (2014):
Mapping the customer journey: a graph-based framework for attribution modeling. Differently for them,
we solved the estimation process using stochastic simulations. In this way it is possible to take into account
conversion values and their variability in the computation of the channel importance. The package also
contains a function that estimates three heuristic models (first-touch, last-touch and linear-touch
approach) for the same problem.
The following paragraph is a gentle introduction to Markov model. It also contains some considerations on
heuristic models.
Markov Model
Consider the following example in which we have 4 states: (START), A, B, (CONVERSION) and 3 paths
recorded:
PATH CONVERSIONS
(START) -> A -> B -> A -> B -> B -> A -> (CONVERSION) 1
(START) ->A -> B -> B -> A -> A -> (CONVERSION) 1
(START) -> A -> A -> (CONVERSION) 1
TOTAL 3
For every couple of ordered states we count the number of directed edges:
EDGE ARROW.COUNT
(START) -> A 3
(START) -> B 0
A -> A 2
A -> B 3
A -> (CONVERSION) 3
B -> A 3
B -> B 2
B -> (CONVERSION) 0
TOTAL 16
From the table we can calculate the transition probabilities between states:
EDGE ARROW.COUNT TRANSITION.PROBABILITIES
(START) -> A 3 3/3
(START) -> B 0 0
TOT (START) 3
A -> A 2 2/8
A -> B 3 3/8
A -> (CONVERSION) 3 3/8
TOT A 8
B -> A 3 3/5
B -> B 2 2/5
B -> (CONVERSION) 0 0
TOT B 5
Now we have all the information to plot the Markov Graph:
This kind of Markov Graph is called First-Order Markov Graph because the probability of reaching one state
depends only on the previous state visited.
From the Graph, or more clearly from the original data, we see that every path leads to conversion. Thus
the conversion rate of the Graph is 1.
Now we want to define a measure of channel importance using the relationship between states described
by the Graph.
Importance of channel A can be defined as the change in conversion rate if channel A is dropped from the
Graph, or in other terms if channel A becomes a NULL state.
A NULL state is an absorbing state so if one reaches this STATE can’t move on.
This Graph simplifies to
In previous Graph it’s easy to see that if channel A becomes a NULL state there is no way of reaching
conversion from START state. So conversion rate of this Graph is 0. The conversion drops from 1
(conversion of the original Graph) to 0. Thus importance of channel A (defined as the change in conversion
rate) is 1.
In similar way we define the importance of channel B as the change in conversion rate if channel B is
dropped from the Graph, or in other terms if channel B becomes a NULL state.
This Graph simplifies to:
In previous Graph we see the probability of reaching conversion from START state is 0.5. Conversion drops
from 1 (conversion rate of the original Graph) to 0.5. Thus the importance of channel B (defined as the
change in conversion rate) is 0.5.
Once we have the importance weights of every channel we can do a weighted imputation of total
conversions (3 in this case) between channels.
CHANNEL CONVERSIONS
A 2 [ =3 x 1/(1+0.5) ]
B 1 [ = 3 x 0.5/(1+0.5) ]
TOTAL 3
Now let’s go back to the original data:
PATH CONVERSIONS
(START) -> A -> B -> A -> B -> B -> A -> (CONVERSION) 1
(START) ->A -> B -> B -> A -> A -> (CONVERSION) 1
(START) -> A -> A -> (CONVERSION) 1
TOTAL 3
We see that if we use a first-touch or last-touch approach, all the conversions are assigned to channel A,
despite the important work of channel B in ā€œconversion gameā€ is clear from the data.
The channel attribution problem can be viewed as a football match, to better understand how different
approaches work. So channels can be viewed as players, paths are game actions and conversions are goals.
Markov Model analyses relationships between game actions to understand the role of the player in scoring.
While heuristic approach analyzes one action (path) at the time.
So last-touch approach rewards only players who scored, while first-touch approach rewards only players
who started the action. Linear approach rewards with the same credit to every player who took part the
action, while time-decay approaches gives subjective weights to every player who took part the action.
As we have seen Markov Model require as inputs paths and total conversions and does not require
subjective assumptions, differently from heuristic approaches.
Package ChannelAttribution
In the following example we will show how ChannelAttribution can be used for the multichannel
attribution problem.
Load libraries and data:
library(ChannelAttribution)
library(reshape2)
library(ggplot2)
data(PathData)
Estimate heuristic models:
H=heuristic_models(Data,'path','total_conversions',var_value='total_conversion_value')
Estimate Markov model:
M=markov_model(Data, 'path', 'total_conversions', var_value='total_conversion_value')
Plot total conversions:
R=merge(H,M,by='channel_name')
R1=R[,(colnames(R)%in%c("channel_name","first_touch_conversions","last_touch_conversions","linear
_touch_conversions","total_conversion"))]
colnames(R1)=c('channel_name','first_touch','last_touch','linear_touch','markov_model')
R1=melt(R1,id="channel_name")
ggplot(R1, aes(channel_name, value, fill = variable)) +
geom_bar(stat="identity", position = "dodge") +
ggtitle("TOTAL CONVERSIONS")+
theme(axis.title.x = element_text(vjust=-2))+
theme(axis.title.y = element_text(vjust=+2))+
theme(title = element_text(vjust=2))+
theme(text = element_text(size=16)) +
theme(plot.title=element_text(size=20)) +
ylab("")
Plot total value:
R2=R[,(colnames(R)%in%c("channel_name","first_touch_value","last_touch_value","linear_touch_value
","total_conversion_value"))]
colnames(R2)=c('channel_name','first_touch','last_touch','linear_touch','markov_model')
R2=melt(R2,id="channel_name")
ggplot(R2, aes(channel_name, value, fill = variable)) +
geom_bar(stat="identity", position = "dodge") +
ggtitle("TOTAL VALUE")+
theme(axis.title.x = element_text(vjust=-2))+
theme(axis.title.y = element_text(vjust=+2))+
theme(title = element_text(vjust=2))+
theme(text = element_text(size=16)) +
theme(plot.title=element_text(size=20)) +
ylab("")
ChannelAttribution Tool
ChannelAttribution can be used through a user-friendly graphical interface without interfacing with R-code. Channel
Attribution Tool can be found at https://adavide1982.shinyapps.io/ChannelAttribution.
ChannelAttribution Tool can be also used locally through package ChannelAttributionApp.
library(ChannelAttributionApp)
CAapp()
Markov model for the online multichannel attribution problem

Recommended

Multi-Channel Attribution (an Introduction + Markov chain application) by
Multi-Channel Attribution (an Introduction + Markov chain application)Multi-Channel Attribution (an Introduction + Markov chain application)
Multi-Channel Attribution (an Introduction + Markov chain application)Gerald Logor
528 views•15 slides
Marketo Best Practise - Lead Lifecycle by
Marketo Best Practise - Lead Lifecycle Marketo Best Practise - Lead Lifecycle
Marketo Best Practise - Lead Lifecycle Marketo
2K views•24 slides
All things data presentation Analytics Attribution models by
All things data presentation Analytics Attribution modelsAll things data presentation Analytics Attribution models
All things data presentation Analytics Attribution modelsJacob Kildebogaard
1.2K views•40 slides
Global Digital 2022 Report by
Global Digital 2022 ReportGlobal Digital 2022 Report
Global Digital 2022 ReportMarketingTrips
1.8K views•298 slides
AdWords strategy by
AdWords strategy AdWords strategy
AdWords strategy Anvesha Poswalia
3.1K views•41 slides
How Terminus Does Account-Based Marketing by
How Terminus Does Account-Based MarketingHow Terminus Does Account-Based Marketing
How Terminus Does Account-Based MarketingSangram Vajre
1.2K views•51 slides

More Related Content

What's hot

Marketing Attribution Modeling by
Marketing Attribution ModelingMarketing Attribution Modeling
Marketing Attribution ModelingMediacurrent
2.7K views•59 slides
Plan de Marketing Digital by
Plan de Marketing DigitalPlan de Marketing Digital
Plan de Marketing DigitalFelipe Ramirez Mejia
805 views•49 slides
WeRoad: zero budget campaign - Fabio Bin by
WeRoad:  zero budget campaign - Fabio BinWeRoad:  zero budget campaign - Fabio Bin
WeRoad: zero budget campaign - Fabio BinFabio Bin
193 views•55 slides
LinkedIn-Lead-Generation-Strategies-System-to-2-10X-Your-Sales-in-2023.pdf by
LinkedIn-Lead-Generation-Strategies-System-to-2-10X-Your-Sales-in-2023.pdfLinkedIn-Lead-Generation-Strategies-System-to-2-10X-Your-Sales-in-2023.pdf
LinkedIn-Lead-Generation-Strategies-System-to-2-10X-Your-Sales-in-2023.pdfAdrian503875
76 views•68 slides
Google Analytics for Dummies by
Google Analytics for DummiesGoogle Analytics for Dummies
Google Analytics for DummiesTim Lelek
5.1K views•29 slides
Seo and page rank algorithm by
Seo and page rank algorithmSeo and page rank algorithm
Seo and page rank algorithmNilkanth Shirodkar
1.2K views•26 slides

What's hot(20)

Marketing Attribution Modeling by Mediacurrent
Marketing Attribution ModelingMarketing Attribution Modeling
Marketing Attribution Modeling
Mediacurrent•2.7K views
WeRoad: zero budget campaign - Fabio Bin by Fabio Bin
WeRoad:  zero budget campaign - Fabio BinWeRoad:  zero budget campaign - Fabio Bin
WeRoad: zero budget campaign - Fabio Bin
Fabio Bin•193 views
LinkedIn-Lead-Generation-Strategies-System-to-2-10X-Your-Sales-in-2023.pdf by Adrian503875
LinkedIn-Lead-Generation-Strategies-System-to-2-10X-Your-Sales-in-2023.pdfLinkedIn-Lead-Generation-Strategies-System-to-2-10X-Your-Sales-in-2023.pdf
LinkedIn-Lead-Generation-Strategies-System-to-2-10X-Your-Sales-in-2023.pdf
Adrian503875•76 views
Google Analytics for Dummies by Tim Lelek
Google Analytics for DummiesGoogle Analytics for Dummies
Google Analytics for Dummies
Tim Lelek•5.1K views
New Marketing Ideas, Strategies & Channels For 2022 by Search Engine Journal
New Marketing Ideas, Strategies & Channels For 2022New Marketing Ideas, Strategies & Channels For 2022
New Marketing Ideas, Strategies & Channels For 2022
Search Engine Journal•2.9K views
App Store Optimization - 2020 Ultimate Guide for Google Play Store ASO by TheTool - ASO Tool
App Store Optimization - 2020 Ultimate Guide for Google Play Store ASOApp Store Optimization - 2020 Ultimate Guide for Google Play Store ASO
App Store Optimization - 2020 Ultimate Guide for Google Play Store ASO
TheTool - ASO Tool•75.4K views
Account based marketing: from strategy and plans to execution and insights by Engagio
Account based marketing: from strategy and plans to execution and insightsAccount based marketing: from strategy and plans to execution and insights
Account based marketing: from strategy and plans to execution and insights
Engagio•4.7K views
Top 10 Free SEO Tools by Simplilearn
Top 10 Free SEO ToolsTop 10 Free SEO Tools
Top 10 Free SEO Tools
Simplilearn•103 views
page ranking algorithm by Javed Khan
page ranking algorithmpage ranking algorithm
page ranking algorithm
Javed Khan•2K views
Marketo Account-Based Marketing by Marketo
Marketo Account-Based MarketingMarketo Account-Based Marketing
Marketo Account-Based Marketing
Marketo•745 views
Web analytics presentation by Jim Jansen
Web analytics presentationWeb analytics presentation
Web analytics presentation
Jim Jansen•15.4K views
Digital 2022 Tanzania (February 2022) v01 by DataReportal
Digital 2022 Tanzania (February 2022) v01Digital 2022 Tanzania (February 2022) v01
Digital 2022 Tanzania (February 2022) v01
DataReportal•11.4K views
Google Smart Bidding, tROAS, Incrementality CLV, and Paid Search by Crealytics
Google Smart Bidding, tROAS, Incrementality CLV, and Paid SearchGoogle Smart Bidding, tROAS, Incrementality CLV, and Paid Search
Google Smart Bidding, tROAS, Incrementality CLV, and Paid Search
Crealytics•1.4K views
Edu4Sure - Google Ads Fundamentals by Edu4Sure
Edu4Sure - Google Ads FundamentalsEdu4Sure - Google Ads Fundamentals
Edu4Sure - Google Ads Fundamentals
Edu4Sure•454 views
Webinar DV 360 Self Serve _ 25 March 2022.pptx by Tatvic Analytics
Webinar DV 360 Self Serve _ 25 March 2022.pptxWebinar DV 360 Self Serve _ 25 March 2022.pptx
Webinar DV 360 Self Serve _ 25 March 2022.pptx
Tatvic Analytics•984 views
Udacity Digital Marketing Nanodegree Portfolio by Supriya Patankar
Udacity Digital Marketing Nanodegree PortfolioUdacity Digital Marketing Nanodegree Portfolio
Udacity Digital Marketing Nanodegree Portfolio
Supriya Patankar•241 views
Digital 2023 Peru (February 2023) v01 by DataReportal
Digital 2023 Peru (February 2023) v01Digital 2023 Peru (February 2023) v01
Digital 2023 Peru (February 2023) v01
DataReportal•1K views

Viewers also liked

Webinar: Improve Campaign Results with Multi-Channel Funnels and Acquisio Att... by
Webinar: Improve Campaign Results with Multi-Channel Funnels and Acquisio Att...Webinar: Improve Campaign Results with Multi-Channel Funnels and Acquisio Att...
Webinar: Improve Campaign Results with Multi-Channel Funnels and Acquisio Att...Acquisio
997 views•36 slides
Multi touch attribution & attribution modeling - GAUC Sydney Melbourne - 2013... by
Multi touch attribution & attribution modeling - GAUC Sydney Melbourne - 2013...Multi touch attribution & attribution modeling - GAUC Sydney Melbourne - 2013...
Multi touch attribution & attribution modeling - GAUC Sydney Melbourne - 2013...Vinoaj Vijeyakumaar
4.6K views•64 slides
How to Build an Attribution Solution in 1 Day by
How to Build an Attribution Solution in 1 DayHow to Build an Attribution Solution in 1 Day
How to Build an Attribution Solution in 1 DayPhillip Law
2K views•42 slides
How To Make Your Marketing Match Your Reality (#mozcon 2015) by
How To Make Your Marketing Match Your Reality (#mozcon 2015)How To Make Your Marketing Match Your Reality (#mozcon 2015)
How To Make Your Marketing Match Your Reality (#mozcon 2015)Dana DiTomaso
20.1K views•49 slides
GAUC 2017 Workshop Attribution with Google Analytics: Peter Falcone (Google) by
GAUC 2017 Workshop Attribution with Google Analytics: Peter Falcone (Google)GAUC 2017 Workshop Attribution with Google Analytics: Peter Falcone (Google)
GAUC 2017 Workshop Attribution with Google Analytics: Peter Falcone (Google)e-dialog GmbH
1.7K views•39 slides
Attribution Super Modeling with Google Analytics by
Attribution Super Modeling with Google AnalyticsAttribution Super Modeling with Google Analytics
Attribution Super Modeling with Google Analyticselliottkoppel
1.3K views•48 slides

Viewers also liked(16)

Webinar: Improve Campaign Results with Multi-Channel Funnels and Acquisio Att... by Acquisio
Webinar: Improve Campaign Results with Multi-Channel Funnels and Acquisio Att...Webinar: Improve Campaign Results with Multi-Channel Funnels and Acquisio Att...
Webinar: Improve Campaign Results with Multi-Channel Funnels and Acquisio Att...
Acquisio•997 views
Multi touch attribution & attribution modeling - GAUC Sydney Melbourne - 2013... by Vinoaj Vijeyakumaar
Multi touch attribution & attribution modeling - GAUC Sydney Melbourne - 2013...Multi touch attribution & attribution modeling - GAUC Sydney Melbourne - 2013...
Multi touch attribution & attribution modeling - GAUC Sydney Melbourne - 2013...
Vinoaj Vijeyakumaar•4.6K views
How to Build an Attribution Solution in 1 Day by Phillip Law
How to Build an Attribution Solution in 1 DayHow to Build an Attribution Solution in 1 Day
How to Build an Attribution Solution in 1 Day
Phillip Law•2K views
How To Make Your Marketing Match Your Reality (#mozcon 2015) by Dana DiTomaso
How To Make Your Marketing Match Your Reality (#mozcon 2015)How To Make Your Marketing Match Your Reality (#mozcon 2015)
How To Make Your Marketing Match Your Reality (#mozcon 2015)
Dana DiTomaso•20.1K views
GAUC 2017 Workshop Attribution with Google Analytics: Peter Falcone (Google) by e-dialog GmbH
GAUC 2017 Workshop Attribution with Google Analytics: Peter Falcone (Google)GAUC 2017 Workshop Attribution with Google Analytics: Peter Falcone (Google)
GAUC 2017 Workshop Attribution with Google Analytics: Peter Falcone (Google)
e-dialog GmbH•1.7K views
Attribution Super Modeling with Google Analytics by elliottkoppel
Attribution Super Modeling with Google AnalyticsAttribution Super Modeling with Google Analytics
Attribution Super Modeling with Google Analytics
elliottkoppel•1.3K views
Advanced attribution model by Aspa Lekka
Advanced attribution model Advanced attribution model
Advanced attribution model
Aspa Lekka•7.1K views
Introduction to Google Analytics by Dana DiTomaso
Introduction to Google AnalyticsIntroduction to Google Analytics
Introduction to Google Analytics
Dana DiTomaso•3.2K views
Webinar: Survival Analysis for Marketing Attribution - July 17, 2013 by Revolution Analytics
Webinar: Survival Analysis for Marketing Attribution - July 17, 2013Webinar: Survival Analysis for Marketing Attribution - July 17, 2013
Webinar: Survival Analysis for Marketing Attribution - July 17, 2013
Revolution Analytics•36.2K views
Digital Attribution Modeling Using Apache Spark-(Anny Chen and William Yan, A... by Spark Summit
Digital Attribution Modeling Using Apache Spark-(Anny Chen and William Yan, A...Digital Attribution Modeling Using Apache Spark-(Anny Chen and William Yan, A...
Digital Attribution Modeling Using Apache Spark-(Anny Chen and William Yan, A...
Spark Summit•6.3K views
Attribution Modeling - Case Study by Concur
Attribution Modeling - Case StudyAttribution Modeling - Case Study
Attribution Modeling - Case Study
Concur•10.3K views
Operational Attribution with Google Analytics by Jonathan Breton
Operational Attribution with Google AnalyticsOperational Attribution with Google Analytics
Operational Attribution with Google Analytics
Jonathan Breton•2.7K views
Red Door Interactive: Contribution-Attribution-Mix, Oh My! Creating Content f... by AMASanDiego
Red Door Interactive: Contribution-Attribution-Mix, Oh My! Creating Content f...Red Door Interactive: Contribution-Attribution-Mix, Oh My! Creating Content f...
Red Door Interactive: Contribution-Attribution-Mix, Oh My! Creating Content f...
AMASanDiego •1K views
Marketing Attribution 101: Understanding Attribution and Calculating Cost of ... by Kissmetrics on SlideShare
Marketing Attribution 101: Understanding Attribution and Calculating Cost of ...Marketing Attribution 101: Understanding Attribution and Calculating Cost of ...
Marketing Attribution 101: Understanding Attribution and Calculating Cost of ...
Kissmetrics on SlideShare•10.7K views

Similar to Markov model for the online multichannel attribution problem

Robust and Real Time Detection of Curvy Lanes (Curves) Having Desired Slopes ... by
Robust and Real Time Detection of Curvy Lanes (Curves) Having Desired Slopes ...Robust and Real Time Detection of Curvy Lanes (Curves) Having Desired Slopes ...
Robust and Real Time Detection of Curvy Lanes (Curves) Having Desired Slopes ...csandit
287 views•10 slides
Robust and real time detection of by
Robust and real time detection ofRobust and real time detection of
Robust and real time detection ofcsandit
263 views•10 slides
Relationship Between Burnout And Work Engagement by
Relationship Between Burnout And Work EngagementRelationship Between Burnout And Work Engagement
Relationship Between Burnout And Work EngagementCourtney Bennett
4 views•40 slides
Line uo,please by
Line uo,pleaseLine uo,please
Line uo,pleaseheba_ahmad
267 views•14 slides
Group5 by
Group5Group5
Group5Kritika Gupta
53 views•15 slides
Adjusting PageRank parameters and comparing results : REPORT by
Adjusting PageRank parameters and comparing results : REPORTAdjusting PageRank parameters and comparing results : REPORT
Adjusting PageRank parameters and comparing results : REPORTSubhajit Sahu
48 views•13 slides

Similar to Markov model for the online multichannel attribution problem(20)

Robust and Real Time Detection of Curvy Lanes (Curves) Having Desired Slopes ... by csandit
Robust and Real Time Detection of Curvy Lanes (Curves) Having Desired Slopes ...Robust and Real Time Detection of Curvy Lanes (Curves) Having Desired Slopes ...
Robust and Real Time Detection of Curvy Lanes (Curves) Having Desired Slopes ...
csandit•287 views
Robust and real time detection of by csandit
Robust and real time detection ofRobust and real time detection of
Robust and real time detection of
csandit•263 views
Relationship Between Burnout And Work Engagement by Courtney Bennett
Relationship Between Burnout And Work EngagementRelationship Between Burnout And Work Engagement
Relationship Between Burnout And Work Engagement
Courtney Bennett•4 views
Line uo,please by heba_ahmad
Line uo,pleaseLine uo,please
Line uo,please
heba_ahmad•267 views
Adjusting PageRank parameters and comparing results : REPORT by Subhajit Sahu
Adjusting PageRank parameters and comparing results : REPORTAdjusting PageRank parameters and comparing results : REPORT
Adjusting PageRank parameters and comparing results : REPORT
Subhajit Sahu•48 views
Adjusting PageRank parameters and comparing results : REPORT by Subhajit Sahu
Adjusting PageRank parameters and comparing results : REPORTAdjusting PageRank parameters and comparing results : REPORT
Adjusting PageRank parameters and comparing results : REPORT
Subhajit Sahu•62 views
Traffic assignment model with fuzzy travel cost by Marco De Mitri
Traffic assignment model with fuzzy travel costTraffic assignment model with fuzzy travel cost
Traffic assignment model with fuzzy travel cost
Marco De Mitri•477 views
Adjusting PageRank parameters and comparing results : REPORT by Subhajit Sahu
Adjusting PageRank parameters and comparing results : REPORTAdjusting PageRank parameters and comparing results : REPORT
Adjusting PageRank parameters and comparing results : REPORT
Subhajit Sahu•69 views
Gradient Decent in Linear Regression.pptx by alphaomega55
Gradient Decent in Linear Regression.pptxGradient Decent in Linear Regression.pptx
Gradient Decent in Linear Regression.pptx
alphaomega55•4 views
Customer Lifetime Value Modeling by Asoka Korale
Customer Lifetime Value ModelingCustomer Lifetime Value Modeling
Customer Lifetime Value Modeling
Asoka Korale•72 views
Methods for Reducing the Activity Switching Factor by IJERD Editor
Methods for Reducing the Activity Switching FactorMethods for Reducing the Activity Switching Factor
Methods for Reducing the Activity Switching Factor
IJERD Editor•1.3K views
A Review on Channel Routing On VLSI Physical Design by IOSR Journals
A Review on Channel Routing On VLSI Physical DesignA Review on Channel Routing On VLSI Physical Design
A Review on Channel Routing On VLSI Physical Design
IOSR Journals•491 views
bus and memory tranfer (computer organaization) by Siddhi Viradiya
bus and memory tranfer (computer organaization)bus and memory tranfer (computer organaization)
bus and memory tranfer (computer organaization)
Siddhi Viradiya•43K views
Resolution of Some Cases of Bgp Inter-Domain Oscillations with the Spvpoc Alg... by ijceronline
Resolution of Some Cases of Bgp Inter-Domain Oscillations with the Spvpoc Alg...Resolution of Some Cases of Bgp Inter-Domain Oscillations with the Spvpoc Alg...
Resolution of Some Cases of Bgp Inter-Domain Oscillations with the Spvpoc Alg...
ijceronline•636 views
cs 3351 dpco by udhayaveenaa
cs 3351 dpcocs 3351 dpco
cs 3351 dpco
udhayaveenaa•399 views
Automatic Number Plate Recognition System by Dustin Pytko
Automatic Number Plate Recognition SystemAutomatic Number Plate Recognition System
Automatic Number Plate Recognition System
Dustin Pytko•3 views

Recently uploaded

Accounts Class 12 project cash flow statement and ratio analysis by
Accounts Class 12 project cash flow statement and ratio analysisAccounts Class 12 project cash flow statement and ratio analysis
Accounts Class 12 project cash flow statement and ratio analysisJinendraPamecha
76 views•42 slides
Engaging Senior Leaders to Accelerate Your Continuous Improvement Program by
Engaging Senior Leaders to Accelerate Your Continuous Improvement ProgramEngaging Senior Leaders to Accelerate Your Continuous Improvement Program
Engaging Senior Leaders to Accelerate Your Continuous Improvement ProgramKaiNexus
93 views•29 slides
v s.pptx by
v s.pptxv s.pptx
v s.pptxravikhadalwal
14 views•2 slides
Basic of Air Ticketing & IATA Geography by
Basic of Air Ticketing & IATA GeographyBasic of Air Ticketing & IATA Geography
Basic of Air Ticketing & IATA GeographyMd Shaifullar Rabbi
73 views•27 slides
davood_keshavarz_david_keshavarz_criminal_conviction_prison_sentence_judgemen... by
davood_keshavarz_david_keshavarz_criminal_conviction_prison_sentence_judgemen...davood_keshavarz_david_keshavarz_criminal_conviction_prison_sentence_judgemen...
davood_keshavarz_david_keshavarz_criminal_conviction_prison_sentence_judgemen...morshedislam3
22 views•5 slides
HSI CareFree Service Plan 2023 (2).pdf by
HSI CareFree Service Plan 2023 (2).pdfHSI CareFree Service Plan 2023 (2).pdf
HSI CareFree Service Plan 2023 (2).pdfHomeSmart Installations
45 views•1 slide

Recently uploaded(20)

Accounts Class 12 project cash flow statement and ratio analysis by JinendraPamecha
Accounts Class 12 project cash flow statement and ratio analysisAccounts Class 12 project cash flow statement and ratio analysis
Accounts Class 12 project cash flow statement and ratio analysis
JinendraPamecha•76 views
Engaging Senior Leaders to Accelerate Your Continuous Improvement Program by KaiNexus
Engaging Senior Leaders to Accelerate Your Continuous Improvement ProgramEngaging Senior Leaders to Accelerate Your Continuous Improvement Program
Engaging Senior Leaders to Accelerate Your Continuous Improvement Program
KaiNexus•93 views
davood_keshavarz_david_keshavarz_criminal_conviction_prison_sentence_judgemen... by morshedislam3
davood_keshavarz_david_keshavarz_criminal_conviction_prison_sentence_judgemen...davood_keshavarz_david_keshavarz_criminal_conviction_prison_sentence_judgemen...
davood_keshavarz_david_keshavarz_criminal_conviction_prison_sentence_judgemen...
morshedislam3•22 views
Assignment 4: Reporting to Management.pptx by BethanyAline
Assignment 4: Reporting to Management.pptxAssignment 4: Reporting to Management.pptx
Assignment 4: Reporting to Management.pptx
BethanyAline•26 views
Integrating Talent Management Practices by Seta Wicaksana
Integrating Talent Management PracticesIntegrating Talent Management Practices
Integrating Talent Management Practices
Seta Wicaksana•161 views
Learning from Failure_ Lessons from Failed Startups.pptx by Codeventures
Learning from Failure_ Lessons from Failed Startups.pptxLearning from Failure_ Lessons from Failed Startups.pptx
Learning from Failure_ Lessons from Failed Startups.pptx
Codeventures•17 views
The Talent Management Navigator Performance Management by Seta Wicaksana
The Talent Management Navigator Performance ManagementThe Talent Management Navigator Performance Management
The Talent Management Navigator Performance Management
Seta Wicaksana•39 views
Better Appeals and Solicitations - Bloomerang.pdf by Bloomerang
Better Appeals and Solicitations - Bloomerang.pdfBetter Appeals and Solicitations - Bloomerang.pdf
Better Appeals and Solicitations - Bloomerang.pdf
Bloomerang•119 views
Nevigating Sucess.pdf by TEWMAGAZINE
Nevigating Sucess.pdfNevigating Sucess.pdf
Nevigating Sucess.pdf
TEWMAGAZINE•28 views
Netflix Inc. by 125071027
Netflix Inc.Netflix Inc.
Netflix Inc.
125071027•14 views
Imports Next Level.pdf by Bloomerang
Imports Next Level.pdfImports Next Level.pdf
Imports Next Level.pdf
Bloomerang•179 views
On the Concept of Discovery Power of Enterprise Modeling Languages and its Re... by Ilia Bider
On the Concept of Discovery Power of Enterprise Modeling Languages and its Re...On the Concept of Discovery Power of Enterprise Modeling Languages and its Re...
On the Concept of Discovery Power of Enterprise Modeling Languages and its Re...
Ilia Bider•16 views
Navigating the Complexity of Derivatives Valuation šŸ“ˆ by ValAdvisor
Navigating the Complexity of Derivatives Valuation šŸ“ˆNavigating the Complexity of Derivatives Valuation šŸ“ˆ
Navigating the Complexity of Derivatives Valuation šŸ“ˆ
ValAdvisor•17 views
Irigoyen_231129 - Around the world in 5 questions.pdf by bradgallagher6
Irigoyen_231129 - Around the world in 5 questions.pdfIrigoyen_231129 - Around the world in 5 questions.pdf
Irigoyen_231129 - Around the world in 5 questions.pdf
bradgallagher6•16 views
Bloomerang Thank Yous Dec 2023.pdf by Bloomerang
Bloomerang Thank Yous Dec 2023.pdfBloomerang Thank Yous Dec 2023.pdf
Bloomerang Thank Yous Dec 2023.pdf
Bloomerang•168 views
Valuation Quarterly Webinar Dec23.pdf by FelixPerez547899
Valuation Quarterly Webinar Dec23.pdfValuation Quarterly Webinar Dec23.pdf
Valuation Quarterly Webinar Dec23.pdf
FelixPerez547899•70 views

Markov model for the online multichannel attribution problem

  • 1. Davide Altomare, David Loris 2016-12-07 R-package ChannelAttribution for the online multichannel attribution problem. Introduction Advertisers use a variety of online marketing channels to reach consumers and they want to know the degree each channel contributes to their marketing success. It’s called the online multi-channel attribution problem. In many cases, advertisers approach this problem through some simple heuristics methods that do not take into account any customer interactions and often tend to underestimate the importance of small channels in marketing contribution. R-package ChannelAttribution (https://cran.r-project.org/web/packages/ChannelAttribution/index.html) provides a function that approaches the attribution problem in a probabilistic way. It uses a k-order Markov representation to identifying structural correlations in the customer journey data. This would allow advertisers to give a more reliable assessment of the marketing contribution of each channel. The approach basically follows the one presented in F. Anderl, I. Becker, F. v. Wangenheim, J.H. Schumann (2014): Mapping the customer journey: a graph-based framework for attribution modeling. Differently for them, we solved the estimation process using stochastic simulations. In this way it is possible to take into account conversion values and their variability in the computation of the channel importance. The package also contains a function that estimates three heuristic models (first-touch, last-touch and linear-touch approach) for the same problem. The following paragraph is a gentle introduction to Markov model. It also contains some considerations on heuristic models. Markov Model Consider the following example in which we have 4 states: (START), A, B, (CONVERSION) and 3 paths recorded: PATH CONVERSIONS (START) -> A -> B -> A -> B -> B -> A -> (CONVERSION) 1 (START) ->A -> B -> B -> A -> A -> (CONVERSION) 1 (START) -> A -> A -> (CONVERSION) 1 TOTAL 3 For every couple of ordered states we count the number of directed edges: EDGE ARROW.COUNT (START) -> A 3 (START) -> B 0 A -> A 2 A -> B 3 A -> (CONVERSION) 3 B -> A 3 B -> B 2
  • 2. B -> (CONVERSION) 0 TOTAL 16 From the table we can calculate the transition probabilities between states: EDGE ARROW.COUNT TRANSITION.PROBABILITIES (START) -> A 3 3/3 (START) -> B 0 0 TOT (START) 3 A -> A 2 2/8 A -> B 3 3/8 A -> (CONVERSION) 3 3/8 TOT A 8 B -> A 3 3/5 B -> B 2 2/5 B -> (CONVERSION) 0 0 TOT B 5 Now we have all the information to plot the Markov Graph: This kind of Markov Graph is called First-Order Markov Graph because the probability of reaching one state depends only on the previous state visited. From the Graph, or more clearly from the original data, we see that every path leads to conversion. Thus the conversion rate of the Graph is 1. Now we want to define a measure of channel importance using the relationship between states described by the Graph. Importance of channel A can be defined as the change in conversion rate if channel A is dropped from the Graph, or in other terms if channel A becomes a NULL state. A NULL state is an absorbing state so if one reaches this STATE can’t move on.
  • 3. This Graph simplifies to In previous Graph it’s easy to see that if channel A becomes a NULL state there is no way of reaching conversion from START state. So conversion rate of this Graph is 0. The conversion drops from 1 (conversion of the original Graph) to 0. Thus importance of channel A (defined as the change in conversion rate) is 1. In similar way we define the importance of channel B as the change in conversion rate if channel B is dropped from the Graph, or in other terms if channel B becomes a NULL state.
  • 4. This Graph simplifies to: In previous Graph we see the probability of reaching conversion from START state is 0.5. Conversion drops from 1 (conversion rate of the original Graph) to 0.5. Thus the importance of channel B (defined as the change in conversion rate) is 0.5. Once we have the importance weights of every channel we can do a weighted imputation of total conversions (3 in this case) between channels. CHANNEL CONVERSIONS A 2 [ =3 x 1/(1+0.5) ] B 1 [ = 3 x 0.5/(1+0.5) ] TOTAL 3 Now let’s go back to the original data: PATH CONVERSIONS (START) -> A -> B -> A -> B -> B -> A -> (CONVERSION) 1 (START) ->A -> B -> B -> A -> A -> (CONVERSION) 1 (START) -> A -> A -> (CONVERSION) 1 TOTAL 3 We see that if we use a first-touch or last-touch approach, all the conversions are assigned to channel A, despite the important work of channel B in ā€œconversion gameā€ is clear from the data. The channel attribution problem can be viewed as a football match, to better understand how different approaches work. So channels can be viewed as players, paths are game actions and conversions are goals. Markov Model analyses relationships between game actions to understand the role of the player in scoring. While heuristic approach analyzes one action (path) at the time. So last-touch approach rewards only players who scored, while first-touch approach rewards only players who started the action. Linear approach rewards with the same credit to every player who took part the action, while time-decay approaches gives subjective weights to every player who took part the action. As we have seen Markov Model require as inputs paths and total conversions and does not require subjective assumptions, differently from heuristic approaches.
  • 5. Package ChannelAttribution In the following example we will show how ChannelAttribution can be used for the multichannel attribution problem. Load libraries and data: library(ChannelAttribution) library(reshape2) library(ggplot2) data(PathData) Estimate heuristic models: H=heuristic_models(Data,'path','total_conversions',var_value='total_conversion_value') Estimate Markov model: M=markov_model(Data, 'path', 'total_conversions', var_value='total_conversion_value') Plot total conversions: R=merge(H,M,by='channel_name') R1=R[,(colnames(R)%in%c("channel_name","first_touch_conversions","last_touch_conversions","linear _touch_conversions","total_conversion"))] colnames(R1)=c('channel_name','first_touch','last_touch','linear_touch','markov_model') R1=melt(R1,id="channel_name") ggplot(R1, aes(channel_name, value, fill = variable)) + geom_bar(stat="identity", position = "dodge") + ggtitle("TOTAL CONVERSIONS")+ theme(axis.title.x = element_text(vjust=-2))+ theme(axis.title.y = element_text(vjust=+2))+ theme(title = element_text(vjust=2))+ theme(text = element_text(size=16)) + theme(plot.title=element_text(size=20)) + ylab("")
  • 6. Plot total value: R2=R[,(colnames(R)%in%c("channel_name","first_touch_value","last_touch_value","linear_touch_value ","total_conversion_value"))] colnames(R2)=c('channel_name','first_touch','last_touch','linear_touch','markov_model') R2=melt(R2,id="channel_name") ggplot(R2, aes(channel_name, value, fill = variable)) + geom_bar(stat="identity", position = "dodge") + ggtitle("TOTAL VALUE")+ theme(axis.title.x = element_text(vjust=-2))+ theme(axis.title.y = element_text(vjust=+2))+ theme(title = element_text(vjust=2))+ theme(text = element_text(size=16)) + theme(plot.title=element_text(size=20)) + ylab("") ChannelAttribution Tool ChannelAttribution can be used through a user-friendly graphical interface without interfacing with R-code. Channel Attribution Tool can be found at https://adavide1982.shinyapps.io/ChannelAttribution. ChannelAttribution Tool can be also used locally through package ChannelAttributionApp. library(ChannelAttributionApp) CAapp()