Ask your AI which search terms are burning your budget.
CPA and ROAS by campaign, keyword and search-term reports, recommendations with their estimated impact, change history and Performance Max structure — answered inside ChatGPT, Claude, Codex or Cursor. Connect your Google Ads account to Soku once; your AI reads it with your own login, and every read costs 0 credits.
Claude CodeCodexCursorVS CodeChatGPTClaude (web & desktop)Your own agent
Soku Connect
Sign in, connect the account once, paste the setup prompt to your agent, ask something. That’s the whole setup.
Your accounts, one connection
ads, analytics, commerce and revenue
Google Ads
Campaigns, keywords and search terms
Meta Ads
CPA and delivery on Facebook and Instagram
TikTok Ads
Spend, results, Smart+ and GMV Max reporting
200+
APIs
40+
apps
30+
skills
Ask once and your AI reads the accounts you connected — no paid data call involved.
Your own account0 credits per readRead-only
About five minutes
Set it up once, in the app you already use.
Connect your Google Ads account in Soku once. After that, every AI app you approve reads it through the same connection, with nothing to install for Google Ads itself.
Claude Code
One sign-in covers every project, and headless runs (`claude -p`, CI, the Agent SDK) work without a browser — `claude mcp add` only writes config, so a non-interactive run can never finish the MCP authorization. Both surfaces can act on your accounts once you approve each change.
1
Create your Soku workspace
The connection is public and identical for everyone — your Soku sign-in is what points it at your data. Connect one account in that workspace too: that is what your AI reads. The first time your AI uses the connection, Soku asks you to approve the access and names the workspace it will read through — so the workspace has to exist by then.
Already have one? Nothing to do here — sign in when the connection asks for it.
2
Copy the Soku MCP connection
https://api.soku.ai/mcp
3
Add it to Claude Code
claude mcp add --transport http soku https://api.soku.ai/mcp
Run the command in any project. It writes the configuration and prints an `Added …` line.
Authorize separately — adding a server does not open a browser.
Run `claude mcp list` to confirm the server reads `✔ Connected`.
4
Approve the access, then ask it something
Inside Claude Code, run `/mcp` and follow the browser flow — or, from your shell, `claude mcp login soku`.
The Soku consent page names the host, the workspace the grant will read through, and what the connection will be able to do.
Approving creates the grant listed above on this page. Cancelling creates nothing.
On a machine with no browser (SSH, headless Linux), `claude mcp login soku --no-browser` prints the URL and takes the pasted callback.
Paste this first
Using Soku, search for what capabilities I can reach.
A list of capabilities with names, what each reads and what each costs. An empty list means the search matched nothing — try broader words. An error naming authorization means the host never completed the browser step.
Checked 2026-08-25 against Claude Code documentation. Menu names change between releases — look for connectors, apps, tools or integrations.
Ask in plain English. These are the tools behind the answer.
Each one is a tool your AI is offered by name once you connect. You never have to type the name — it is here so you can tell what actually ran.
CPA and ROAS by campaign, ad group or day
ads_query_single_dimension
Spend, clicks, conversions, CPA and ROAS, grouped by one dimension over a date range — read from Soku’s synced copy of the account, so a whole quarter answers in one call.
“What was our Google Ads CPA by campaign last month?”
“Which campaigns had the best ROAS in the last 30 days?”
Keyword and search-term reports, ready-made
ads_get_google_ads_report
Account, campaign, ad, keyword, search-term and bidding-strategy reports with fixed columns, read live — the last 30 days unless you name a range.
“Which search terms spent the most without converting?”
“Show me the keyword report for the last 30 days.”
Any Google Ads field, through GAQL
ads_gaql_search
A live Google Ads Query Language search for the fields, segments and combinations the ready-made reports do not expose — responsive search ad headlines, device by hour, and the like.
“Pull the headlines on our responsive search ads.”
“Break down clicks by device and hour of day for this campaign.”
Google’s recommendations, with their impact
ads_get_recommendations
The account’s automated recommendations — add keywords, raise a budget, change bidding — each with the baseline and the estimated change in impressions, clicks and cost.
“What does Google recommend for this account, and what would it change?”
“Which recommendations have the biggest estimated impact?”
Who changed what, and from where
ads_get_change_history
Google’s own change events: the user, the fields that changed, and whether it came from the UI, the API or an automated rule.
“Who changed bids on this campaign last week?”
“Did an automated rule change anything before the drop?”
Inside a Performance Max campaign
ads_get_pmax_campaign
One Performance Max campaign with its asset groups, final URLs, asset attachments and the approval state of its signals.
“What asset groups does our Performance Max campaign have?”
“Are the signals on this PMax campaign approved?”
And 23 more, same connection
Named rather than worked through — your AI discovers all of them through the connection itself, so you never have to pick one.
Audit every tracked automation setting against the live accountads_audit_ad_automation_inventory
Check whether AI-automation settings drifted from what was approvedads_audit_creative_automation
One portfolio bidding strategyads_get_bidding_strategy
One campaign’s live settings and statusads_get_campaign
Installable conversion tag snippetsads_get_conversion_tracking_snippets
Which date ranges have finished syncingads_get_data_readiness
Whether conversion tracking is ready for a conversion campaignads_get_deploy_readiness
Whether offline conversions are set up to be receivedads_get_offline_conversion_readiness
Which fields a GAQL resource can select and filterads_get_resource_metadata
The accounts under a manager (MCC) accountads_get_tree_structure