How to set up unified marketing measurement, step by step
Start with what you hold: GA4 paths for attribution, weekly sales and spend for a mix model, and one lift test. Feed the test into the model as a prior, let the model split budgets, use attribution inside each channel, and retest before big budget moves.
By Joris van Huët, Founder & CEOUpdated 8 min read
To set up unified marketing measurement, usually start with what you already hold. That means GA4 paths for attribution, weekly sales and spend for a mix model, and one lift test. Feed the test result into the model as a prior. Let the model split budgets between channels, and keep attribution for choices inside each channel.
What it is, and why it beats one blended dashboard, sits in the plain answer. Here is the plumbing, in the order it usually has to be laid.
Step by step
- Export the paths attribution runs on. In GA4, click Advertising, then Key event attribution paths under the Key events drop-down, and pick purchase. Write down Days to key event from the top row, then download the table with Share this report. Path: Advertising > Key events > Key event attribution paths > Share this report.
- Pull weekly sales from your store. In Shopify, go to Analytics > Reports, filter the Category to Sales and open Total sales over time. Set Group by to week, then export the report. Path: Analytics > Reports > Total sales over time > Group by > Export.
- Bring ad spend into GA4. Google Ads cost data reaches GA4 through the account link with auto-tagging on. GA4 can also import cost directly from Meta and TikTok: in Admin, click Data import, then Create import source and choose Campaign data. Path: Admin > Data collection and modification > Data import > Create import source.
- Choose the first channel to test. Pick the channel with the most spend, or the widest gap between its platform's claim and GA4's credit. Compare its credit under two models in GA4 before you decide. Path: Advertising > Attribution > Attribution models.
- Run a lift test with a real holdout. In Google Ads, go to Lift measurement within the Goals menu and select the plus button. Choose Conversion Lift under Based on Geo. On Meta, create a Conversion Lift test in Experiments. Run it longer than the Days to key event from step 1; Google typically recommends more than 14 days. Path: Google Ads > Goals > Lift measurement; Meta > Experiments.
- Turn the result into a prior. In Meridian, register the test with CalibrationBuilder's
with_incrementality_experiment_result, giving its point estimate, standard error, spend and dates. In Robyn, pass it as calibration input torobyn_inputs(). Path: Meridian docs > Set custom ROI priors using past experiments. - Fit the model and read the split. Run it on the weekly sales and spend from steps 2 and 3. Then read its budget recommendation by channel. On Google Analytics 360, Google is trialling the same idea as Meridian-based budgeting, a limited alpha. Path: Meridian's budget optimization report.
- Keep attribution for choices inside a channel. Use GA4 and each platform's reports to pick ads, audiences and campaigns inside the model's budget. Do not let attribution reopen the channel split until the next test. Path: Advertising > Attribution > Attribution models.
- Book the next test now. Google says study frequency tends to align with budget cycles, and Meridian adds uncertainty to older experiments. Mark the test weeks in GA4, so later reports explain themselves. Path: Reports > a line graph > right-click a data point > Add annotation.
A worked example
For illustration, say you sell running shoes through Meta, Google Search and email, with two and a half years of weekly history. Step 4 points at Meta, because Ads Manager claims far more sales than GA4 credits to Paid Social.
Suppose a four-week geo holdout on Meta finds EUR 9,000 of extra revenue on EUR 6,000 of spend. For illustration, that is a return of 1.5 euros per euro, and it becomes Meta's prior in step 6.
Then the model runs. Say it puts Meta's return close to the test, and Google Search below the credit attribution gave it. The split moves at channel level, and attribution then picks which Meta ads get the extra money.
How much the attribution part can carry depends on your paths. On one store's Journeys sheet, journeys with 1 touch hold 79.5% of revenue and took 0.5 days to buy. Journeys with 2 or more touches hold the other 12.2% + 5.4% + 3.0% = 20.6% on the Journeys sheet. If your paths look like that, most revenue has one touch to credit, so attribution cannot say what a channel added. The test and the model have to carry that question.
What does each part need from you?
Each part eats different data, which is why one export never covers all three.
| Part | What it needs | Where it comes from |
|---|---|---|
| Attribution | Paths with revenue and days to key event | GA4, Key event attribution paths |
| Mix model | Weekly sales and weekly spend per channel | Shopify Total sales over time, Google Ads tables, GA4 cost imports |
| Lift test | A holdout and enough volume to read | Google Ads Lift measurement, Meta Experiments |
| Calibration | The test's estimate, standard error, spend and dates | The test report, typed into Meridian or Robyn |
Keep the four in one dated folder. A model refit next quarter needs the same files, and the test dates tell Meridian how old each result is.
What to check when the numbers disagree
- The lift result sits far below Meta's own report. That is expected. Meta says lift results are not meant to be compared with Ads Manager results. A test counts conversions between its own start and end dates.
- The model drifts away from your prior. Meridian calls priors starting points, not rigid constraints, so strong data can pull the model elsewhere. Check that the test matched the model's channel, metric and period, as Robyn's guide asks.
- The test came back flat. It may have been too short for your buying lag, or too small to read. Meridian scales short experiments up and widens their uncertainty, so a flat short test is weak evidence either way.
- You calibrated with an A/B test. Meta shows each A/B version to its own segment, so both groups see ads. Meridian's calibration is built for lift against a baseline of zero spend.
- GA4's imported cost doesn't match the ad account. Open the Campaign data import validation report under Data Import in Reports. Rows marked No campaign data usually mean the links' source and medium don't match the import, so start with how to name UTM campaigns.
What to do this week
- Download weekly Google Ads spend. In Google Ads, open your campaigns table, select the segment icon and choose Time, then Week. Click the download icon above the table, then Download. Pass: one row per campaign per week, back to the start of your history. Fail: missing weeks, so note them before any model sees the file.
- Check Meta's lift-test minimum. In Ads Manager, find your biggest campaign that started in the past year. Pass: it spent USD 5,000 or more and has 500 conversions, so it can carry a Conversion Lift test. Fail: it falls short, so plan a geo holdout by hand instead.
- Mark the next test window in GA4. Open any report with a line graph, right-click a data point and click Add annotation. Set the test's date range and click Create annotation. Pass: the dates sit on your reports before the test starts. Fail: nobody can later say why sales dipped in some regions.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: Key events attribution paths report (Google); Sales reports (Shopify); Exporting reports (Shopify); About auto-tagging (Google); Import campaign data (Google); Connect Meta to Google Analytics (Google); Get started with attribution (Google); Set up Conversion Lift based on geography (Google); Set up Conversion Lift based on users (Google); About Conversion Lift (Meta); Differences between Conversion Lift test results and other reporting tools (Meta); About A/B testing (Meta); Set custom ROI priors using past experiments (Google); Calibrate treatment priors (Google); An introduction to Meridian (Google); Meridian-based budgeting (alpha) (Google); Key Features (Meta, Robyn); An Analyst's Guide to MMM (Meta, Robyn); Campaign data import validation report (Google); About annotations (Google); Use segments in your tables (Google); Create, save, and schedule reports from your statistics tables (Google)
Related answers
Frequently asked questions
How long should a lift test run before it calibrates a model?
Longer than your buying lag, and usually more than 14 days, which Google's Conversion Lift guide typically recommends. Meridian also adjusts results from short tests, because a short test can miss sales that arrive after it ends.Can I calibrate a mix model with a Meta A/B test?
Usually not. In a Meta A/B test both groups see ads, just different versions. Meridian's calibration is built for lift against a baseline of zero spend. A Conversion Lift test or a geo holdout fits that.Do I need Google Analytics 360 for unified marketing measurement?
No. Google Analytics 360's Meridian-based budgeting is a limited alpha, but Meridian itself is free for anyone to use. A standard GA4 property still gives you the paths export and cost imports from Meta and TikTok, which is most of the plumbing.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- Attribution ModelAn Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
- ExperimentsExperiments are scientific procedures that test hypotheses or demonstrate facts. In marketing, experiments like A/B tests determine the causal effect of campaign changes, enabling data-driven decisions.
- Google AnalyticsGoogle Analytics is a web analytics service that tracks and reports website traffic.
- Holdout TestA holdout test is an experiment where a portion of the audience does not see a campaign. This measures the campaign's true incremental impact.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- Incrementality TestingIncrementality Testing measures the additional impact of a marketing campaign. It compares exposed and control groups to determine causal effect.
- Lift MeasurementLift Measurement: A method to determine the incremental impact of a marketing campaign by comparing exposed and control groups.