Skip to content
Last updated

Multi Touch Attribution

Multi-touch attribution (MTA) is a method of marketing measurement, determining the value of each customer touchpoint that leads to a conversion.

MTA helps marketers to figure out which marketing channels or campaigns should be credited with the conversion. Marketers can optimize marketing channels using this notebook.

Learn more about MTA through this TD blog post.

Assumed Input

This notebook assumes a user journey table as follow:

tstampuserchannelconversion
1596012307yl38g61s2xsfmc0
1596012340d4dbvpwcyjinstagram0
1596012427egeaf1po46facebook0
1596012553gls9vyk2degoogle1
1596012645ps6cc25f24instagram0
............

Each row represents a touchpoint with a timestamp (unix time or datetime) of a user.

  • tstamp accepts unix time (long) or datetime formats.
  • channel is typically a marketing channel such as facebook.
  • conversion values are numerical integer/float or boolean values meaning how much conversion value can be obtained through the touchpoint.

You can use alternative column names by setting notebook parameters.

Expected Outcomes

The outcome of the MTA notebook is an exploration of touchpoints, and the calculation of attributions of each (marketing) channel via various Attribution Models, both Heuristic models and Algorithmic models.

Supported Heuristic models are:

  • Last Touch
  • Last Touch Non-Direct
  • First Touch
  • Linear
  • Time Decay
  • Position Based (U-shaped/W-shaped)

Supported Algorithmic models are:

  • Shapley Value
  • Markov Chains

You can export channel interactions, Shapley attribution for each conversion paths/journey, and/or attributed conversions for each channel as TD tables.

Some example visualizations from the MTA Notebook are shown below:

Workflow Example

Find a sample workflow in Treasure Boxes.

+run_mta:
  ipynb>:
    notebook: MTA
    # required param
    input_table: ml_datasets.mta
    # optional param
    tstamp_column: tstamp
    user_column: user
    channel_column: channel
    conversion_column: conversion

Parameters

Parameter nameParameter on ConsoleDescriptionDefault Value
docker.task_memDocker Task MemTask memory size. Available values are 64g, 128g (default), 256g, 384g, or 512g depending on your contracted tiers128g
input_tableInput Tablespecify a TD table to run MTA as dbname.table_name-
tstamp_columnTstamp Columntimestamp column nametstamp
user_columnUser Columnuser column nameuser
channel_columnChannel Columnchannel column namechannel
conversion_columnConversion Columnconversion column nameconversion
ignore_channelsIgnore ChannelsSpecify a string list of channels to ignoreNone
first_touchFirst TouchPosition-based modeling parameter to control the first touch importance such as 0.4 (40%)0.4
last_touchLast TouchPosition-based modeling parameter to control the last touch importance such as 0.4 (40%)0.4
overwrite_channelOverwrite ChannelParameter for Last touch Non-Direct modeling. Replace touchpoints with specified channel with one of the previous touchpointsNone
decay_over_timeDecay Over TimeTime decal modeling parameter to specify percentage that will be lost by time away from the conversion.0.6
decey_frequencyDecayDecey FrequencyTime decal modeling parameter to specify a frequency/interval that the decay will happen.12
shapely_lookback_sizeShapely Lookback SizeShapley attribute modeling parameter to define a limit of how long a chain of channels is in every journey4
export_channel_interactionsExport Channel InteractionsOutput table name to export channel interactionsNone
export_shapley_attributionsExport Shapley AttributionsOutput table name to export shapley attribution for each conversion pathsNone
export_attributed_conversionsExport Attributed ConversionsOutput table name to export attributed conversions for each channelNone