Virtualien.space ← Back to home
Internal tool Not externally accessible

Google Ads API — how we use it.

This page documents the internal tool operated by Pravatti s.r.o. (brand: Virtualien) that accesses the Google Ads API. It is published here so that the Google Ads API Basic Access reviewer, our clients, and any interested third party can understand what the tool does, how it is used, and what safeguards are in place. The tool is strictly internal and is not offered as a product, SaaS, or service to any third party.

Operator

Pravatti s.r.o.

Brand: Virtualien

MCC Customer ID

638-048-0172

Google Ads Manager account

Tool URL

virtualien.space/tool

Documentation only · tool itself is local

Access tier requested

Basic Access

For internal agency use

1. Company & business model

Pravatti s.r.o. operates under the Virtualien brand — a full-service performance marketing agency based in Slovakia. Our work spans paid search, paid social, analytics and CRO for clients across the EU.

We manage Google Ads campaigns on behalf of contracted clients who grant us access to their accounts through our Manager (MCC) account, ID 638-048-0172. We do not sell, license, redistribute or otherwise provide the tool to any third party; it is used exclusively by our internal team to manage the client accounts we are contractually authorised to operate. We do not advertise for third-party agencies, and we do not operate a SaaS product on top of the Google Ads API.

2. Who uses the tool

The tool is used internally by our agency team — primarily by the lead PPC specialist, with read-only visibility for other Virtualien team members and, where relevant, for the end clients (who see outputs as exported reports). Clients do not have direct access to the tool itself.

The tool is installed locally on team-member workstations; there is no hosted or externally accessible interface. No registration, login page or external entry point to the tool is exposed on the internet.

3. Typical daily usage

4. Tool design

The tool is a local AI-assisted workflow built on top of Claude Code (Anthropic's command-line coding assistant) using the open Model Context Protocol (MCP). Two custom MCP servers wrap the official Google Ads Python SDK and expose a controlled set of operations to the assistant:

Authentication uses OAuth 2.0 with a refresh token tied to the Virtualien MCC (638-048-0172). Each team-member workstation holds its own credentials locally.

No API data is stored on external servers, no API data is shared with third parties, and no data flows through any hosted SaaS backend. A lightweight local cache is used only to respect Google Ads API rate limits; it is not a persistent analytics database and is not exposed to clients.

All destructive operations (budget updates, pause / enable, ad-status changes) require an explicit human-in-the-loop confirmation in the Claude Code session before they are sent to the API; the assistant cannot execute mutations autonomously.

5. Google Ads API services called

The tool calls the following Google Ads API services / resources via the official google-ads-python SDK (API v20+):

Additional read-only services (e.g. KeywordPlanService) may be consulted on a per-case basis; the list above covers all recurring usage.

6. Data handling & commitments

Our use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

7. Interface — terminal mock-up

The tool has no graphical interface. All interactions happen inside the Claude Code terminal on an authorised workstation. A representative session looks like this:

$ claude-code Session started · MCP servers: google-ads-readonly, google-ads-manage > Pull last 14 days' search-term performance for client ACME, campaigns with status=ENABLED → google-ads-readonly.search_terms(customer_id="XXX-XXX-XXXX", window=14) returned 1,247 rows · top 50 shown below > Pause ad group "Branded — Exact" in campaign 8842110392 ? Confirm mutation: AdGroupService.mutate(status=PAUSED) on customer XXX-XXX-XXXX [y/N] y ✓ Applied · resource_name: customers/XXX/adGroups/YYY

8. Contact

Questions about the tool or this documentation: jakub@pravatti.sk.