AI Multi-Touch Attribution System: Fair ROI Assessment for Each Channel

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1All 1566 services
AI Multi-Touch Attribution System: Fair ROI Assessment for Each Channel
Medium
~2-4 weeks
Frequently Asked Questions

AI Development Areas

AI Solution Development Stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1317
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1226
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    925
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1156
  • image_logo-advance_0.webp
    B2B Advance company logo design
    620
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    894

AI Multi-Touch Attribution

Imagine spending millions on marketing without knowing which channels actually drive sales. Last-click overvalues direct closures, while display, YouTube, and programmatic get no credit. The result: blind budget optimization, losing 15–25% of potential ROI. Data-driven attribution solves this by distributing value across all touchpoints using machine learning. At TrueTech, we specialize in AI attribution with over 5 years of experience, having implemented over 50 projects—from retail to fintech. Our models process over 5 million events daily and operate in real-time. Our turnkey attribution solution integrates seamlessly with existing stacks.

Why Last-Click Attribution is Dangerous for Your Budget

Last-click assigns 100% of value to the last touchpoint. This overrates direct and brand search, while awareness channels (display, YouTube, programmatic) remain undercredited. The result: marketers cut upper-funnel budgets, even though those channels generate demand. Based on our data, switching from last-click to data-driven attribution increases ROI by 15–25% and saves up to 30% of the marketing budget. For marketing budget optimization, a holistic view is essential.

Model Principle When to Use
Last-click 100% value to last touchpoint Simple paths with short cycles
First-click 100% value to first touchpoint Brand campaigns, lead generation
Linear Evenly across all touchpoints Many touches, no priorities
Time decay Exponential weight toward end Long cycles with warmed leads
Position-based 40% first, 40% last, 20% intermediate Balanced evaluation
Data-driven (ML) Based on real channel contribution Maximum accuracy

How Shapley Value Works in Attribution

Shapley Value fairly distributes credit based on a channel's marginal contribution across all possible coalitions. For example, if channel A together with channel B increases conversion by 20%, but without B drops to 5%, Shapley accounts for that. This approach is axiomatically fair and captures channel synergy, but for more than 15 channels, Monte Carlo approximation is needed due to exponential complexity. For a retail client, we implemented Shapley attribution, resulting in a 22% ROI increase and reallocation of 15% budget from brand to performance.

from itertools import combinations

def shapley_attribution(channels, conversion_rate_by_combination):
    n = len(channels)
    shapley_values = {ch: 0 for ch in channels}
    for ch in channels:
        for r in range(n):
            others = [c for c in channels if c != ch]
            for subset in combinations(others, r):
                subset_without = frozenset(subset)
                subset_with = frozenset(subset | {ch})
                marginal = (conversion_rate_by_combination.get(subset_with, 0) -
                           conversion_rate_by_combination.get(subset_without, 0))
                weight = (factorial(r) * factorial(n-r-1)) / factorial(n)
                shapley_values[ch] += weight * marginal
    return shapley_values

How Markov Chain Attribution Works

Another approach: model the user path as a Markov process. Each channel is a state, transitions are probabilities. A channel's contribution is measured via removal effect: how much overall conversion drops if that channel is removed. Markov Chain is faster than Shapley and suitable for 20+ channels.

def markov_chain_attribution(paths_df):
    transition_matrix = build_transition_matrix(paths_df)
    absorption_probs = compute_absorption_probs(transition_matrix)
    removal_effects = {}
    base_cr = absorption_probs['conversion']
    for channel in channels:
        modified_matrix = remove_channel(transition_matrix, channel)
        cr_without = compute_absorption_probs(modified_matrix)['conversion']
        removal_effects[channel] = (base_cr - cr_without) / base_cr
    total_effect = sum(removal_effects.values())
    attribution = {ch: re / total_effect for ch, re in removal_effects.items()}
    return attribution
Characteristic Shapley Value Markov Chain
Principle Marginal contribution Removal effect
Complexity Exponential (approximation) Quadratic
Interpretability High Medium
Suitable for >15 channels With approximation Yes
Captures synergy Full Partial

How Cookieless Attribution Changes the Game

After the phase-out of third-party cookies and stricter GDPR, classic user-level attribution becomes impossible. Solutions: Aggregate Measurement (API with differential privacy) and hybrid MMM + MTA. MMM (Media Mix Modeling) works on aggregated data, MTA on first-party data. Calibrating MTA with MMM provides robust estimates, improving accuracy to 90%.

def calibrate_mta_with_mmm(mta_attribution, mmm_attribution):
    calibration_factor = {
        ch: mmm_attribution[ch] / mta_attribution.get(ch, 0.01)
        for ch in mmm_attribution
    }
    calibrated_mta = {
        ch: mta_attribution[ch] * calibration_factor.get(ch, 1.0)
        for ch in mta_attribution
    }
    return calibrated_mta

Why Incremental Testing is the Gold Standard for Validation

The best way to verify attribution is experimentation. Geo-holdout: run the channel in one region, disable in another, and compare conversions (DiD). Ghost ads: show ads to only part of the audience—true incremental lift. The resulting coefficients calibrate the model, boosting accuracy to 90%.

def difference_in_differences(treatment_region, control_region, pre_period, post_period):
    did = (
        (treatment_region[post_period].mean() - treatment_region[pre_period].mean()) -
        (control_region[post_period].mean() - control_region[pre_period].mean())
    )
    return did

What's Included: Deliverables

  • Audit of current marketing data and infrastructure (CDP, CRM, ad platforms).
  • Selection and customization of attribution model (Shapley, Markov Chain, MMM).
  • Integration with your dashboard (Tableau, Power BI, custom BI).
  • Model documentation, team training.
  • Support for 3 months after launch.

How We Do It: Process

  1. Analytics — data collection, path stitching, cross-device matching.
  2. Design — model selection, metric alignment.
  3. Implementation — building the pipeline in Python, testing.
  4. Validation — incremental tests, calibration.
  5. Deployment — dashboard integration, automated reporting setup.

Experience and Guarantees

We are a team with over 5 years of experience in AI attribution (50+ projects). We use only production-proven stacks: PyTorch, Hugging Face for embeddings, Pinecone for vector data. We guarantee transparency—you receive the full model code and quality metrics. Learn more about the mathematics of attribution in the article about Shapley value.

Timelines and Cost

Timelines: from 3 weeks (basic rule-based models) to 3 months (full cycle with incrementality testing). Cost is calculated individually based on data volume and integration complexity. Typical project costs range from $10,000 to $100,000 depending on data volume and complexity. Get a consultation from our expert or request a demo of the model on your historical data—contact us, and we will assess your project and find the optimal solution.