Campaign performance by date
Campaign ID, name and status; budget; impressions, clicks, cost, average CPC, CTR, conversions, conversion value, and available search impression-share metrics.
Google Ads API use
Caught uses the Google Ads API to retrieve reporting data for advertiser accounts that have expressly authorized the agency operator. The implementation uses GoogleAdsService SearchStream and contains no mutation endpoint.
Current production-access state
Basic Access not yet approved
The reporting interface, OAuth layer, source separation, synchronization logs, and manual fallback are implemented. Production Google Ads synchronization remains disabled unless and until Google approves the developer token.
Data flow
01
The authenticated agency operator starts Google OAuth for a client the operator owns.
02
Caught’s server calls SearchStream with OAuth, the server-held developer token, and the configured customer ID.
03
Client-scoped daily records, search terms, sync runs, and warnings are stored with deterministic deduplication keys.
04
The operator reviews disclosures and finalizes an immutable monthly snapshot before sharing an unlisted report.
Reporting data requested
Campaign ID, name and status; budget; impressions, clicks, cost, average CPC, CTR, conversions, conversion value, and available search impression-share metrics.
Date, campaign and ad group context, disclosed term, match and targeting status, impressions, clicks, cost, and Google-reported conversions.
Active negative keyword text is read only to show whether a disclosed search term is already excluded.
Available change event resource, time, resource type, operation, and changed fields support an operator audit trail.
Explicitly not supported
An operator may record a recommendation after reviewing source data. Any approved Google Ads change is performed separately by a human in Google Ads and later recorded as a verified event.
Access boundaries
Configures authorized connections, runs syncs, reviews source evidence, records recommendations, and prepares reports.
May receive a finalized, unlisted, read-only report. The client cannot sign into the operator workspace, call Google APIs, view credentials, or change Google Ads.
Agency reporting workspace
Demo local-service client
Ad spend
$4,820
Clicks
1,904
Recorded inquiries
47
Cost / inquiry
$102.55
What the evidence says
Recorded inquiries improved while advertising stayed within the reviewed monthly plan.
Source status
Product mock-up only. No client, lead, credential, or live Google account information is displayed.
OAuth code exchange, refresh-token encryption, access-token refresh, Google requests, and database writes run server-side. OAuth secrets and the developer token are not delivered to browser code.
Public report queries select a narrow finalized display model. They exclude credentials, client contacts, raw management interfaces, and Google Ads controls.
Google-reported conversions are not automatically labeled as connected calls, qualified leads, booked jobs, revenue, or return on ad spend.
A finalized report is an immutable snapshot. Later source adjustments do not silently rewrite a report already shared with a client.
Google Ads API use is governed by our Privacy Policy and Terms. For Google’s definition of reporting permissible use, see the official Google Ads API guidance.