WaveMetrics Sidekick
An AI teammate inside the Google Ads dashboard. Ask it about the account, get analysis and reports, and let it act, with you confirming every write.
- Built at
- Smarketer
- Role
- Fullstack Developer
- Stack
- Vercel Eve, MCP, LangFuse
What are some quick wins to improve ROAS this month?
- Loaded skill· Performance review
- Recalled memory· TV campaign started Jan 5, 2026
- Started Data Analysis AgentData Analysis Agentget_campaign_metrics(last_30_days)get_campaign_metrics(previous_period)get_search_terms(conversions = 0)
Compared 12 campaigns, found 3 opportunities. Returning to main agent.
Three things stand out in the last 30 days. Brand search is capped while Generic keywords burn budget below break-even.
- Brand – Exact5.8×
- Shopping – Bestsellers3.4×
- Retargeting – 30 d2.9×
- Competitor – Phrase1.6×
- Generic – Broad0.9×
- 1Raise the budget on Brand – Exact. It hit its cap on 6 of the last 7 days at 5.8× ROAS.
- 2Pause Generic – Broad. €2,140 spent at 0.9×, down from 1.7× before the TV campaign shifted demand to brand terms.
- 3Add 41 negatives. Search terms with spend but zero conversions, mostly “free” and “used” queries.
Apply quick win 1 to the account: raise the daily budget on Brand – Exact.
Saved as template “Monthly quick wins”. Ask for it any time.
About
WaveMetrics is Smarketer’s Google Ads dashboard that gives deeper insight into accounts. With Sidekick, we wanted to bring in an actually useful AI agent that helps you for daily tasks. You might ask things like “what are quick wins for my ROAS?” or “write me a 30-day report that I can present in the team”, and it answers with real numbers from the account, charts, and, when asked, changes to the account itself.
It is the most practical AI work I have done so far: an agent that can do everything the dashboard can, kept trustworthy by making every sensitive action wait for a person.
Tech
- Vercel EveAgent networkMain agent and specialized subagents answer
- Next.jsChat UIAnswers render as dashboard components via json-render
- LangFuseObservabilityPrompts and agent decisions are logged for analysis
- WaveMetrics backendMCP serverEvery dashboard read and write as a typed tool
- Google AdsAccountHuman-in-the-loop for sensitive actions
The agent talks to our backend through a custom MCP server, so it has the same reach as the dashboard, including creating custom alerts. Anything that changes the account goes through a human-in-the-loop confirmation first. Prompts live in LangFuse next to a library of skills the agent pulls in when a task needs them, which keeps the base prompt small.
It remembers account context between conversations, like when a TV campaign started, and can save the current task as a template so the same report or check is one message away next month. For heavier work the main agent delegates: for example a Data Analysis Agent gathers and crunches the data and hands the result back for the main agent to present, with charts and tables rendered as native dashboard components.
- TypeScript
- Vercel Eve
- MCP
- LangFuse
- json-render
- Multi-agent
