Google Ads reporting and account management
Your Google Ads already know which keywords convert. Randstad reads them.
Your converting search terms become the seed list for keyword research. The same connection carries twenty-four report definitions your clients can read on a link, and thirty-four kinds of account change that each tell you, before you commit, whether they can be undone. For the people who run Google Ads for somebody else.
Signing up is free and touches no payment provider. There is no trial to expire.
Search terms · last 30 days
Your dataGoogle estimate| Query somebody typed | Clicks | Conversions | Volume |
|---|---|---|---|
| crm for small agencies | 412 | 14 | 2,400 |
| google ads report template | 288 | 9 | 1,900 |
| ppc dashboard software | 96 | 6 | No data |
| how to read search terms | 154 | 0 | 880 |
Clusters, ranked by priority
Claude- agency crm softwareClaude
- ads reporting templatesClaude
- ppc dashboardsClaude
- search terms, explainedClaude
- report definitions, ready to schedule
- 24
- kinds of change you can start, each with a reversibility class the build refuses to leave unclassified
- 34
- export formats — CSV, XLSX and PDF
- 3
- before a client link expires by itself
- 30 days
- EU region for everything we store
- 1
The problem
The reporting gets worse the more clients you win.
Another account to wire up, another schedule to remember, another export to rename before you send it. And the keyword research still starts where every tool outside your account has to start — with an estimate of what the whole market searches for.
- A market-wide tool can tell you what everybody searches for.
- Your account already knows what this client's buyers typed before they bought.
- Those are different sets, and one of them you have already paid for.
Connect
Three steps. Only the first is work for you.
- Step 1
Connect your accounts
Google publishes one Google Ads scope and it permits writes, so there is no read-only version to ask for. What limits us is our own code, not the grant. The refresh token Google issues is envelope-encrypted before it is stored. - Step 2
We read what converted
Each account's search terms — the queries people actually typed, not the keywords you bid on — and which of them led to a conversion. - Step 3
Converting terms seed the research
You do not supply a starting keyword list; the account does. When an account has converted on nothing yet, we send the project domain and an empty seed list rather than inventing one.
Keyword research
The seed list is not something you supply.
Converting terms become clusters, and clusters become content briefs. Keyword Planner volumes appear as what they are — Google's ad-planning estimate, with the broad-match caveat next to them — and never as plain search volume.
- A coverage panel shows how much search traffic Google withholds.
- Search Console, PageSpeed with field data, structured-data validation and IndexNow work on a project with no ad account at all.
- Measured values and inferred values are stored in different tables, so nothing can quietly promote a guess.

Reporting
Twenty-four report definitions, on a dashboard that reads a warehouse.
Not one live API call per widget. Comparison periods, the workspace's own timezone, and a report builder you drive in a sentence: describe what you want, then edit the dimensions, metrics, filters and comparison that come back. A live preview runs before you save it.
- A missing metric renders as no data, never as a zero.
- Google's 37-month limit on granular history is refused honestly rather than clamped silently.
- Account currency, display currency and billing currency stay three separate things and are never merged.

Account changes
Change the account from the screen that found the problem.
Budgets, bids, status, targeting, negative keywords, ad groups, ads, assets and labels. Every change is written into a ledger before it is sent, and every kind carries a reversibility class the build refuses to leave unclassified.
- The word on the button is the honest one: undo, restore or compensate. They mean different things and the product will not blur them.
- One campaign shape built into many client accounts at once, reported one line per currency rather than as a meaningless total.
- Twenty-six Google Ads operations are permitted and every other one in Google's API is blocked, including every way to delete a campaign, an ad group or a keyword.
The setting returns. The spend does not.
The previous state returns completely.
What was made is removed, which is not the same as undone.
Creating a new client account under your manager is permanent, because Google offers no way to close an account through the API at all. Every other kind you can start reverses one of the three ways above.
Delivery
The table is in the body of the email, and the link your client opens expires.
Daily, weekly or monthly, in the workspace's own timezone. Every run stores the file it sent, so you can see exactly what was delivered rather than a fresh run against numbers Google has since restated.
- CSV, XLSX and PDF, generated in the background and downloaded over a signed link.
- A share link is a bearer credential and we say so: the URL is the access.
- Unknown, expired and revoked all return the same 404, so a link cannot be probed.
Acme Coffee — weekly Google Ads report
Monday 08:00, in the workspace's own timezone
| Campaign | Cost | Conversions | Cost per conversion |
|---|---|---|---|
| Search · Brand | €1,240.55 | 86 | €14.42 |
| Search · Non-brand | €3,905.10 | 112 | €34.87 |
| Performance Max | €2,110.00 | 64 | €32.97 |
| Display · Remarketing | €388.20 | 0 | No data |
Who it is for
For the agency whose name is on the report.
Many client accounts under one workspace, discovered through your Google Ads manager account. The PDF carries your name, your colour and your logo. The link your client opens can sit on your own domain.
Your domain, your certificate
Point a CNAME, prove it with a DNS TXT record, and the client-facing link is yours. The certificate is issued only after the record verifies.Your name on the PDF
Name, colour and logo on the rendered report. The email deliberately carries no logo, because most clients block embedded images and a broken logo is worse than none.One account, one person, same product
The Free plan is every feature at one account and two seats. Nothing here is an agency edition with the useful parts removed, so a freelancer and a fifty-account agency use the same screens.
Why you can put this in front of a client
Every figure says where it came from. Every change says how to undo it.
This is the part that is hard to copy, because it was decided before the first line of the product rather than added after a complaint.
- Observed
14 conversions
Google reported it for your account. A fact about what happened. - Measured
2,400 a month
Keyword Planner's ad-planning estimate about the wider market, shown as that, with the broad-match caveat beside it. - Inferred
cluster: agency crm
Our grouping, or the model's reading. Stored in a different table from anything measured.
How much of this account's traffic the findings are built on
- Visible — Google named the query
- 12,480
- clicks. These are the terms the seed list is built from.
- Withheld — served, and not named
- 4,220€1,847.20
- clicks, below Google's disclosure threshold and invisible to every tool including this one.
16,700When the two do not reconcile, the panel says so rather than showing a total that looks complete.
Where the data goes
Enforced in code, not in a policy page
Each of these is a property of the running system. Where a claim is narrower than it sounds, the narrow version is the one written here.
One EU region
Everything the product stores sits in a single EU region. Three things cross that boundary and the diagram names all three.
Isolation at the database
Every tenant-scoped query carries a workspace ID and Postgres row-level security enforces it, so separation does not rest on an application check being remembered.
Encrypted Google tokens
Google refresh tokens are envelope-encrypted at rest, under a key-encryption key held apart from the database that stores them.
Official APIs only
Data comes from Google's published APIs. Nothing here scrapes a results page, reads a cookie or drives a signed-in browser session.
The short list
What this does not do
Each of these is a decision, not a gap waiting to be filled.
- No
Rank tracking
We do not measure your position in search results, and no number on any screen pretends to be one. - No
Scraping
Everything comes from official APIs. A figure that can only be obtained by crawling somebody else's page is a figure you will not find here. - No
Campaign removal
You can pause a campaign from here. Removing one is permanent, so that action stays in Google Ads. - No
Applying Google's recommendations
We read them and show them. Applying or dismissing one changes an account on Google's judgement rather than yours, so we do neither. - No
Offline conversion upload
Sending conversion data back into Google is a data-protection decision that belongs to you and your client, not to a reporting tool. - Not yet
SOC 2, ISO 27001, an independent audit
None of these exists yet, so none of them appears as a badge. The security page says exactly what is and is not true, and it needs no account to read.
Plans
Three plans. The free one does not expire.
Starter and Agency are quoted at checkout in your own currency, because the price book lives with the payment provider rather than in a screenshot that goes stale.
Free
No card. No trial to expire.- Google Ads accounts covered
- 1
- Seats
- 2
- Scheduled reports
- 1
- Exports a month
- 5
- Keyword runs a month
- 2
Starter
Quoted at checkout in your currency.- Google Ads accounts covered
- 5
- Seats
- 5
- Scheduled reports
- 10
- Exports a month
- 100
- Keyword runs a month
- 20
Agency
For agenciesQuoted at checkout in your currency.- Google Ads accounts covered
- 50
- Seats
- 25
- Scheduled reports
- 100
- Exports a month
- 1,000
- Keyword runs a month
- 200
Every feature is on every plan. The limits are on how much, never on which features. The account count notifies you when you pass it; the other five allowances refuse.
Before you connect anything
What people ask before they connect an account
Is this made by Google?
No. This is an independent product built on Google's published Google Ads API. Google Ads is a trademark of Google LLC, and this product is not affiliated with, endorsed or sponsored by Google.
What access do you need to my ad account?
You connect through Google's own OAuth screen. Google publishes one Google Ads scope and it permits writes, so there is no read-only version to ask for and we will not pretend to request one. What limits us is our own code: twenty-six operations are permitted and every other one in Google's API is blocked at build time, every change is written into a ledger before it is sent, and a change with no reversal is refused rather than warned about. The refresh token Google issues is envelope-encrypted before it is stored.
Where does my data live?
Everything the product stores sits in a single EU region. Three things cross that boundary, and we would rather you read them here than find them later: an AI request goes to Anthropic outside the EU when you use an AI feature, a scheduled report goes to our outbound email provider to be delivered, and a checkout goes to Paddle, our merchant of record. The privacy page lists all of them, and adding a fourth is a change to that page rather than a quiet swap.
Do you train a model on my account data?
No. Search volumes, competition, cost per click and performance figures come from Google's APIs, are stored, and are then handed to the model as tool results. The model interprets them; it never produces a number that looks measured.
Can my client read a report without an account?
Yes, through a signed link that expires after 30 days and that you can revoke sooner. Treat it as a credential: whoever holds the URL can read the report, which is why unknown, expired and revoked links all return the same 404.
Do you support Meta, LinkedIn or Microsoft Ads?
Not today. Google Ads is the only advertising platform this product connects to, and depth there is the trade we made.
What happens to my data if I leave?
The retention page is generated from the code that does the deleting, so the windows on it cannot drift from the sweeps that enforce them. It is public and needs no account to read.
Connect one account and read its search terms
The Free plan covers one Google Ads account and takes no payment details. There is no trial to expire. Pricing for Starter and Agency is quoted at checkout in your own currency.