Skip to main content
The Google Ads replica implements API v26 over both REST and gRPC, on the same data. It covers GAQL search and mutations for search campaigns with manual CPC. Its key is google-ads. It was tested with the official Python client, google-ads 34.0.0, over gRPC.

Connect

Send login-customer-id: 1000000000, the manager account, to reach the client account. No developer token is needed.
These are the snippets ancha connect google-ads --lang ts and --lang py print.

Endpoints

Each REST route has the matching gRPC method, such as GoogleAdsService.Search and CampaignService.MutateCampaigns. googleAds:mutate exists only to report that cross-resource mutations and temporary IDs are not implemented. Unknown REST routes return Google’s error shape with x-ancha-gap: 1; unknown gRPC methods return UNIMPLEMENTED.

Behavior

  • GAQL. SELECT ... FROM one of customer, customer_client, campaign_budget, campaign, ad_group, ad_group_ad, ad_group_criterion. WHERE predicates joined with AND (=, !=, <, >, <=, >=, IN, BETWEEN), segments.date DURING TODAY, YESTERDAY, LAST_7_DAYS, LAST_14_DAYS or LAST_30_DAYS, ORDER BY and LIMIT. No OR, LIKE, functions or REGEXP.
  • Search pages hold up to 10,000 rows; pageSize is rejected, as in v26.
  • Mutations cover budgets, SEARCH campaigns with manual CPC, ad groups, responsive search ads and keywords (EXACT, PHRASE, BROAD). They are atomic by default and support partialFailure, validateOnly and responseContentType.
  • Review. New ads stay REVIEW_IN_PROGRESS. Nothing serves, bills or delivers.
  • Metrics (impressions, clicks, cost_micros, conversions) come only from the historical starter rows.

Starter data

The google-ads-starter dataset belongs to Acme. Reports cover 2026-10-24 and 2026-10-25 for campaign 3001.

Checks

Google Ads has no state checks. Use trace checks, for example { called: "POST /v26/customers/1000000001/campaigns:mutate" }. Trace paths for gRPC calls use the full RPC name.

Limits

  • Worlds with Google Ads cannot run in playgrounds, and ancha run rejects them with container execution (CONFIG_INVALID). Use them with ancha run as a local process or in a sandbox.
  • Search campaigns with manual CPC only: no Performance Max, display, video, smart bidding, audiences, assets, conversion uploads or recommendations.
  • No auction, serving or spend simulation.