Prerequisites
- A Google BigQuery connector already set up in Settings → Connectors
- Access to the client’s Google Cloud project (to create a bucket and assign IAM roles)
- A trained Meridian model ready to export results
Step 1 — Create the GCS bucket
Create one Cloud Storage bucket in the client’s GCP project. This bucket is where the pipeline writes model result and scenario artifacts. GCS bucket names are globally unique, so every client gets its own bucket name. By default Interact expects:{client} is the organization name in lowercase, with spaces, accents and special characters removed. The exact default for your organization is shown in Insights → Settings → MMM.
Step 2 — Grant the service account access
The BigQuery service account stored in Interact is also used to access GCS — no new credentials needed. Grant the service account the following role on the MMM bucket:1
Find the service account email
In Interact, go to Settings → Connectors, open the BigQuery connector, and copy the service account email shown in the credentials.Alternatively, open the JSON credentials file — the
client_email field contains the address.2
Open bucket permissions in Google Cloud
Go to console.cloud.google.com, navigate to Cloud Storage → Buckets, click on your MMM bucket, and open the Permissions tab.
3
Add the role
Click Grant access, paste the service account email, select the role Storage Object Admin (
roles/storage.objectAdmin), and save.Step 3 — Configure MMM in Interact
Open Insights → Settings → MMM. Only organization admins can change these settings.Model results storage
The top of the settings page shows which bucket Interact reads from, and reminds you which role the service account needs on it.Labels
Add one label per market or model with Add country / label. Each label has:
Both folder fields show their default as a placeholder. Leave them empty to use the default, or type a path to override it.
Data Book fields
These fields only appear, and are only required, when Data Book is on for a label.
When Data Book is off for every label, the Data Book page is hidden from the MMM menu and opening it takes you to Model Results.
Who can see MMM
All members of the organization can open the Data Book, Model Results and Scenario Planning pages. When MMM is turned off in Insights → Settings, these pages are unavailable for everyone; admins are taken to the settings page instead.Step 4 — Run the pipeline and publish results
Run your Meridian Python pipeline. Make sure its GCS bucket setting (gcs_bucket in the pipeline config) matches the bucket shown in the MMM settings. After training completes, the pipeline should export:
{bucket}is the bucket from Step 1 (or your custom bucket){results_folder}and{scenarios_folder}match what you configured in Step 3 (or their defaults){timestamp}is a string inYYYYMMDD_HHMMSSformat, e.g.20260511_112201
Folder structure examples
Examples for the organization Acme, using the default bucketacme-turntwo-mmm:
Results artifact format
The pipeline must produce a valid JSON file. See the sections below for the full schema your pipeline should follow.meta — run metadata
meta — run metadata
All fields are required.
health — Meridian diagnostic checks
health — Meridian diagnostic checks
All fields are required. Optional checks (
roi_consistency, prior_posterior_shift) must still be present with status: null and empty collections when not computed.predictive_accuracy — hold-out metrics
predictive_accuracy — hold-out metrics
All fields are required.
fit_series — time-series fit data
fit_series — time-series fit data
All arrays must be the same length (
n_observations).channels — per-channel results
channels — per-channel results
The
channels object contains one entry per channel (keys matching channels_order). Each entry:Required fields:Optional fields:
Validation rules:
spend_gridmust be strictly increasingspend_grid.length === outcome_grid.length- If
credible_intervalis present,loweranduppermust have the same length asspend_grid - Recommend 10–20 grid points for a smooth curve in the UI