How to run Google Meridian for your store, step by step
Build one weekly table from Shopify, Google Ads and Meta. Install Meridian in a GPU notebook, load the table and set ROI priors. Fit the model, pass its health checks, then run the budget optimizer with your break-even as the target marginal ROI.
By Joris van Huët, Founder & CEOUpdated 8 min read
Run the numbers for your store: the free discount and promotion profit calculator.
To run Google Meridian, you usually build one weekly table first. It holds orders and average order value from Shopify, plus cost and impressions from Google Ads and Meta. Then install the library in a GPU notebook, set priors, fit the model and pass its health checks before you optimize a budget.
Keep the plain answer open for what Meridian is and where it misleads. Here is the work, in order: four data pulls, then the model, then the budget.
Step by step
- Check whether Google already runs it for you. Meridian-based budgeting in Google Analytics 360 is a limited alpha. It needs Google Ads linked, at least 2 years of imported cost data and 2 years of conversion and revenue data. Path: GA4 > Advertising > Budgeting > Scenarios > Create plan.
- Pull weekly orders from Shopify. Orders make a good KPI, because Meridian needs one that adds up across weeks and regions. Average order value then serves as revenue per KPI, or you use revenue itself and skip that column. Path: Shopify admin > Analytics > Reports > Orders > Orders over time > Dimensions menu > week > Export.
- Pull Google Ads cost and impressions by week. Segment the campaigns table by week, and download a report if the range is too big. Path: Google Ads > Campaigns > segment icon > Time > Week.
- Pull Meta spend and impressions by day. Google's own import guide gives the Meta route: Ads Reporting, a breakdown by day, then export. Sum the days into the same weeks as your Shopify rows. Path: Ads Manager > Ads Reporting > Breakdown by date, by day > Total Spend and Impressions > Export icon.
- Add what else moved sales. Promotions and price changes go in as non-media treatments. Holiday flags are optional, since Meridian adjusts for seasonality and trend on its own. Give every source the same week start. Path: Meridian docs > Pre-modeling > Collect and organize your data.
- Open a GPU notebook and install Meridian. Google's demo runs in Google Colab, where the free T4 GPU runtime is enough for its sample data. Install the latest google-meridian package and confirm a GPU shows up. Path: Colab > Runtime > Change runtime type > T4 GPU, then the getting started notebook.
- Load your table. Build the input from a DataFrame with your KPI, revenue per KPI, spend and media columns, plus population for regions. Media and spend must share the same dimensions. Path: Meridian docs > Use the Meridian library > Load the data.
- Replace default priors where you know better. Left alone, each channel starts from LogNormal(0.2, 0.9), which puts half of ROIs above 1.22. Set channel-level ROI priors from past tests, and feed experiments through the CalibrationBuilder, which reads Meridian GeoX results directly. Path: Meridian docs > Priors > Set custom ROI priors using past experiments.
- Fit the model. Call sample_prior() and then sample_posterior() to draw from the model. Google's demo says this step may take about 25 minutes on the T4 runtime for its sample data. Path: Meridian docs > Configure and run the model > Run the model.
- Pass the health checks first. Meridian runs six checks, from convergence to ROI consistency, and rolls them into a score from 0 to 100. Google treats 90 or more as usable for decisions and 70 or less as a sign of systematic errors. A model that has not converged scores zero. Path: Meridian docs > Post-modeling > Model health checks.
- Read the two-page report. The Summarizer writes an HTML summary of ROI, marginal ROI and response curves for the dates you pick. Read ROI for what happened, and marginal ROI for what the next euro would do. Path: Meridian docs > Analyze the model results > Generate model results output.
- Optimize against your break-even. The default run keeps the budget fixed and keeps each channel between 70% and 130% of its historical spend. A flexible budget with a target marginal ROI instead finds how far each channel can grow before its next euro stops paying. Google's Scenario Planner turns the same model into a shareable report. Path: Meridian docs > Customize the optimization > Budget optimization scenarios.
A worked example
Start with one store's export. Its Break-even sheet sets the target for the last step: at a 40% margin, 1 divided by 0.40 gives 2.5x.
So run a flexible budget with the target marginal ROI at 2.5. Meridian then grows or trims each channel until its next euro of spend returns about 2.5 in revenue. At that margin, 2.5 in revenue leaves 1 back in margin: the euro pays for itself and nothing more.
For illustration, say the report shows paid search at a marginal ROI of 3.1 and paid social at 1.8. If the margin is 40%, search's next euro returns 1.24 in margin and social's returns 0.72. Search has room to grow, and social is spending past the point where it pays. The optimizer moves both toward 2.5, inside the spend limits you set.
Notice what the target did. Without it, the default fixed budget would only reshuffle today's total within tight limits. With it, the question changes from how to split the money to how much money each channel deserves.
What to check when the model looks wrong
- The health score reads zero. The chains did not converge, and Google's check wants every parameter's R-hat below 1.2. Try more MCMC iterations first, then look at your priors and at channels that always move together.
- A channel's posterior looks just like its prior. The data had little to say about it, often because spend was low. Google suggests merging it with a related channel rather than dropping it.
- Expensive weeks look like busy weeks. That happens when spend stands in for impressions. Google warns that rising costs can then read as more ads, so pull impressions wherever a platform offers them.
- Last month's code breaks today. Version 2.0 switched the default backend from TensorFlow to JAX and lists breaking changes. Note the version you fitted with and pin it before comparing runs.
- The optimizer barely moves money. The fixed-budget default keeps each channel between 70% and 130% of its historical spend. Widen the limits, or switch to a flexible budget with a target.
What to do this week
- Run Google's demo before your own data. Open the getting started notebook in Google Colab, switch to the free T4 runtime and run every cell. Pass: it produces the two-page HTML summary. Fail: no GPU shows up, so change the runtime type and start again.
- Import Meta's cost into GA4. In GA4, go to Admin and, under Data collection and modification, click Data import. Then click Create import source, pick Campaign data and choose Meta. It also tries to pull at least 24 months of Meta history. Pass: Meta cost appears under Reports > Acquisition > Non Google campaign. Fail: nothing shows, so make the source and medium match your Meta ads' UTM tags exactly.
- Date your promotions. In GA4, select Reports, then Monetization > Overview, and click View order coupons in the Purchase revenue by Order coupon card. Pass: a dated list of codes that drove purchases, ready to enter as non-media treatments. Fail: no coupon rows, so list promotion dates from your email and discount calendar by hand.
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: Meridian-based budgeting (alpha) (Google); About cross-channel budgeting (Google); Order reports (Shopify); Setting and comparing time ranges for your reports (Shopify); Exporting reports (Shopify); Collect and organize your data (Google); Use segments in your tables (Google); Gather campaign data from your advertising platforms to import into Google Analytics (Google); Introduction to Meridian Demo (Google); Install Meridian (Google); Configure the model (Google); Default prior distributions (Google); Calibrate treatment priors (Google); Model health checks (Google); Model health score (Google); Meridian Scenario Planner (Open Beta) (Google); Budget optimization scenarios (Google); Meridian changelog (Google, on GitHub); Connect Meta to Google Analytics (Google); Import campaign data (Google); Order coupons report (Google)
Related answers
Frequently asked questions
Do I need a GPU to run Meridian?
Google recommends at least one GPU, and its demo asks for a GPU runtime in Google Colab. The free T4 runtime is enough for the demo, where sampling may take about 25 minutes. A CPU-only install exists, but the sampler is compute intensive.Should my Meridian KPI be orders or revenue?
Either works, as long as it adds up across weeks and regions. Revenue needs no extra column. Orders need average order value as revenue per KPI, so Meridian can still report ROI in money. Pick the one your finance team already trusts.Can I feed my own lift test results into Meridian?
Yes. Meridian takes experiment results as ROI priors, and its CalibrationBuilder turns incrementality experiments into calibrated priors, with direct support for Meridian GeoX. Google warns the translation adds uncertainty, since experiments and mix models can define ROI differently.
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.
- ConversionConversion is a specific, desired action a user takes in response to a marketing message, such as a purchase or a sign-up.
- 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.
- 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.
- Marketing MixThe marketing mix is the set of actions a company uses to promote its brand or product. It traditionally includes product, price, place, and promotion.
- Marketing Mix ModelingMarketing Mix Modeling (MMM) is a statistical analysis that estimates the impact of marketing and advertising campaigns on sales. It quantifies each channel's contribution to sales.