Skip to main content

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 the turntwo-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.
If this role is missing, the Model Results page will fail to list or load any artifacts. The error will read “No runs shown” or a storage permission error in the browser console.

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

Use Validate Table after entering your BigQuery details to confirm Interact can connect and read the table before saving.
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:
Where:
  • {results_folder} matches what you configured in Step 3 (or the default {label}/results)
  • {timestamp} is a string in YYYYMMDD_HHMMSS format, e.g. 20260511_112201
That’s all. The next time anyone opens the Model Results page, Interact will automatically discover the file and display the results. No registration step is needed.

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.
All fields are required.
All fields are required. Optional checks (roi_consistency, prior_posterior_shift) must still be present with status: null and empty collections when not computed.
All fields are required.
All arrays must be the same length (n_observations).
The channels object contains one entry per channel (keys matching channels_order). Each entry:Required fields:Optional fields:Validation rules:
  • spend_grid must be strictly increasing
  • spend_grid.length === outcome_grid.length
  • If credible_interval is present, lower and upper must have the same length as spend_grid
  • Recommend 10–20 grid points for a smooth curve in the UI

Troubleshooting