What it measures
No SourceMedium pixel is required. SourceMedium reconstructs observed purchase journeys from the tracking and first-party data sources already available.
Reconstruct observed purchase journeys from the tracking and first-party data you already collect. No SourceMedium pixel is required. Coverage depends on the sources and identity signals available, and gaps remain visible in BigQuery.
Available today through dashboards, AI Analyst, BigQuery, and documented attribution models.
Methodology and limits
SourceMedium keeps the attribution logic and available evidence inspectable in BigQuery.
No SourceMedium pixel is required. SourceMedium reconstructs observed purchase journeys from the tracking and first-party data sources already available.
Coverage depends on the source data and identity signals available. Gaps remain visible in BigQuery.
Multi-touch attribution assigns credit across observed touchpoints. Causal incrementality requires an experiment or a separately scoped causal methodology.
Your AI analyst runs on your MTA data in BigQuery.
This illustrative example shows how an analytical answer can expose its SQL, sources, and assumptions for review.
How do marketing channels perform under first-touch, last-touch, and linear attribution?
In this sample, paid_search_non_brand is highest on all three models ($1.53M first, $1.31M last, $1.39M linear). affiliate_partners over-indexes on closing ($1.06M last-touch vs $746k first-touch), while paid_social is comparatively balanced ($393k first vs $367k last).
| Marketing Channel | Journeys | First-Touch Revenue | Last-Touch Revenue | Linear Revenue |
|---|---|---|---|---|
| paid_search_non_brand | 1,701 | $1,529,714 | $1,311,264 | $1,393,021 |
| affiliate_partners | 1,127 | $746,188 | $1,057,232 | $911,441 |
| organic_search | 641 | $496,943 | $462,589 | $489,702 |
| paid_social | 351 | $392,934 | $367,029 | $385,344 |
-- MTA Analysis: channel-level first/last/linear attributed revenue
-- Assumptions: timeframe=last_30_days | metric=first_last_linear_revenue_by_marketing_channel | grain=marketing_channel | scope=mta_touch_rows_with_channel_dimension
SELECT
COALESCE(NULLIF(dimension_value.marketing_channel, ''), '(unknown)') AS marketing_channel,
COUNT(DISTINCT purchase_order_id) AS journeys,
SUM(first_touch_revenue_impact.marketing_channel) AS first_touch_revenue,
SUM(last_touch_revenue_impact.marketing_channel) AS last_touch_revenue,
SUM(linear_revenue_impact.marketing_channel) AS linear_revenue
FROM `your_project.sm_experimental.obt_purchase_journeys_with_mta_models`
WHERE DATE(purchase_local_datetime) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
AND dimension_value.marketing_channel IS NOT NULL
GROUP BY 1
HAVING first_touch_revenue > 0 OR last_touch_revenue > 0 OR linear_revenue > 0
ORDER BY linear_revenue DESC
LIMIT 50;
Follow the observed path first. Expand the technical view to inspect identifiers, dimensions, and model calculations.
Page View
YouTube
Observed
View Item
Google Shopping
Observed
Add To Cart
Meta
Observed
Begin Checkout
Meta
Observed
Purchase
Shopify order
$120 purchase
Within each enabled attribution model, the full order value is distributed independently for each dimension. Totals are not additive across dimensions.
Linear attribution uses eligible touchpoints. Repeated touches in the same session are deduplicated.
This example uses a customer-specific setting that enables email and SMS for last-touch attribution.
Marketing Channels
Marketing Channels
Marketing Channels
Not Attributed
Already assigned to previous touch point.
Marketing Channels
Marketing Channels
Marketing Channels
Not Attributed
Already assigned to previous touch point.
Customers and partners
In a 30-minute walkthrough, we'll review your current data stack, show how SourceMedium would replace or complement it, and demonstrate workflows relevant to your business.
Choose a time for your walkthrough
Open the scheduling calendar in a new tab. If you cannot schedule now, we will still follow up.
Open scheduling calendar