Data
AI agent for BigQuery: true ROAS and first-party analysis
TL;DR
The agent reads from BigQuery — running SQL it writes itself from a plain-language question — so you can join Google Ads or DV360 spend with your own Google Analytics, CRM or revenue tables and compute true ROAS from numbers you trust, not platform-reported conversions. Reads are ungated: the agent queries whatever project and dataset you select in the context picker. One approval-gated write tool exists (mutate_query) for a CREATE / INSERT / UPDATE / DELETE you explicitly approve after seeing the SQL; it is not exposed over MCP or to the autonomous loop.
Connecting it, and what it asks for
- 1Open Integrations and click Connect on the BigQuery card.
- 2Sign in with a Google account that can read the project.
- 3Name the dataset in your goal; the agent writes its own SQL against it.
The authorization asks for
bigquery.readonly plus two project-listing scopes. Read-only by construction: there is no scope here that could write a table. A first goal worth typing: Join last quarter of ad cost with my orders table and give me true ROAS per campaign, refunds netted out.What the agent does with BigQuery
- Writes and runs SQL against your chosen project/dataset from a plain-language question.
- Joins ad-platform cost data (Google Ads, DV360) with your own Google Analytics, CRM or order tables for true, margin-aware ROAS.
- Hands off to the Python sandbox for anything SQL can't express cleanly — cohort/LTV math, custom charts.
Real use cases
| Goal you'd type | What the agent does |
|---|---|
| "Join last month's Google Ads cost with our Shopify order revenue and give me true ROAS per campaign." | Writes the SQL join keyed on campaign/date/order id and returns per-campaign profit-aware ROAS. |
| "What's the 90-day repeat-purchase rate for customers who came from paid search vs. organic?" | Queries your CRM/orders tables joined with attribution data and computes the cohort comparison. |
| "Pull a custom report: spend, impressions and margin by DV360 line item for Q2." | Runs the SQL directly against whatever tables hold that data in your warehouse. |
Guardrails
- Reads run ungated. Exactly one write tool exists (mutate_query, for CREATE / INSERT / UPDATE / DELETE), and every call of it pauses for a human decision; it is not exposed over MCP or to the autonomous loop.
- Scoped to the project/dataset you select in the context picker; it doesn't discover or query tables outside that scope.
Frequently asked questions
- Can the agent write to my BigQuery tables?
- Only through one approval-gated tool. Reads run freely; a CREATE / INSERT / UPDATE / DELETE (mutate_query) is drafted, shown to you with the exact SQL, and runs only after you approve it — and that tool is not available over MCP or to the autonomous loop. The standard connection is read-only (BigQuery's read-only scope); the full BigQuery scope that an approved write needs is a separate upgrade you choose, and without it a write cannot run.
- Do I need to know SQL to use this?
- No — describe the question in plain language and the agent writes the SQL. If you already know exactly what query you want, you can also just ask for that directly.
- How is this different from just trusting Google Ads' reported conversions?
- Platform-reported conversions use the platform's own attribution and can miss refunds or offline revenue. Joining spend with your own warehouse data gives you a ROAS number built from what actually happened.