# PaidHelm — full site content Source: https://paidhelm.com · MCP server: https://mcp.paidhelm.com/googleads/mcp · Generated 2026-11-01 --- # About PaidHelm URL: https://paidhelm.com/about/ PaidHelm is made by A2 Digital Marketing, a performance agency that has managed Google Ads budgets since 2015. We built the MCP server we wanted for our own clients, then opened it to everyone. PaidHelm started as an internal tool. A2 Digital Marketing, the agency behind it, manages paid media for clients across e-commerce, education, health and local services. In 2025 we started running our own Google Ads operation through Claude using the Model Context Protocol, first for reporting, then for optimization, then for building whole campaigns. The time saved was too large to keep to ourselves. What we believe The advertiser stays in charge. AI should remove clicking and copying, not decision-making. Everything PaidHelm does is visible, reversible and approved by a human. Your account is yours. No manager-account takeover, no proprietary dashboards that lock your data in. We talk to Google's API with your authorization and leave your account exactly as Google shows it. Honest pricing. A task is a tool call, the counter is visible in the chat and there is a free plan with no card. We would rather you pay for what you use than guess. Open standards. MCP lets you use the assistant you already pay for. If a better client appears tomorrow, PaidHelm will work with it. The company PaidHelm is a product of A2 Digital Marketing Ltda., a Brazilian company based in Fortaleza, Ceará, operating since 2015 and serving clients in Brazil and the United States. The same server has run in production for Brazilian advertisers since 2025, handling hundreds of operations a day. 2015agency founded 2025first MCP deployment 30+Google Ads tools 6campaign types created from chat Roadmap Google Ads is the first channel. Meta Ads (Facebook and Instagram) is in private testing with agency clients and will join the same subscription. After that: Google Analytics 4 reporting inside the same conversation, and scheduled "assistant check-ins" that summarize what changed in your account each morning. Contact Support and partnership requests: support@paidhelm.com. We answer within one business day. For agencies and teams see Enterprise. --- # Blog: Google Ads with AI assistants URL: https://paidhelm.com/blog/ Practical guides on running Google Ads with Claude, ChatGPT and Cursor through MCP: weekly routines, audits, negatives, bidding, campaign builds and agency workflows. Playbooks written by people who manage ad budgets every day. Every article includes the prompts we actually use and the number of tasks they take. {{cards:post}} --- # Hosted vs open-source MCP servers for Google Ads: how to choose in 2026 URL: https://paidhelm.com/blog/best-mcp-servers-for-google-ads/ A practical comparison of the ways to connect an AI assistant to Google Ads: open-source MCP servers you self-host with your own developer token, Google Ads Scripts, direct API use, and hosted servers like PaidHelm. Criteria, costs and who each fits. There are now several ways to let Claude, ChatGPT or Cursor touch a Google Ads account. They differ less in what they can do and more in who carries the operational weight. This guide lays out the options honestly, including where PaidHelm is not the best fit. The options OptionHow it worksBest for Open-source MCP server (self-hosted)Run a community server locally or on your cloud; configure your own Google Cloud OAuth client and Google Ads developer token.Developers who want full control and already have API access. Hosted MCP server (PaidHelm)Paste a URL, sign in with Google. Developer token, hosting, OAuth, quotas and safety rules are handled for you.Advertisers, freelancers, agencies without an engineering team. Google Ads ScriptsJavaScript inside Google Ads running on a schedule.Fixed automated rules, no conversation needed. Direct API with an agent frameworkBuild your own agent with the Google Ads client libraries.Product teams embedding ads management in their own software. Criteria that actually matter 1. Developer token and API access Every call to the Google Ads API needs a developer token tied to a manager account, and Google grants Basic access only after reviewing your application. Self-hosting means going through that process yourself and staying compliant with the API terms. A hosted server has already done it. 2. Authentication Both approaches should use Google OAuth. The difference is who runs the OAuth app: you (self-hosted, with a consent screen you must verify for external users) or the provider. 3. Safety defaults Check whether new campaigns are created paused, whether removal requires explicit IDs, and whether there are quotas that cap runaway loops. Community servers vary widely; read the code or test on a sandbox account. 4. Tool coverage Many community servers focus on reporting (GAQL) and a handful of mutations. If you need Performance Max asset groups, Demand Gen, Shopping or image upload from the chat, check the tool list. PaidHelm's catalog lists all 32 tools. 5. Total cost Self-hosted: $0 software + hosting + the hours to set up OAuth, token application, upgrades when the API version changes (Google deprecates versions roughly every 4 months). Hosted: a subscription, from $0 (30 tasks) to $199/month (6,000 tasks) at PaidHelm, zero maintenance. 6. Data handling Self-hosting keeps everything on your machine. A hosted server should document that it relays rather than stores your reports; see how PaidHelm handles data. When to self-host You are a developer, already hold a developer token with Basic access, and want to customize tools. Compliance requires that no third party processes your advertising data. You are building a product and need the server embedded in your stack. When a hosted server is the better call You run ads, not servers. You want to be working in the chat today. You manage several client accounts and need one login to cover them all. You want paused-by-default, quotas and support as part of the deal. Our view We built PaidHelm because we are an agency, not a software vendor, and we wanted the second column without maintaining the first. If you have an engineering team and the token already, self-hosting is legitimate. If you don't, start on the free plan and judge by the first week. Q: Is self-hosting an MCP server for Google Ads free? A: The software is usually free, but you need a Google Ads API developer token (which requires an application and a manager account), a server to run it, and time to keep it working. For many teams the engineering hours cost more than a subscription. Q: Can I switch later? A: Yes. Because MCP is a standard, the prompts and workflows you build with one server mostly carry over to another. Your campaigns always stay in Google Ads. --- # How to find wasted Google Ads spend in 5 minutes: search terms to negatives URL: https://paidhelm.com/blog/find-wasted-google-ads-spend-with-search-terms-and-negatives/ The fastest win in any Google Ads account is cutting search terms that spend without converting. Here is the exact query, the classification rules and the prompt that turns it into campaign-level negatives with an AI assistant. In almost every account we audit, between 8% and 20% of non-brand spend goes to search terms that will never convert: job seekers, DIY researchers, the wrong product, the wrong country. Finding them used to mean exporting a report and scrolling for an hour. With an assistant connected to Google Ads it is two tasks. The query SELECT campaign.name, ad_group.name, search_term_view.search_term, metrics.clicks, metrics.cost_micros, metrics.conversions FROM search_term_view WHERE segments.date DURING LAST_30_DAYS AND metrics.clicks >= 5 AND metrics.conversions = 0 ORDER BY metrics.cost_micros DESC You will never type this; the assistant does. But it helps to know what "wasted search terms" means in data: clicks, cost, zero conversions, recent. Classification rules Ask the assistant to sort the list into buckets before you decide: Irrelevant intent: jobs, salary, careers, free, DIY, how to, tutorial, template, course. Wrong product or audience: terms for products you don't sell, B2C when you're B2B, other locations. Competitor names you don't want to bid on. Relevant but unconverted: leave these alone; low volume is not a verdict. Brand misspellings: keep. The prompt Pull search terms from the last 30 days with at least 5 clicks and zero conversions across non-brand campaigns. Sort them into: irrelevant intent, wrong product/audience, competitors, relevant-but-unconverted, brand. Show cost per bucket. Then wait for my approval before adding the first three buckets as campaign-level phrase-match negatives. Review, say "go", and adicionar_negativas applies them. Two tasks, one of them a report. Where to add the negatives Campaign level for anything that is wrong for the whole campaign (most cases). Ad group level for cross-contamination between ad groups (a "kids shoes" query triggering the "trail shoes" group). Shared negative list for account-wide junk; create once with executar_operacao_avancada, attach to all campaigns. Make it weekly Wasted terms regrow. Run this every week with a 7–14 day window; it becomes a one-sentence task. For the complete weekly routine see this playbook. --- # The 15-minute weekly Google Ads routine with an AI assistant URL: https://paidhelm.com/blog/weekly-google-ads-routine-with-an-ai-assistant/ A repeatable weekly Google Ads review you can run from Claude or ChatGPT in about 15 minutes and 10 tasks: performance deltas, pacing, search terms, keyword hygiene, ads and a written summary. Most accounts do not need daily fiddling. They need a disciplined weekly pass that catches drift early. This is the routine we run for our own clients through PaidHelm; it takes about 15 minutes and roughly ten tasks per account. 1. Deltas (2 tasks) Compare last 7 days with the previous 7 by campaign: spend, conversions, CPA, CTR, conversion rate. Highlight moves over 20% and say what likely caused them. Look for a cause before reacting: a budget change, a new competitor, a tracking problem. The assistant can check change_event if something looks unexplained. 2. Pacing (1 task) Month-to-date spend vs monthly budget of $6,000. Days left, current daily run-rate, and the daily budget that lands exactly on target. 3. Search terms to negatives (2–3 tasks) Search terms from the last 7 days with ≥5 clicks and 0 conversions in non-brand campaigns, grouped by why they're irrelevant. Wait for my OK before adding negatives. Approve the obvious junk. Leave "relevant but not converting yet" alone for another week. 4. Keyword hygiene (1–2 tasks) Keywords with Quality Score ≤4 and more than $50 spent in 30 days, plus keywords with zero impressions in 90 days. Low QS with spend means a landing page or ad relevance issue. Zero impressions for 90 days means remove or move to broader match. 5. Ads and extensions (1 task) RSAs with ad strength Poor or Average, disapproved ads, and campaigns missing sitelinks or callouts. 6. Budget and bid adjustments (1–2 tasks) Based on the above, apply the changes you decided on, one by one, with the assistant confirming each: raise budget here, tighten target CPA there, pause the keyword that ate $200 for nothing. 7. Written summary (0 tasks) Write a short summary of this week's review for the client: what changed, what we did, what we'll watch next week. Paste into your email or project notes. Over months this becomes the account's history. Make it one sentence Save the whole routine as project instructions in Claude or a Custom GPT. Then each week the entire review is: "Run the weekly review for Acme." The prompt library has the full text. --- # What is an MCP server for Google Ads, and why it beats scripts and dashboards URL: https://paidhelm.com/blog/what-is-an-mcp-server-for-google-ads/ An MCP server for Google Ads lets an AI assistant read reports and change campaigns through the Google Ads API with your authorization. Here is how it works, how it compares with Google Ads Scripts, the Editor and BI dashboards, and what to check before trusting one. In this articleThe one-sentence definitionHow a call travelsVersus Scripts, Editor and dashboardsWhat to check before trusting a serverGetting started The one-sentence definition An MCP server for Google Ads is a service that exposes Google Ads operations as tools an AI assistant can call, using the Model Context Protocol, with the advertiser's own Google authorization. MCP (Model Context Protocol) is an open standard released by Anthropic in late 2024 and since adopted by OpenAI, Google, Microsoft, Cursor and most AI IDEs. It defines how an assistant discovers tools, calls them with structured arguments and receives results. A "server" is anything that implements that contract. PaidHelm is one for Google Ads. How a call travels You type: "Which campaigns are pacing above budget this month?" The assistant chooses a tool, here consultar_relatorio, and writes a GAQL query for cost and budget by campaign. The MCP server validates the request, checks your plan quota, and calls the Google Ads API with your OAuth token. Google returns rows; the server returns them to the assistant; the assistant does the arithmetic and writes the answer. Writes work the same way, with one difference: a well-designed server makes the assistant obtain IDs from a read first and creates new campaigns paused, so nothing goes live by accident. Versus Scripts, Editor and dashboards Google Ads ScriptsGoogle Ads EditorBI dashboardMCP server Who operates itSomeone who writes JavaScriptAnyone, manuallyAnalyst builds, everyone readsAnyone, in plain language ReadsYes, scheduledYes, bulkYes, visualYes, any question, on demand WritesYes, pre-programmedYes, bulk, manualNoYes, with approval Handles a new questionWrite a new scriptClick throughBuild a new viewJust ask Reasoning over resultsNoneNoneNoneThe assistant explains and recommends Scripts are still the best choice for a fixed rule that must run every hour unattended. Editor remains excellent for a thousand-row bulk edit. Dashboards are for stakeholders who only read. The MCP server covers the daily reality in between: a human with a question, a decision to make and a change to apply. What to check before trusting a server Authorization model. It must use Google OAuth with the Google Ads scope only. Never type a Google password or share a developer token with a service you do not control. Who holds the developer token. Hosted servers use their own approved token; open-source servers need yours, which means applying for API access and keeping a server running. Default state of new objects. Paused by default or live by default? Ask. Data retention. Does the server store your reports and campaigns, or only relay them? Revocation. You should be able to cut access in one click in Google and in the product. Quotas and pricing. Understand what a billable unit is. PaidHelm counts tool calls as tasks; the counter is visible in the chat. Getting started With a hosted server the whole setup is: pick an assistant, paste the server URL, sign in with Google, ask a question. The PaidHelm quickstart walks through it in five minutes on the free plan. Q: Is an MCP server the same as a Google Ads plugin? A: No. Plugins were proprietary to one chatbot. MCP is an open protocol supported by Claude, ChatGPT, Cursor and many others, so one server works everywhere. Q: Do I need to code to use one? A: Hosted servers like PaidHelm require no code: paste a URL into your assistant and sign in with Google. Open-source servers require you to run them yourself and obtain a Google Ads developer token. --- # Contact URL: https://paidhelm.com/contact/ Contact PaidHelm support by email at support@paidhelm.com. Setup help, billing questions, agency plans and press. The fastest route for anything is email. We read every message and answer within one business day, usually much sooner. support@paidhelm.comSetup, billing, bugs, feature requests Agencies & teamsCustom volumes, invoicing, multiple seats PrivacyData access, deletion, DPA requests Before you write Connection problems: see Troubleshooting. Most are solved by reconnecting with the Google account that actually has Google Ads access. "How do I…" questions: the documentation covers every tool and the blog has step-by-step playbooks. Plan and usage: ask your assistant to run plan_usage, or open the portal. Refunds: the refund policy explains the 7-day window. Company details PaidHelm is operated by A2 Digital Marketing Ltda., Fortaleza, Ceará, Brazil. Payments are processed by Paddle.com Market Ltd. as merchant of record, so the charge on your statement appears as Paddle. --- # PaidHelm documentation URL: https://paidhelm.com/docs/ Everything you need to connect an AI assistant to Google Ads through PaidHelm: setup per client, authentication, the full tool catalog, plans and quotas, and troubleshooting. PaidHelm is a remote MCP server. Your assistant connects to {{mcp_url}}/mcp over HTTPS, you sign in with Google once, and from then on the assistant can call the tools listed in this documentation on your Google Ads accounts. {{mcp_url}}/mcpServer URL (Streamable HTTP) {{mcp_url}}/sseLegacy SSE transport OAuth 2.0Dynamic client registration + PKCE Start here Quickstart: connect in five minutes with Claude, then run your first report. Connecting your Google Ads account: which Google login to use, manager accounts, multiple clients. Client setup: configuration for every supported assistant and IDE. Reference Tool catalog: all 32 tools with parameters and examples. Reports and GAQL: how the assistant queries any Google Ads report. Creating campaigns: Search, Performance Max, Display, Demand Gen, Shopping and App. Keywords and negatives, Bidding and budgets. Plans and tasks: how quotas are counted and how to upgrade from the chat. Authentication and security: OAuth flow, scopes, token storage, revocation. Prompt library: proven prompts for audits, reports and builds. Troubleshooting and FAQ. For LLMs and agents This documentation is also available as plain text: /llms.txt (index) and /llms-full.txt (full content). Each page has a Markdown version at index.md under the same URL. --- # Bidding strategies and budgets URL: https://paidhelm.com/docs/bidding-and-budgets/ Changing daily budgets, setting bid strategies (manual CPC, maximize clicks, maximize conversions with target CPA, maximize conversion value with target ROAS, portfolio) and pacing checks with PaidHelm. Budgets alterar_orcamento sets a campaign's daily budget in the account currency. Google may spend up to twice the daily budget on a given day but never more than the monthly cap (daily × 30.4). Shared budgets are reported through campaign_budget and changed with executar_operacao_avancada. Which campaigns are pacing above 110% of their monthly budget? For each, show spend to date, days left and the daily budget that would land exactly on target. Bid strategies definir_estrategia_lance switches a campaign between: StrategyWhenParameters Manual CPCVery small accounts or tight controlOptional enhanced CPC Maximize clicksTraffic goals, new campaigns without conversionsOptional max CPC cap Maximize conversionsLead gen with 15+ conversions/monthOptional target CPA Maximize conversion valueE-commerce with valuesOptional target ROAS Portfolio strategySeveral campaigns share a targetStrategy ID from listar_estrategias_portfolio Changing strategy resets learning. The assistant will warn you and suggest changing targets gradually (10–20% steps) rather than switching strategies when a campaign is already converting. Routine checks Campaigns "Limited by budget" with CPA below target: raise budget. Target CPA far below actual CPA for 2+ weeks: loosen the target. Campaigns on Maximize clicks that now have 30+ conversions: move to Maximize conversions. --- # Creating campaigns from the chat: Search, Performance Max, Display, Demand Gen, Shopping, App URL: https://paidhelm.com/docs/campaigns/ What each PaidHelm campaign-creation tool needs, what it builds, and the recommended brief to give your assistant so the whole campaign is created paused and ready for review. Campaign creation is where PaidHelm saves the most time: a complete Search campaign with ad groups, keywords, ads and sitelinks takes about ten tasks and a few minutes instead of an hour of clicking. The assistant collects the required information, confirms the plan with you and executes it step by step. A good brief Create a Search campaign for our spring sale. Budget $80/day, United States only, English, maximize conversions. Three ad groups: running shoes, trail shoes, kids shoes. Use the keyword planner for ideas, 10–15 keywords per group in phrase and exact match, one RSA per group pointing to the matching category page, and sitelinks to Shipping, Returns, Sale and New arrivals. Keep everything paused. From this the assistant runs, in order: buscar_localizacao → buscar_idioma → criar_campanha_pesquisa → segmentar_localizacao → segmentar_idioma → planejar_palavras_chave → criar_grupo_anuncios ×3 → adicionar_palavras_chave ×3 → criar_anuncio ×3 → adicionar_sitelinks. It reports each ID as it goes. Required inputs by campaign type TypeToolRequiredNotes Searchcriar_campanha_pesquisaName, daily budget, locations, languages, bid strategySearch partners and Display expansion off by default. Then add ad groups, keywords, RSAs, extensions. Performance Maxcriar_campanha_pmaxName, budget, business name, final URL, 3–5 headlines (≤30), 1–5 long headlines (≤90), 2–5 descriptions (≤90), at least one landscape and one square image, logoOptional: target CPA/ROAS, audience signal. Images via enviar_imagem. Displaycriar_campanha_displayName, budget, headlines, long headline, descriptions, business name, final URL, landscape + square + logo imagesResponsive display ad is created in one ad group. Demand Gencriar_campanha_demand_genName, budget, business name, texts, images, final URL, audienceAudience can be a custom segment, in-market or your own lists. Shoppingcriar_campanha_shoppingName, budget, Merchant Center ID, sales countryMerchant Center must already be linked in Google Ads. Appcriar_campanha_appName, budget, app ID, store, goalGoogle Play or App Store. Review before enabling Summarize the campaign you just built: settings, ad groups, keyword counts, ad strength of each RSA, extensions. Flag anything that looks off. When satisfied, say "enable the campaign" and alterar_status switches it on. If something is wrong, ask for edits: editar_anuncio, adicionar_negativas, alterar_orcamento, definir_estrategia_lance. Guardrails to state once "Never set a daily budget above $X without asking." "Always use exact and phrase match; no broad match unless I say so." "Final URLs must be on example.com." "Create everything paused and wait for my OK." Q: Are campaigns live immediately? A: No. Every campaign PaidHelm creates is paused. You review it in Google Ads or ask the assistant for a summary, then say 'enable it'. Q: Can it create YouTube video campaigns? A: Not through the API; Google restricts Video campaign creation to the interface for most advertisers. The tool campanha_video_como_fazer explains the fastest manual path and the assistant can still report on and manage existing video campaigns. Q: What about images? A: Provide public URLs. enviar_imagem uploads them to your asset library and the campaign tools reference them. For Display the API requires three formats: landscape 1.91:1, square 1:1 and logo. --- # Client setup: Claude, ChatGPT, Cursor, Claude Code, Windsurf, VS Code, Gemini CLI URL: https://paidhelm.com/docs/clients/ Configuration snippets for every MCP client that works with PaidHelm: Claude web/desktop, Claude Code, ChatGPT, Cursor, Windsurf, VS Code with Copilot, Gemini CLI and Perplexity. PaidHelm is a remote MCP server using the Streamable HTTP transport with OAuth 2.0 (dynamic client registration and PKCE). Any client that supports remote servers works. Server URL for all of them: {{mcp_url}}/mcp Claude (web, desktop, mobile) Settings → Connectors → Add custom connector → paste the URL → Add → Connect. Enable the connector in each chat from the tools menu. Available on Free, Pro, Max, Team and Enterprise Claude plans. Full guide. Claude Code claude mcp add --transport http paidhelm {{mcp_url}}/mcp Then run /mcp inside Claude Code to complete the Google sign-in. Full guide. ChatGPT Settings → Connectors → Advanced → enable Developer mode → Create → name "PaidHelm Google Ads", paste the URL, authentication OAuth → Create. Available on Plus, Pro, Business, Enterprise and Edu plans. Full guide. Cursor Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global): { "mcpServers": { "paidhelm": { "url": "{{mcp_url}}/mcp" } } } Cursor detects the OAuth requirement and opens the Google sign-in when you first use a tool. Full guide. Windsurf { "mcpServers": { "paidhelm": { "serverUrl": "{{mcp_url}}/mcp" } } } File: ~/.codeium/windsurf/mcp_config.json. Full guide. VS Code (GitHub Copilot agent mode) { "servers": { "paidhelm": { "type": "http", "url": "{{mcp_url}}/mcp" } } } File: .vscode/mcp.json. Full guide. Gemini CLI { "mcpServers": { "paidhelm": { "httpUrl": "{{mcp_url}}/mcp" } } } File: ~/.gemini/settings.json. Full guide. Perplexity Perplexity's Computer and Mac app support remote connectors; add the server URL in Settings → Connectors. Full guide. Any other client Use the Streamable HTTP URL above. If your client only supports the older SSE transport, use {{mcp_url}}/sse. OAuth metadata is published at the standard well-known locations so clients discover authorization automatically. --- # Connecting your Google Ads account URL: https://paidhelm.com/docs/connecting-google-ads/ How PaidHelm authorizes Google Ads through Google OAuth, how manager (MCC) accounts and multiple client accounts work, how to switch accounts and how to disconnect. How authorization works The first time your assistant calls PaidHelm, you are sent to Google's consent screen. PaidHelm asks for a single Google Ads permission (auth/adwords) plus your email to identify you. Google returns a refresh token that PaidHelm encrypts and stores. From then on every tool call uses that token on your behalf. You never share your Google password with PaidHelm. Which Google account to use Use the login that already opens your accounts in ads.google.com. PaidHelm can reach every Google Ads account that login can reach: A single business account: sign in with the owner or admin login of that account. A manager account (MCC): sign in with the login that has access to the manager. All client accounts beneath it are available; PaidHelm sets the manager as login customer automatically when needed. Agency with several unrelated logins: each login becomes its own PaidHelm account. Consider consolidating access under one manager account first. Listing and choosing accounts Ask the assistant to list accounts. listar_contas returns every accessible customer ID with its name and whether it is a manager. Tools that act on an account take a customer_id; the assistant remembers the one you choose for the rest of the conversation. If you work with many accounts, name the client in your prompt ("for Acme Dental…") and the assistant will pick the right ID. Switching the connected Google account Open the portal and disconnect Google Ads. In your assistant, disconnect and reconnect the PaidHelm connector. On Google's screen choose the other account. Disconnecting and revoking You can revoke PaidHelm at any time from the portal or from myaccount.google.com → Security → Third-party access. Revocation is immediate; PaidHelm deletes the token on the next failed call. Your plan and task counter remain until you delete the account. Permissions inside Google Ads PaidHelm can only do what your Google login can do. A read-only user in Google Ads will be able to run reports but not change anything; a standard or admin user can make changes. Managing permissions therefore stays where it belongs, in Google Ads. Q: Can I connect more than one Google login? A: Each Google login is a separate PaidHelm account with its own plan. Most people use one login that has access to all their Google Ads accounts, including through a manager account. Q: The assistant says my account has no access. What now? A: You probably signed in with a Google account that does not have Google Ads access. Disconnect in the portal and reconnect with the account you use at ads.google.com. Q: Does PaidHelm need to be added as a user in Google Ads? A: No. PaidHelm acts with your own permission through OAuth. It does not appear as a user or manager in your Google Ads account. --- # Frequently asked questions URL: https://paidhelm.com/docs/faq/ Answers about PaidHelm: what it is, who it is for, which assistants work, what a task is, safety, pricing, refunds, agencies and roadmap. Short answers to the questions we hear most. For setup details see the Quickstart; for billing see Plans and tasks. Q: What is PaidHelm? A: PaidHelm is a hosted MCP server that lets AI assistants such as Claude, ChatGPT and Cursor read and manage Google Ads accounts on your behalf, with you approving every change. Q: Who is it for? A: Advertisers, freelancers and agencies who run Google Ads and already use an AI assistant. No coding is required. Q: Which assistants are supported? A: Claude (web, desktop, mobile), Claude Code, ChatGPT, Cursor, Windsurf, VS Code with GitHub Copilot, Gemini CLI, Perplexity and any client that supports remote MCP servers. Q: How much does it cost? A: Free: 30 tasks/month. Plus $49: 300. Pro $99: 1,500. Max $199: 6,000. Yearly billing saves about 17%. Q: What is a task? A: One tool call: one report, one change, one creation step. Checking your plan or generating an upgrade link is free. Q: Is it safe to give an AI access to my ads account? A: PaidHelm uses Google OAuth (no password), encrypts tokens, creates every campaign paused, requires explicit IDs for changes and lets you revoke access in one click. You decide what runs. Q: Can it launch campaigns without me? A: No. Campaigns are created paused and only enabled when you say so. Q: Does PaidHelm replace my Google Ads account or dashboard? A: No. Everything stays in your Google Ads account. PaidHelm is a bridge, not a platform. Q: Can agencies use one subscription for many clients? A: Yes. One Google login that can access many accounts gives the assistant access to all of them under a single plan. Q: Do you support Meta Ads? A: Meta Ads is in private testing and will join the same subscription. Google Analytics 4 reporting follows. Q: Is there a refund? A: 7 days after the first charge if you used less than half the plan's tasks. Q: Where is my data stored? A: On Cloudflare's network. PaidHelm stores your email, an encrypted token and usage counters, not your reports or campaigns. Q: Who makes PaidHelm? A: A2 Digital Marketing Ltda., a performance marketing agency founded in 2015 in Fortaleza, Brazil, that runs the same server for its own clients. --- # Keywords and negatives URL: https://paidhelm.com/docs/keywords/ Keyword research with the Google Ads Keyword Planner, adding keywords with match types, and the weekly search-terms-to-negatives routine, all from the chat with PaidHelm. Research planejar_palavras_chave queries the Keyword Planner with seed terms, a landing-page URL, or both, for a location and language. It returns ideas with average monthly searches, competition and the low/high top-of-page bid range. metricas_palavras_chave does the same for a list you already have. Find 40 keyword ideas for "emergency plumber" in Austin, Texas, English, and group them into 3 themes with volume and bid ranges. Adding keywords adicionar_palavras_chave takes an ad group ID and a list of keywords with match type (EXACT, PHRASE, BROAD) and optional CPC bid. The assistant removes duplicates and warns about very broad terms. Negatives adicionar_negativas adds negative keywords at campaign level (applies to all ad groups) or ad group level. The standard weekly routine: Pull search terms for the last 7–14 days with clicks and no conversions (consultar_relatorio). The assistant classifies them: irrelevant (jobs, free, DIY, competitors you don't want), relevant but not yet converting, and brand. You approve the irrelevant list; it is added as campaign-level negatives, phrase match by default. Run my weekly negatives routine on the "Non-brand" campaign. Show the proposed negatives grouped by reason before adding. Keyword hygiene reports Zero-impression keywords in 90 days (candidates to remove). Quality Score ≤ 4 with meaningful spend (landing page or ad relevance work). Keywords competing across ad groups (same term, different groups). Broad-match terms whose search terms drift from intent. --- # Plans, tasks and quotas URL: https://paidhelm.com/docs/plans-and-tasks/ How PaidHelm counts tasks, what the Free, Plus, Pro and Max plans include, what happens at the quota, how upgrade_plan creates a checkout link inside the chat, and how billing cycles work. What is a task A task is one call to any PaidHelm tool: one report, one audit query, one change, one campaign creation step. plan_usage and upgrade_plan are free. Conversations typically use two to five tasks; a full campaign build uses eight to twelve. Plans PlanTasks / monthPrice Free30$0 Plus300$49/mo or $490/yr Pro1,500$99/mo or $990/yr Max6,000$199/mo or $1,990/yr Cycle Your cycle starts the day you create the account (Free) or the day you subscribe (paid) and renews every 30 days, or yearly for annual plans. The counter resets at renewal. Reaching the quota The assistant warns you at 80% and 100%. At 100% every tool returns a short message with your renewal date and a personal upgrade link. Nothing else changes: your connection, accounts and history stay intact. Upgrading from the chat Upgrade me to Pro. upgrade_plan creates a Paddle checkout pre-filled with your email and returns the link. After payment, Paddle notifies PaidHelm and your plan and quota update within seconds; no reconnection needed. Downgrades take effect at the end of the paid period. Cancelling Use the link in your Paddle receipt email or write to support@paidhelm.com. Your plan stays active until the end of the paid period and then falls back to Free. See the refund policy for the 7-day guarantee on the first charge. Q: Does a failed call count? A: A call that fails because of a Google Ads API error (for example an invalid ID) still counts, because it was executed. Calls rejected by PaidHelm before reaching Google, such as over quota, do not count. Q: Do unused tasks roll over? A: No. The counter resets at each renewal. Q: How do I see my usage without the chat? A: Open the portal at mcp.paidhelm.com/googleads/portal. It shows plan, tasks used and renewal date. --- # Prompt library for Google Ads with AI assistants URL: https://paidhelm.com/docs/prompts/ Copy-and-paste prompts for Google Ads audits, weekly reports, search-term cleanup, budget pacing, ad copy refresh, campaign builds and agency routines, tuned for PaidHelm's tools. Prompts below assume the PaidHelm connector is enabled. Replace names and numbers with yours. Each prompt lists the approximate number of tasks it uses. Audits Audit this account like a senior PPC manager. Cover: wasted spend in search terms (30 days), keywords with QS ≤4, ads below "Good" strength, campaigns limited by budget, conversion tracking issues, missing extensions, geo and device anomalies. Give me a prioritized list of fixes with estimated impact. Don't change anything. (6–10 tasks) Check conversion setup: list conversion actions, their status, counting method, last conversion date and which are primary. Flag duplicates and dead actions. (1–2 tasks) Weekly routine Weekly review for Acme: last 7 days vs previous 7 days by campaign (spend, conv, CPA, CTR, CVR), new negatives from search terms, pacing vs $6,000 monthly budget, and three recommendations. Show negatives before adding. (3–5 tasks) Search terms and negatives Find search terms from the last 14 days with ≥8 clicks and 0 conversions in non-brand campaigns. Group by why they're irrelevant. Then wait for my approval to add them as campaign-level phrase negatives. (2–3 tasks) Budgets and bids For every enabled campaign, compare month-to-date spend with daily budget × days in month. Recommend budget changes to land within 5% of target, cap any increase at 20%, and apply only after I confirm. (2–4 tasks) Campaign "Leads – Search" has 48 conversions in 30 days at $61 CPA on Maximize conversions. Set a target CPA of $55 and explain the expected learning period. (1 task) Ads List RSAs with ad strength Poor or Average and their current headlines. Propose 15 headlines and 4 descriptions per ad using our value props (free shipping, 30-day returns, 4.8★). Apply to the ad I pick. (2–3 tasks) Add sitelinks to campaign 123456: Pricing, Case studies, Book a demo, Contact. Add callouts: 24/7 support, No setup fee, Cancel anytime. (2 tasks) Campaign builds Build a Performance Max campaign for our winter collection. Budget $150/day, target ROAS 400%, US + Canada, English. Business name "Northwind". Use these images: [URLs]. Write 5 headlines, 5 long headlines, 5 descriptions. Final URL https://example.com/winter. Keep it paused and summarize when done. (4–6 tasks) Build a Search campaign from this brief: [paste brief]. Use the keyword planner, 3 ad groups, exact + phrase match, one RSA per group, sitelinks and callouts. Paused. (8–12 tasks) Agency For all client accounts: month-to-date spend vs budget (budgets: Acme 6000, Bolt 3500, Cedar 12000). Flag any above 110% or below 70% pace. One line per client. (1 task per account) Write a client-facing monthly report for Cedar: headline metrics with month-over-month change, top 5 campaigns, what we did, what's next. Plain English, no jargon. (2–3 tasks) Standing instructions (put in project/system prompt) You manage Google Ads through PaidHelm for my accounts. Rules: - Show every change before executing; wait for "go". - Never increase a daily budget by more than 20% in one step. - Create campaigns paused. Exact and phrase match only. - Final URLs must be on example.com. - Report costs in USD with two decimals. --- # Quickstart: connect Google Ads to your AI assistant in 5 minutes URL: https://paidhelm.com/docs/quickstart/ Step-by-step: add the PaidHelm MCP server to Claude, sign in with Google, and run your first Google Ads report from the chat. Free plan, no credit card. This guide uses Claude because it is the most common client. Other assistants differ only in where you paste the server URL; see Client setup. Create your free PaidHelm account. Open the portal and sign in with Google. Free includes 30 tasks a month and needs no card. Add the connector in Claude. In Claude (web or desktop) go to Settings → Connectors → Add custom connector. Name it "PaidHelm Google Ads" and paste the URL below. Click Add, then Connect. {{mcp_url}}/mcp Authorize Google Ads. Claude opens Google's consent screen. Choose the Google account that has access to your ads accounts and accept the Google Ads permission. You are redirected back and the connector shows as connected. Run your first report. Start a new chat, make sure the PaidHelm connector is enabled for that chat, and ask: List my Google Ads accounts, then show the last 30 days of cost, clicks, conversions and cost per conversion by campaign for the main one. The assistant calls listar_contas and then consultar_relatorio. Two tasks. Try a safe change. Which search terms spent more than $30 this month with no conversions? Show me the list first, don't change anything yet. Review the list, then tell the assistant which ones to add as negatives. Tip. Put standing rules in your Claude project instructions, e.g. "Always show me the change before executing. Never raise a daily budget by more than 20% without asking." Next steps Learn how the assistant queries any report: Reports and GAQL. Build a complete campaign from a brief: Creating campaigns. Check how many tasks you have left: ask "run plan_usage" or see Plans and tasks. Q: Do I need a Google Ads developer token? A: No. PaidHelm provides API access. You only need a Google account that can access the Google Ads accounts you want to manage. Q: Which Google account should I sign in with? A: The one that already opens your Google Ads accounts in ads.google.com. If you use a manager account (MCC), sign in with the login that has access to it and all client accounts will be available. Q: Is the first step different for ChatGPT or Cursor? A: Only step 2 changes: where you paste the server URL. See the client setup page for each assistant. --- # Reports and GAQL: querying any Google Ads report from the chat URL: https://paidhelm.com/docs/reports/ How PaidHelm turns a plain-language question into a Google Ads Query Language (GAQL) report, the most useful resources and metrics, date ranges, and ready-to-use report prompts. All reporting goes through one tool, consultar_relatorio, which runs a read-only GAQL query against the account you choose. GAQL is Google's SQL-like language: you pick a resource, the fields and metrics you want, a date range and filters. What a query looks like SELECT campaign.name, metrics.cost_micros, metrics.clicks, metrics.conversions, metrics.cost_per_conversion FROM campaign WHERE segments.date DURING LAST_30_DAYS AND campaign.status = 'ENABLED' ORDER BY metrics.cost_micros DESC The assistant writes this for you from "show me spend, clicks and conversions by campaign for the last 30 days". Costs come back in micros (divide by 1,000,000); the assistant converts them. Most useful resources ResourceUse it for campaignSpend pacing, conversions, bid strategy, budget per campaign ad_groupPerformance by theme, CPCs, status keyword_viewKeyword metrics, Quality Score, match types, zero-impression keywords search_term_viewActual queries that triggered ads: the source of negatives ad_group_adAd copy, approval status, ad strength, performance per ad asset, asset_group_assetPerformance Max asset performance labels geographic_view, user_location_viewPerformance by location campaign with segments.device, segments.hour, segments.day_of_weekDevice and time breakdowns conversion_actionConversion setup audit change_eventWho changed what, including PaidHelm's own changes campaign_budget, bidding_strategyShared budgets and portfolio strategies recommendationGoogle's recommendations with their estimated impact Date ranges Named ranges: TODAY, YESTERDAY, LAST_7_DAYS, LAST_14_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTH, THIS_WEEK_SUN_TODAY, LAST_BUSINESS_WEEK. Or explicit: segments.date BETWEEN '2026-10-01' AND '2026-10-31'. Comparisons (this month vs last month) take two tasks, one per period, and the assistant computes the deltas. Report prompts that work Give me a weekly summary for last week vs the week before: spend, conversions, CPA and conversion rate by campaign, and highlight anything that moved more than 20%. Show search terms from the last 14 days with more than 10 clicks and zero conversions, sorted by cost. Which keywords have Quality Score 4 or below and spent more than $100 this month? Break down last month's conversions by device and hour of day for the "Brand" campaign. List all ads with approval status other than APPROVED and the reason. What changed in this account in the last 7 days? Use change_event and group by user. Limits One query returns up to 10,000 rows; the assistant pages or narrows the filter when needed. Some metrics cannot be combined with some segments (Google's rule); the assistant will adjust and tell you. Manager accounts: metrics must be queried per client account. Ask for "all accounts" and the assistant loops, one task each. Q: Do I need to know GAQL? A: No. You ask in plain language and the assistant writes the query. Knowing a few field names helps when you want something unusual, and you can always ask the assistant to show the query it ran. Q: How far back can reports go? A: Google Ads keeps most performance data for years; search terms and some asset reports are limited by Google to recent periods. Date ranges follow the API: specific dates or named ranges such as LAST_30_DAYS. Q: Can the assistant export to a spreadsheet? A: Results come back as structured text that the assistant can format as a table, CSV or Markdown. In Claude and ChatGPT you can ask for a downloadable file; in Cursor or Claude Code it can write the CSV directly to your project. --- # Authentication and security URL: https://paidhelm.com/docs/security/ Technical details of PaidHelm's OAuth 2.0 implementation for MCP clients, the Google OAuth scope used, token encryption, revocation, logging and the safety rules built into the tools. Two OAuth layers Client ↔ PaidHelm. Your MCP client (Claude, Cursor…) authenticates to PaidHelm using OAuth 2.0 with dynamic client registration and PKCE. Metadata is published at /.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource. Unauthenticated requests receive HTTP 401 with a WWW-Authenticate header that points the client to the authorization server. PaidHelm ↔ Google. During that flow PaidHelm redirects you to Google's consent screen requesting https://www.googleapis.com/auth/adwords and your email. Google returns a refresh token that PaidHelm encrypts (AES-GCM, key in Cloudflare secrets) before storing. What is stored Email, encrypted refresh token, plan, billing IDs, task counter, cycle dates. Tool-call log: tool name, timestamp, customer ID, outcome. 90 days. Not stored: report results, campaign contents, conversation text, access tokens beyond their lifetime. Revocation Disconnect in the portal, in your MCP client, or at Google (myaccount.google.com → Security → Third-party access). Any of these stops access immediately. Built-in safety rules Campaigns, ad groups and ads are created paused. Write tools require explicit resource IDs; there is no "pause everything". Removals require the exact object and the assistant confirms before calling. Quotas cap the number of operations per cycle, limiting the blast radius of a runaway loop. Infrastructure Cloudflare Workers, D1 and KV; TLS everywhere; secrets in Cloudflare's encrypted store; payments by Paddle (no card data at PaidHelm). Full statement on the Security page; DPA at /dpa/. --- # Tool catalog: all 32 PaidHelm Google Ads tools URL: https://paidhelm.com/docs/tools/ Complete reference of the PaidHelm MCP tools for Google Ads: reports, account listing, status, budgets, bidding, targeting, keyword planning, ads, extensions, campaign creation and advanced API operations. Every tool is one task. Tools marked write change your account and require explicit object IDs that the assistant obtains from a read first. Campaign-creation tools always create the campaign paused. Account and plan ToolTypeWhat it does listar_contasreadLists the Google Ads accounts your login can access, with names, hierarchy and manager flag. plan_usagefreeShows your plan, tasks used this cycle and the renewal date. upgrade_planfreeGenerates a personal checkout link to upgrade or change plan. Access updates automatically after payment. Reporting ToolTypeWhat it does consultar_relatorioreadRuns any read-only GAQL query. Covers every Google Ads report: campaigns, ad groups, keywords, search terms, ads, assets, geographic, device, hour of day, conversions, change history and more. See Reports and GAQL. Campaign management ToolTypeWhat it does alterar_statuswritePauses, enables or removes a campaign, ad group, ad or keyword. renomearwriteRenames a campaign or ad group. alterar_orcamentowriteChanges the daily budget of an existing campaign, in the account currency. listar_estrategias_portfolioreadLists shared (portfolio) bid strategies in the account. definir_estrategia_lancewriteSets the campaign bid strategy: manual CPC, maximize clicks, maximize conversions (optional target CPA), maximize conversion value (optional target ROAS) or a portfolio strategy. Targeting ToolTypeWhat it does buscar_localizacaoreadFinds official geo-target IDs by name (city, state, country, region). segmentar_localizacaowriteAdds location targeting (or exclusions) to a campaign using those IDs. buscar_idiomareadFinds official language codes. segmentar_idiomawriteSets the languages a campaign targets. Keywords ToolTypeWhat it does planejar_palavras_chavereadKeyword Planner: discovers new keyword ideas from seed terms or a URL with volume, competition and bid ranges. metricas_palavras_chavereadReturns search volume, competition and bid range for a specific list of keywords. adicionar_palavras_chavewriteAdds positive keywords to an ad group with match types. adicionar_negativaswriteAdds negative keywords at campaign or ad group level. Ads and extensions ToolTypeWhat it does criar_grupo_anuncioswriteCreates an ad group inside an existing campaign. criar_anunciowriteCreates a responsive search ad (RSA) with up to 15 headlines and 4 descriptions. editar_anunciowriteUpdates headlines and descriptions of an existing RSA. adicionar_sitelinkswriteAdds sitelink assets to a campaign. adicionar_frases_destaquewriteAdds callout assets to a campaign. enviar_imagemwriteUploads an image from a public URL to the account's asset library (for Display, Demand Gen and Performance Max). Campaign creation ToolTypeWhat it does criar_campanha_pesquisawriteCreates a Search campaign: name, budget, locations, languages, bid strategy, network settings. Paused. criar_campanha_pmaxwriteCreates a Performance Max campaign with its asset group: business name, headlines, long headlines, descriptions, images, logo, final URL. Paused. criar_campanha_displaywriteCreates a Display campaign with a responsive display ad (texts plus the three required image formats). Paused. criar_campanha_demand_genwriteCreates a Demand Gen campaign with audience control, texts, business name and images. Paused. criar_campanha_shoppingwriteCreates a Shopping campaign. Requires a Merchant Center account already linked to Google Ads. Paused. criar_campanha_appwriteCreates an App campaign given the app ID and store (Google Play or App Store). Paused. campanha_video_como_fazerreadExplains why Video (YouTube) campaigns cannot be created through the API and the fastest manual path. Advanced ToolTypeWhat it does executar_operacao_servicoread/writeCalls Google Ads API service endpoints outside the mutate flow (for example recommendations, reach planning, billing setup queries). executar_operacao_avancadawriteRuns any Google Ads API mutate operation that has no dedicated tool, with the full request body. For experienced users; the assistant will show the request before sending. Q: Why are tool names in Portuguese? A: PaidHelm's server was first deployed for Brazilian advertisers and tool names are stable identifiers that assistants call by name. Descriptions and parameters are documented in English and every modern assistant maps your English request to the right tool automatically. English aliases are on the roadmap. Q: Does every call count as a task? A: Yes, except plan_usage and upgrade_plan, which are free. Reading the tool list when the connector loads is not a task. Q: Can I restrict which tools the assistant may use? A: Yes. Most clients let you disable individual tools per connector. You can also instruct the assistant, for example 'only use read-only tools in this chat'. --- # Troubleshooting URL: https://paidhelm.com/docs/troubleshooting/ Fixes for the most common PaidHelm issues: connector will not connect, Google account without access, developer token or customer not enabled errors, tools not showing, quota reached, and reconnecting after revocation. The connector will not connect Check the URL: {{mcp_url}}/mcp (with /googleads). The bare domain is not the server. Pop-up blockers can swallow the Google window. Allow pop-ups for your assistant's site and retry. If your client only supports SSE, use {{mcp_url}}/sse. Corporate networks sometimes block OAuth redirects; try from another network to isolate. "No Google Ads accounts found" or "user doesn't have permission" You signed in with a Google account that has no Google Ads access, or the account was removed. Disconnect in the portal and reconnect with the login you use at ads.google.com. See Connecting Google Ads. "CUSTOMER_NOT_ENABLED" or "account is not active" The Google Ads account is cancelled, suspended or has not finished billing setup. Fix the account in Google Ads first. "Metrics cannot be requested for a manager account" Performance metrics must be queried per client account. Ask for a specific client or "all accounts" and the assistant will iterate. Tools are not appearing Make sure the connector is enabled for the current chat (tools menu in Claude/ChatGPT). Restart the client after adding a server (Cursor, Windsurf, VS Code). In Claude Code run /mcp to check status and re-authenticate. "Quota reached" You used all tasks for this cycle. Ask the assistant for plan_usage to see the renewal date or upgrade_plan to upgrade instantly. See Plans and tasks. Reconnecting after revoking at Google Disconnect and reconnect the connector in your client. The Google screen appears again and a new token is stored. A change didn't apply Ask the assistant to show the exact error. Google Ads API errors are descriptive (policy violation, invalid final URL, budget too low). The assistant can usually fix and retry. If you suspect a PaidHelm issue, email support@paidhelm.com with the time and the tool name. --- # Data Processing Addendum URL: https://paidhelm.com/dpa/ PaidHelm's Data Processing Addendum: roles, categories of data, sub-processors, security measures, international transfers and data-subject rights for customers subject to GDPR, UK GDPR, CCPA and LGPD. This Data Processing Addendum ("DPA") forms part of the PaidHelm Terms of Service between A2 Digital Marketing Ltda. ("PaidHelm", "we") and the customer ("Customer", "you") and applies whenever PaidHelm processes personal data on your behalf. It is incorporated by reference into the Terms. Customers who require a signed copy may request one at support@paidhelm.com. 1. Roles For personal data contained in your Google Ads account that PaidHelm accesses when executing your instructions, you are the controller and PaidHelm is the processor. For your own account data (email, plan, billing status, usage counters) PaidHelm is an independent controller, as described in the Privacy Policy. 2. Subject matter and duration Processing consists of transmitting your instructions, issued through an AI assistant of your choice, to the Google Ads API and returning the results. Processing lasts for the duration of your account and ends when you disconnect your Google account, delete your PaidHelm account, or revoke access in Google. 3. Nature and purpose Retrieval of advertising reports, creation and modification of advertising campaigns and related objects, keyword research, and plan quota accounting, solely to provide the service you requested. 4. Categories of data and data subjects Customer account data: Google account email, encrypted OAuth refresh token, plan, billing identifiers from Paddle, task counters. Advertising data (transient): campaign, ad group, keyword, ad and performance data returned by the Google Ads API. This data is relayed to your AI assistant and is not stored by PaidHelm. Data subjects: you and your authorized users; incidentally, end users whose aggregated interactions appear in Google Ads reports. PaidHelm does not process customer-match lists or other personally identifiable audience data unless you explicitly instruct a tool to do so. 5. Instructions PaidHelm processes personal data only on your documented instructions, which are the tool calls issued by your AI assistant on your behalf, plus the Terms and this DPA. We will inform you if we believe an instruction infringes applicable data-protection law. 6. Confidentiality Personnel with access to personal data are bound by confidentiality obligations and receive access only as needed for support and operations. OAuth tokens are encrypted and are never displayed in administrative tools. 7. Security measures TLS 1.2+ for all traffic; HTTPS-only endpoints. Encryption of OAuth tokens at rest with keys stored in Cloudflare's secret store. Least-privilege OAuth scope (Google Ads only). Hosting on Cloudflare Workers, D1 and KV (SOC 2 Type II environment). Access logging of tool calls for 90 days; no storage of report contents. Campaigns created paused by default; destructive operations require explicit identifiers. 8. Sub-processors Sub-processorPurposeLocation Cloudflare, Inc.Hosting, database, key-value storage, TLSGlobal edge; data stored in the United States and EU regions Google LLC (Google Ads API)Executing your advertising instructionsUnited States and global Paddle.com Market Ltd.Merchant of record, payments, invoicing, taxUnited Kingdom, United States Resend, Inc.Transactional email (access and billing notices)United States We will give at least 14 days' notice by email before adding a sub-processor that processes Customer personal data. You may object on reasonable data-protection grounds; if we cannot resolve the objection you may terminate the affected service and receive a pro-rata refund of prepaid fees. 9. International transfers Where personal data originating in the EEA, UK or Switzerland is transferred to countries without an adequacy decision, the parties rely on the European Commission's Standard Contractual Clauses (Module 2, controller to processor) and the UK International Data Transfer Addendum, which are incorporated by reference. For Brazilian data subjects, transfers comply with the LGPD (Lei 13.709/2018). 10. Assistance and data-subject rights Taking into account the nature of processing, PaidHelm will assist you in responding to data-subject requests and in meeting your obligations regarding security, breach notification and impact assessments. Requests reaching us directly from data subjects will be forwarded to you where we can identify the controller. 11. Personal data breach PaidHelm will notify you without undue delay, and in any event within 72 hours, after becoming aware of a personal data breach affecting your data, providing the information reasonably available to help you meet your own notification duties. 12. Deletion and return Upon termination or on your request, PaidHelm deletes your encrypted token and account data within 30 days, except where retention is required by law (for example billing records). Because PaidHelm does not store advertising data, there is nothing further to return; your data remains in your Google Ads account. 13. Audit On written request no more than once per year, PaidHelm will make available the information reasonably necessary to demonstrate compliance with this DPA, including summaries of third-party audit reports of our hosting providers. 14. Liability and precedence Each party's liability under this DPA is subject to the limitations in the Terms. In case of conflict between this DPA and the Terms regarding the processing of personal data, this DPA prevails. Last updated: 1 November 2026. --- # Enterprise & agencies URL: https://paidhelm.com/enterprise/ Run every client's Google Ads account from one AI assistant. Multi-account access, higher task volumes, invoicing, onboarding for your team and a direct line to the people who built PaidHelm. Agencies spend a disproportionate share of their week on reporting, pacing checks and small housekeeping changes across many accounts. PaidHelm lets one account manager do that work by talking to an assistant that already has every client's data in reach, with the same safeguards for all of them. What changes for an agency One conversation, every account. "Compare spend pacing across all accounts this month and flag anyone above 110% of plan." One task per account, one answer. Monday reports in minutes. Ask for a client-ready summary with the metrics each client cares about; paste it into your email or deck. Campaign builds from a brief. Paste the client's brief and let the assistant build the Search or Performance Max campaign paused for review, then enable it after QA. Consistent hygiene. Weekly negatives, disapproved ads, zero-impression keywords and budget caps checked the same way for every account. Guardrails you set once. "Never raise any client's daily budget by more than 20% without my confirmation." The assistant obeys across sessions when kept in your project instructions. Plans for teams Team shapeRecommended Freelancer, up to 5 accounts, weekly routinePro (1,500 tasks) Small agency, 5–30 accounts, daily check-insMax (6,000 tasks) Agency with several account managersOne plan per manager, or a custom bundle In-house team with compliance requirementsMax + DPA + invoicing Onboarding and support A 45-minute onboarding call for teams on Max or custom plans: client setup, prompt library, guardrails. Priority email support with a one-business-day response target. A shared prompt library covering audits, pacing, reporting and campaign builds, adapted to your vertical. Security for client data PaidHelm never stores report results or campaign contents, uses Google OAuth only, encrypts tokens and creates every campaign paused. Full details on the Security page, and a signable Data Processing Addendum is available. Q: Can one subscription cover many client accounts? A: Yes. PaidHelm authorizes the Google login, not a single Google Ads account. If your login can access 40 client accounts through your manager account, all 40 are available in the chat under one subscription. Q: Can each team member have their own login? A: Each Google login is a PaidHelm account with its own plan. Teams usually give each account manager their own Plus or Pro plan, or share one Max plan through a shared Google Workspace login. Custom seat bundles are available on request. Q: Do you offer invoicing instead of card payments? A: Yes, for annual plans from Pro upward. Paddle issues the invoice; wire transfer is accepted. Q: Can you sign our vendor security questionnaire or DPA? A: Yes. See Security for our standard posture and request the DPA by email. --- # How PaidHelm works URL: https://paidhelm.com/how-it-works/ PaidHelm is a hosted MCP server that connects your AI assistant to the Google Ads API. You talk, the assistant proposes, you approve, PaidHelm executes on your own account. Most Google Ads work is the same loop every week: pull a report, spot what changed, decide, change a setting, repeat. PaidHelm moves that loop into the chat window you already use. You describe what you want in plain language. Your AI assistant translates it into Google Ads API operations through PaidHelm, shows you what it plans to do, and executes only after you agree. The three layers Your AI assistant. Claude, ChatGPT, Cursor or any MCP-compatible client. It reads your request, chooses which PaidHelm tool to call and explains the result in words you can act on. PaidHelm (the MCP server). A hosted service at {{mcp_url}}/mcp. It validates every call, applies your plan's quota, talks to the Google Ads API with your own authorization and returns structured data back to the assistant. Your Google Ads account. Nothing moves. Your campaigns stay in your account, under your billing, with your history. PaidHelm never becomes a manager (MCC) over your account. What a task looks like A task is one tool call: one report, one audit, one change. Here is a typical conversation and the tasks it uses. Which search terms spent more than $50 this month with zero conversions? Add the irrelevant ones as negatives. Task 1: consultar_relatorio runs a search-terms query (GAQL) for the current month filtered by cost and conversions. The assistant reads the list, groups terms that clearly do not match your offer and shows them to you. Task 2: after you say yes, adicionar_negativas adds the negatives at campaign level. Two tasks, a few seconds, and a decision you made yourself with full visibility. The same pattern covers budgets, bid strategies, ad copy edits, sitelinks, geo and language targeting, keyword research and full campaign creation for Search, Performance Max, Display, Demand Gen, Shopping and App. Safety by design OAuth, not passwords. You authorize PaidHelm through Google's consent screen. Tokens are encrypted at rest and can be revoked by you at any time. Paused by default. New campaigns, ad groups and ads are created paused. You enable them when you are ready. Read before write. Tools that change things require explicit identifiers (campaign ID, ad group ID) that the assistant obtains from a read first, so there is no guessing. Guardrails from your words. Tell the assistant "never exceed $300/day in total" or "keep target CPA under $45" and it will check before every change. Your account, your audit trail. Every change appears in Google Ads change history exactly like a manual edit. Getting started takes five minutes Pick a plan. Free gives you 30 tasks a month, no card required. See plans. Add the server to your assistant. In Claude, Settings → Connectors → Add custom connector → paste {{mcp_url}}/mcp. Other clients are covered in Integrations. Sign in with Google. The first call opens Google's consent screen. Use the Google account that already has access to your Google Ads accounts. Ask for your first report. "List my accounts and show last 30 days spend and conversions by campaign." What PaidHelm is not PaidHelm is not an agency, a "set and forget" automation or a black box optimizer. It does not bid for you overnight, it does not move budget without being told, and it does not replace your judgement. It removes the clicking and the exporting so that the time you spend on Google Ads is spent deciding, not navigating. Q: What is an MCP server? A: MCP (Model Context Protocol) is an open standard that lets AI assistants call external tools. PaidHelm is an MCP server for Google Ads: it exposes reports, audits, keyword, bidding and campaign-building tools that Claude, ChatGPT, Cursor and other MCP clients can call on your behalf. Q: Does PaidHelm see or store my Google password? A: No. You sign in with Google's own OAuth screen. PaidHelm receives a revocable token scoped to Google Ads and stores it encrypted. You can disconnect at any time from the portal or from your Google account's security page. Q: Can the assistant launch campaigns without asking me? A: Every campaign PaidHelm creates is paused by default and nothing is launched without your explicit instruction. Destructive actions such as removing a campaign require you to confirm the exact object. Q: Which AI assistants work with PaidHelm? A: Claude (web, desktop and mobile), Claude Code, ChatGPT (developer mode and Deep Research connectors), Cursor, Windsurf, VS Code with GitHub Copilot, Gemini CLI, Perplexity and any client that supports remote MCP servers over HTTP. --- # Integrations: use Google Ads from any AI assistant URL: https://paidhelm.com/integrations/ PaidHelm connects Google Ads to Claude, ChatGPT, Claude Code, Cursor, Windsurf, VS Code, Gemini CLI and Perplexity through the Model Context Protocol. Pick your assistant for a step-by-step guide. PaidHelm speaks MCP, the open protocol every major assistant and AI IDE now supports for remote tools. The server URL is the same everywhere: {{mcp_url}}/mcp. Choose your client below for the exact steps, screenshots of what to expect and prompts tuned to that environment. {{cards:integration}} Not listed? Any client that supports remote MCP servers with OAuth works. Use the Streamable HTTP URL above, or {{mcp_url}}/sse for legacy SSE clients. If you get stuck, write to us and we'll add a guide. --- # ChatGPT + Google Ads: manage campaigns from ChatGPT with PaidHelm URL: https://paidhelm.com/integrations/chatgpt-google-ads/ Add PaidHelm as a custom MCP connector in ChatGPT developer mode and run Google Ads reports, cleanups, bid changes and campaign builds from a ChatGPT conversation. ChatGPT supports remote MCP servers as custom connectors. Once added, PaidHelm's tools appear in any chat where you enable the connector. Setup Enable developer mode. Settings → Connectors → Advanced settings → turn on Developer mode. Create the connector. Back in Connectors, click Create. Name PaidHelm Google Ads, description "Google Ads reports and management", URL: {{mcp_url}}/mcpAuthentication: OAuth. Tick the acknowledgment and click Create. Authorize. ChatGPT opens Google's consent screen. Sign in with the account that has Google Ads access and accept. Use it in a chat. In a new chat, click + → More → select the PaidHelm connector (developer mode). Ask your first question. First prompts List my Google Ads accounts and show the last 7 days of spend and conversions for each. Audit the "Search – Non-brand" campaign: wasted search terms, low-quality keywords, ad strength, budget pacing. Recommend fixes, don't apply yet. Tips for ChatGPT ChatGPT asks for confirmation before write tools by default; keep that on. Use a Custom GPT or a Project with instructions that name the client account and your guardrails. Ask for tables; ChatGPT renders them well and can export to a spreadsheet. Troubleshooting "Connector failed to connect": verify the URL includes /googleads/mcp and that pop-ups are allowed. Tools greyed out: the connector must be selected in the chat's More menu. Workspace plans: your admin may need to approve custom connectors. Q: Which ChatGPT plans support custom connectors? A: Plus, Pro, Business, Enterprise and Edu. Business, Enterprise and Edu workspaces may require an admin to enable developer mode or approve the connector. Q: Why is it called developer mode? A: OpenAI labels full MCP tool access (read and write) as developer mode because the assistant can take actions. PaidHelm's paused-by-default design and your approval keep those actions safe. Q: Can I use PaidHelm in Deep Research? A: Deep Research supports connectors with search and fetch tools. PaidHelm is designed for the regular chat and agent modes where write tools are available. --- # Claude Code + Google Ads: automate campaign work from the terminal URL: https://paidhelm.com/integrations/claude-code-google-ads/ Add PaidHelm to Claude Code with one command and manage Google Ads from your terminal: scripted reports to CSV, bulk negatives from files, campaign builds from briefs in your repo. For people who live in the terminal, Claude Code turns Google Ads into something you can script and version. Briefs live in Markdown, reports land as CSV in your project, and the assistant can read your landing pages' source to write better ads. Setup claude mcp add --transport http paidhelm {{mcp_url}}/mcp Then start Claude Code and run /mcp. Select paidhelm → Authenticate; your browser opens Google's consent screen. Done. Team setup (shared in the repo): claude mcp add --transport http --scope project paidhelm {{mcp_url}}/mcp What it's good for Reports to files. "Pull last month's keyword report for account 123 and save it as reports/2026-10-keywords.csv." Bulk operations from files. "Read negatives.txt and add each line as a campaign-level phrase negative to campaign 987." Campaign builds from briefs. "Read briefs/spring-sale.md and build the Search campaign it describes, paused." Landing-page-aware ads. "Read src/pages/pricing.tsx and write 15 RSA headlines that match the actual offer, then update ad 555." Scheduled summaries. A cron job running claude -p "weekly review for Acme, write to reports/". CLAUDE.md snippet # Google Ads (PaidHelm) - Accounts: Acme 123-456-7890, Bolt 234-567-8901 - Show changes before executing. Never exceed +20% budget per step. - Campaigns paused by default; exact + phrase match only. - Save every report under reports/YYYY-MM-DD-*.csv Troubleshooting /mcp shows "needs authentication": select the server and authenticate again. Behind a proxy: set HTTPS_PROXY; OAuth redirects need the local callback port open. Q: Can I share the configuration with my team? A: Yes. Use --scope project to write the server into .mcp.json in the repository; each teammate authenticates with their own Google account on first use. Q: Does Claude Code count as a separate PaidHelm account? A: No. PaidHelm accounts are per Google login. The same login used in Claude web and Claude Code shares one plan and quota. Q: Can I run it non-interactively? A: Yes, with claude -p for one-shot prompts once authenticated, which makes scheduled reports possible with cron. --- # Claude + Google Ads: manage campaigns from Claude with PaidHelm URL: https://paidhelm.com/integrations/claude-google-ads/ Connect Google Ads to Claude (web, desktop and mobile) as a custom connector. Reports, audits, negatives, budgets and full campaign builds from the Claude chat, with approval on every change. Claude is the most popular client for PaidHelm. Setup takes two minutes, Claude is careful about confirming changes, and Projects let you keep per-client instructions so you never repeat yourself. Setup Open Connectors. In Claude web or desktop: your initials → Settings → Connectors. Add custom connector. Scroll down, click Add custom connector. Name: PaidHelm Google Ads. URL: {{mcp_url}}/mcpLeave OAuth client fields empty; Claude registers itself. Click Add. Connect. Click Connect on the new card. Google's consent screen opens; choose the account you use at ads.google.com and accept. You return to Claude with the connector marked connected. Enable in a chat. Start a chat, open the tools (+) menu and make sure PaidHelm Google Ads is on. First prompts List my Google Ads accounts. For the main account, give me last 30 days spend, clicks, conversions and CPA by campaign, and tell me what stands out. Find search terms with more than $30 spent and no conversions this month. Show them before changing anything. Working with Projects Create a Claude Project per client or per team. In Project instructions paste: You manage Google Ads for Acme (customer ID 123-456-7890) via PaidHelm. Always show proposed changes and wait for my OK. Never raise daily budgets more than 20% per step. Campaigns are created paused, exact + phrase match only. Every chat in that project inherits the rules and the account, so "run the weekly review" is enough. What Claude does well here Long reasoning over large reports: ask for a full audit and Claude will chain 6–10 report queries and synthesize. Artifacts: ask for the report as a formatted document or a CSV to download. Careful execution: Claude naturally asks before destructive actions, which matches PaidHelm's paused-by-default design. Troubleshooting Connector shows but tools don't appear: enable it in the chat's tools menu. Google says the account has no Ads access: reconnect with the right Google login (guide). Team/Enterprise: ask your admin to allow custom connectors or to add PaidHelm at organization level. Q: Which Claude plans support custom connectors? A: Free, Pro, Max, Team and Enterprise all support remote MCP connectors. On Team and Enterprise an admin may need to allow the connector for the organization. Q: Does it work in the Claude mobile app? A: Yes. Connect once on web or desktop; the connector is available in the iOS and Android apps for the same account. Q: Can I use it in Claude Projects? A: Yes, and it is the best way to keep standing rules. Put your guardrails and account names in the project instructions so every chat follows them. --- # Cursor + Google Ads: manage campaigns from your IDE with PaidHelm URL: https://paidhelm.com/integrations/cursor-google-ads/ Add PaidHelm to Cursor's mcp.json and let the Cursor agent run Google Ads reports, write ads from your codebase, and build campaigns while you ship landing pages. Marketing sites and ad campaigns are built by the same people more often than ever. With PaidHelm in Cursor, the agent that edits your landing page can also read the search terms that land on it and write ads that match the copy it just shipped. Setup Create or edit .cursor/mcp.json (project) or ~/.cursor/mcp.json (global): { "mcpServers": { "paidhelm": { "url": "{{mcp_url}}/mcp" } } } Open Settings → MCP; PaidHelm appears with a Needs login state. Click it, finish Google's consent screen, and the tool list loads. Using it In Agent mode, mention what you want; Cursor picks the tools. Pull the last 30 days of search terms for campaign 123 and compare them with the headings in src/pages/landing.tsx. Which intents are we not addressing on the page? Write 15 RSA headlines and 4 descriptions based on components/Hero.tsx and update ad 555 with them. Save a CSV of keyword performance for October to data/ads/2026-10.csv. Rules file Add a .cursor/rules/google-ads.mdc with your guardrails (accounts, budget limits, "paused by default") so every agent run follows them. Index the docs Cursor can index paidhelm.com/docs via @Docs → Add new doc. The agent then has the full tool catalog and GAQL reference at hand. Troubleshooting Server shows red: check JSON syntax and that the URL ends with /googleads/mcp. OAuth loop: Cursor needs to accept the callback; make sure no extension blocks localhost redirects. Q: Project or global config? A: Use .cursor/mcp.json in the repo for a client project so the team shares it, or ~/.cursor/mcp.json to have PaidHelm in every project. Q: Does Cursor need a client ID? A: No. PaidHelm supports dynamic client registration; Cursor registers itself and opens the Google sign-in on first use. Q: Can I add PaidHelm's docs to Cursor? A: Yes. In Cursor, @Docs → Add new doc → https://paidhelm.com/docs/ indexes this documentation so the agent knows every tool. --- # Gemini CLI + Google Ads with PaidHelm URL: https://paidhelm.com/integrations/gemini-cli-google-ads/ Configure PaidHelm as an MCP server in Gemini CLI settings.json and manage Google Ads from Google's own terminal agent. Gemini CLI supports MCP servers over HTTP with OAuth. Add PaidHelm and run Google Ads operations from the same terminal session where you work. Setup Edit ~/.gemini/settings.json (or the project's .gemini/settings.json): { "mcpServers": { "paidhelm": { "httpUrl": "{{mcp_url}}/mcp" } } } Start Gemini CLI and run /mcp to see the server; authenticate when prompted and the tool list appears. Try List my Google Ads accounts and summarize yesterday's spend for each. For campaign 123, find search terms with no conversions and more than $25 spent this month. Show me before adding negatives. Notes Use httpUrl for Streamable HTTP; url is for SSE servers. /mcp auth paidhelm re-runs authentication if a token expires. --- # Perplexity + Google Ads with PaidHelm URL: https://paidhelm.com/integrations/perplexity-google-ads/ Use PaidHelm with Perplexity's connectors to pull Google Ads reports alongside live web research: competitor moves, seasonal trends and your own account data in one answer. Perplexity shines when your question needs the web and your data at the same time. With PaidHelm connected, "what are competitors advertising for 'standing desk' and how does our ad copy compare?" becomes one question. Setup Open Perplexity (Mac/Windows app or Comet) → Settings → Connectors. Add a custom connector / MCP server with URL {{mcp_url}}/mcp. Complete Google's consent screen when prompted. Where the client supports a configuration file, use the same Streamable HTTP URL; SSE fallback: {{mcp_url}}/sse. Prompts that use both worlds Research the current promotions of our three main competitors for "meal kit delivery" and compare with the headlines in our Brand and Non-brand campaigns. Suggest copy changes. What seasonal search trends matter for "tax software" in the next 60 days? Then check our keyword coverage for those terms. Notes Perplexity's connector support evolves quickly; if a step looks different, the server URL is all you need. Write tools work the same as in other clients; confirm before applying changes. Q: Which Perplexity plans support connectors? A: Connector support is available on paid Perplexity plans in the desktop apps and in Comet. Check Perplexity's current documentation for your plan. Q: Why Perplexity for ads? A: Perplexity combines fresh web search with tools. Ask it to research a competitor's current offers and compare them with your own ad copy pulled live from Google Ads. --- # VS Code + GitHub Copilot + Google Ads with PaidHelm URL: https://paidhelm.com/integrations/vscode-google-ads/ Add PaidHelm to .vscode/mcp.json and use GitHub Copilot agent mode to query Google Ads and apply changes from VS Code. GitHub Copilot's agent mode in VS Code supports MCP servers, including remote HTTP servers with OAuth. PaidHelm plugs in with a four-line file. Setup Create .vscode/mcp.json in your workspace (or add to user settings): { "servers": { "paidhelm": { "type": "http", "url": "{{mcp_url}}/mcp" } } } VS Code shows a Start action above the server; click it, then complete Google's sign-in when prompted. Open Copilot Chat in Agent mode and the tools are available. Try #paidhelm list my Google Ads accounts, then show October spend by campaign for the first one. Build a paused Search campaign from docs/brief.md with 3 ad groups and one RSA each. Notes Use the tools picker in Copilot Chat to enable or restrict PaidHelm tools. Organization policies can disable MCP in Copilot; check with your admin if the server does not start. --- # Windsurf + Google Ads with PaidHelm URL: https://paidhelm.com/integrations/windsurf-google-ads/ Configure PaidHelm in Windsurf's mcp_config.json and let Cascade run Google Ads reports and campaign changes next to your code. Windsurf's Cascade agent supports remote MCP servers. Add PaidHelm once and Google Ads becomes a tool Cascade can use while you work. Setup Edit ~/.codeium/windsurf/mcp_config.json (or open Windsurf Settings → Cascade → MCP servers → Add custom server): { "mcpServers": { "paidhelm": { "serverUrl": "{{mcp_url}}/mcp" } } } Refresh the MCP list. On first tool use Windsurf opens Google's consent screen. Try Show last week's spend and conversions by campaign for account 123-456-7890 as a Markdown table. Read ads/negatives.txt and add each line as a phrase negative to campaign 987. Confirm the list first. Troubleshooting Use serverUrl (not url) for remote servers in Windsurf. If authentication does not start, remove and re-add the server, then trigger a tool. --- # Pricing URL: https://paidhelm.com/pricing/ PaidHelm plans: Free (30 tasks/month), Plus $49 (300), Pro $99 (1,500), Max $199 (6,000). A task is one tool call. No per-seat fees, cancel anytime, 7-day money-back on the first charge. Free$0 30 tasks per month Everything you need to try PaidHelm on a real account: reports, audits and small changes. No credit card. Start free Plus$49/mo 300 tasks per month · $41/mo billed yearly For one business account with weekly optimization: negatives, budgets, bids, ad copy and a monthly deep audit. Get Plus Yearly Pro$99/mo 1,500 tasks per month · $83/mo billed yearly For freelancers and small agencies running several accounts, building campaigns from the chat and reporting daily. Get Pro Yearly Max$199/mo 6,000 tasks per month · $166/mo billed yearly For agencies and in-house teams that want the assistant in the loop all day across many accounts. Get Max Yearly Every plan includes All 30+ Google Ads tools: reports (any GAQL), audits, negatives, keywords, bids, budgets, ads, extensions, targeting and campaign creation for Search, Performance Max, Display, Demand Gen, Shopping and App. Unlimited Google Ads accounts under one Google login (including accounts under a manager account you can access). Works with Claude, ChatGPT, Claude Code, Cursor, Windsurf, VS Code, Gemini CLI, Perplexity and any remote-MCP client. OAuth sign-in, encrypted tokens, campaigns created paused, change history in your own account. Upgrade or downgrade from the chat with upgrade_plan, check usage with plan_usage. Email support at support@paidhelm.com. How many tasks do I need? Typical routineTasks Weekly performance report for one account1–2 Search-terms cleanup (report + add negatives)2–3 Budget and bid review across 5 campaigns3–6 Full account audit (structure, waste, quality, ads)6–10 Build a Search campaign (geo, language, 3 ad groups, keywords, ads, sitelinks)8–12 Build a Performance Max campaign with image upload4–6 A solo advertiser doing one weekly review per account fits comfortably in Plus. An agency with ten accounts and daily check-ins lands in Pro or Max. Billing details Payments are processed by Paddle, our merchant of record. Paddle handles tax and invoices in your currency where supported. Monthly plans renew every 30 days from the day you subscribe; yearly plans renew annually. Cancel anytime from the Paddle receipt or by emailing support. Your plan stays active until the end of the paid period and then falls back to Free. First charge covered by a 7-day refund when under 50% of the plan's tasks were used. Q: What counts as a task? A: One task is one call to a PaidHelm tool: one report query, one audit, one budget change, one campaign creation. A conversation usually uses two to five tasks. Reading the tool list or asking about your plan does not count. Q: What happens when I reach my monthly quota? A: The assistant tells you how many tasks you have left and, when you reach the limit, gives you a personal upgrade link. You can also stay on your plan and wait for the next cycle; nothing is deleted and your connection remains. Q: Can I change plans mid-cycle? A: Yes. Upgrades apply immediately and your new quota starts right away. Downgrades apply at the end of the current cycle. Q: Is there a refund? A: Yes: 7 days after your first charge, as long as you used less than half of the plan's monthly tasks. Details in our refund policy. Q: Do I need my own Google Ads developer token? A: No. PaidHelm uses its own approved access to the Google Ads API. You only need a Google account with access to the Google Ads accounts you want to manage. Q: Do you offer agency or team plans? A: Max covers most agencies managing multiple client accounts, since one subscription can authorize any number of Google Ads accounts under the same Google login. For custom volumes, invoicing or multiple seats see Enterprise. --- # Security & privacy URL: https://paidhelm.com/security/ How PaidHelm protects your Google Ads access: Google OAuth, encrypted tokens, least-privilege scopes, no password storage, campaigns created paused, data kept in your own account. Giving a tool access to your advertising account is a serious decision. This page explains exactly what PaidHelm can and cannot do, what we store, and how to turn it off. Authorization Google OAuth 2.0. You never type your Google password into PaidHelm. Google's consent screen asks you to grant the Google Ads scope and returns a token to us. Single scope. We request only https://www.googleapis.com/auth/adwords, plus your email address to identify your account. No Gmail, Drive or Analytics access. Encrypted at rest. Refresh tokens are encrypted with a key held only in the Worker's secret store before being written to the database. Revocable. You can revoke at any moment from Google or from the PaidHelm portal. Revocation takes effect immediately. What the assistant can do Exactly what the Google Ads API allows the authorizing user to do, filtered through PaidHelm's tool definitions. In practice: Read any report (GAQL), list accounts, run the keyword planner. Create campaigns, ad groups, ads, keywords, negatives, extensions and targeting. All new campaigns are created paused. Pause, enable, rename, change budgets and bid strategies for objects identified by ID. Remove objects only when explicitly asked and with the exact identifier. PaidHelm cannot change billing, invite users, link or unlink manager accounts, or touch any Google product other than Google Ads. Data we keep DataWhyRetention Email address of the Google accountIdentify your PaidHelm account and planUntil you delete your account Encrypted Google OAuth refresh tokenCall the Google Ads API on your behalfUntil you disconnect or revoke Plan, billing status, task counterApply quotas and billingDuration of the account Tool-call logs (tool name, timestamp, account ID, success/failure)Support and abuse prevention90 days We do not store report results, campaign contents or the text of your conversations. Your conversation lives with your AI provider under their terms. Infrastructure Runs on Cloudflare Workers with D1 (SQLite) and KV, in Cloudflare's SOC 2 Type II audited environment. All connections use TLS 1.2+; the MCP endpoint is only reachable over HTTPS. Secrets (encryption key, API keys, admin credentials) live in Cloudflare's encrypted secret store and are never committed to source code. Payments are handled by Paddle; PaidHelm never sees card numbers. Compliance PaidHelm complies with the Google Ads API Terms and Google's API Services User Data Policy, including Limited Use requirements. We honor GDPR and CCPA data-subject rights (access, correction, deletion, portability). Write to support@paidhelm.com. A Data Processing Addendum is available for customers who need one. Reporting a vulnerability Email support@paidhelm.com with "Security report" in the subject. We acknowledge within two business days and will credit researchers who report responsibly. Q: Can I revoke PaidHelm's access? A: Yes, at any time. Disconnect from the PaidHelm portal, or open myaccount.google.com → Security → Third-party apps and remove PaidHelm. Access stops immediately. Q: Does PaidHelm store my campaign data? A: No. Reports are fetched live from the Google Ads API and returned to your assistant. PaidHelm keeps your account email, your encrypted OAuth token, your plan and a task counter. It does not keep copies of your campaigns or reports. Q: Who can see my data at PaidHelm? A: Only the operations team at A2 Digital Marketing with a need to support you, under confidentiality obligations. Tokens are encrypted and are never displayed in the admin tools. Q: Where is PaidHelm hosted? A: On Cloudflare's global edge network (Workers, D1 and KV). Traffic is TLS-encrypted end to end, and requests to the Google Ads API go directly from Cloudflare to Google.