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 artifacts.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 theturntwo-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
turntwo-mmm, 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 and configure one Data Book per market or model.Data Book fields
Model Results fields
The service account must have
roles/storage.objectAdmin on the turntwo-mmm bucket in the GCP project used by this connector — this note is also shown in the Model Results section of the settings form.Step 4 — Run the pipeline and publish results
Run your Meridian Python pipeline. After training completes, the pipeline should export the results JSON to:{results_folder}matches what you configured in Step 3 (or the default{label}/results){timestamp}is a string inYYYYMMDD_HHMMSSformat, e.g.20260511_112201
Folder structure examples
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