Skip to main content
Glama
subimpact

subimpact-data-mcp

Official

google_ads_transparency

Scrapes Google Ads Transparency Center to find advertisers by name or ID and export their ads with formats, shown dates, preview links, and region filters.

Instructions

Google Ads Transparency Center Scraper (Advertisers & Ads)

Scrape Google Ads Transparency Center: find advertisers by name or ID and export their ads with format, first and last shown dates, preview and ad links, filtered by region. No browser. $0.80 per 1,000 ads, $0.50 per 1,000 advertisers.

Pricing (pay per event, billed to your Apify account): Ad: $0.0008; Advertiser: $0.0005; platform usage billed to your account.

Runs on Apify as subimpact/google-ads-transparency-scraper.

Input Schema

NameRequiredDescriptionDefault
regionNoTwo letter ISO country code (US, GB, DE, MY, SG, TH, ...) or anywhere. Region filtering happens on Google's side with the matching geo target id, so you get the ads shown in that country. anywhere skips the filter and returns ads from every region.anywhere
maxItemsNoGlobal cap on ad rows across every advertiser and every search term. Advertiser rows are not counted against it. The run stops cleanly when the cap is reached.
_maxItemsNoHow many dataset items to return to the model (1-1000, default 50). Truncates the response only; it does not change what the Actor collects or charges for.
concurrencyNoHow many advertisers are fetched at the same time, each on its own proxy session. 5 is a good default; higher values finish faster and are more likely to be rate limited.
searchTermsNoAdvertiser names or domains, for example nike, adidas.com, samsung. Each term is resolved to advertisers through Google's public suggestion endpoint, then their ads are downloaded. An empty input ({}) searches nike.
_maxChargeUsdNoPer-run spending cap in USD (default 0.5). Passed to Apify as the run option maxTotalChargeUsd, so the run stops when it reaches this charge.
advertiserIdsNoAdvertiser ids from the Ads Transparency Center, for example AR06641858037806006273. Skips the suggestion lookup and fetches these advertisers directly.
proxyConfigurationNoRequired. Direct requests from Apify's datacenter IPs get HTTP 429 from the Ads Transparency Center, while the Apify datacenter proxy returns 200. Keep the default, or supply your own proxyUrls.
maxAdsPerAdvertiserNoHard cap on ad rows per advertiser. Cost guard: 40 ads cost about $0.032 in ad rows. An empty API input ({}) defaults to 10; the form default is 40.
maxAdvertisersPerTermNoHow many matching advertisers to process for each search term, in the order Google returns them. advertiserIds are always processed in full.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the burden. It usefully discloses pay-per-event pricing, Apify billing, and that no browser is needed, which are important behavioral traits. It still omits some operational details such as rate limiting and proxy requirements, which appear only in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and output scope are front-loaded, making the description easy to scan. However, the pricing is stated twice (once as per-1,000 rates and again as per-event rates), which is redundant and slightly bloats the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description lists the key ad fields returned and explains region filtering and advertiser lookup. Combined with a fully documented input schema, this is nearly complete for a scraper, though it could more clearly distinguish advertiser rows from ad rows.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100%, so the schema documents all ten parameters thoroughly. The description only restates high-level concepts like searching by name or ID and filtering by region, adding little parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (scrape), a specific resource (Google Ads Transparency Center), and the exact scope (advertisers and ads). It also lists the returned ad fields, so an agent can tell what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage by saying you can find advertisers by name or ID and export their ads filtered by region. However, it does not explicitly state when to use this tool versus another sibling, nor does it give exclusions or prerequisites beyond that implied context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.