MCP Server for AI Agents: Google Ads Transparency & Ad Spy
Pricing
Pay per usage
MCP Server for AI Agents: Google Ads Transparency & Ad Spy
Standby MCP Server (/mcp) and JSON API for AI agents to search live Google Ads Transparency Center creatives, ad copy, headlines, landing URLs, video IDs, and verified advertisers by domain, brand, or advertiser ID without proxies.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Mutualistic Labs
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Standby MCP Server for AI Agents: Google Ads Transparency & Ad Spy
An always-on Model Context Protocol (MCP) server and batch Actor that searches the public Google Ads Transparency Center for AI agents (Claude Desktop, Cursor, Windsurf, OpenAI Agents, LangChain) and competitor-research workflows. Look up what a company is advertising right now: creatives, formats, first and last shown dates, days shown, headlines, descriptions, calls to action, landing URLs and YouTube video IDs.
No proxies, no browser, no API keys, no logins, no personal data: only the public Transparency Center RPC endpoints and the public ad preview payloads are called over plain HTTP.
What you can search
- By domain (
domains): full URLs are accepted and normalized, for examplehttps://www.stripe.com/pricingbecomesstripe.com. - By advertiser ID (
advertiserIds):ARfollowed by digits. - By brand query (
queries): resolved to the best matching (preferably verified) advertiser or domain first. - If all three are empty the example domains
stripe.com,shopify.com,openai.comare used.
Output fields
uid, advertiser_id, advertiser_name, creative_id, format (TEXT, IMAGE, VIDEO, UNKNOWN), first_shown_at,
last_shown_at, total_days_shown, target_domain, transparency_url, preview_image_url, preview_width, preview_height,
preview_js_url, destination_url, visible_url, headline, long_headline, description, call_to_action,
youtube_video_id, video_duration, thumbnail_url, channel_name, region, search_target, scraped_at.
Ad copy fields are filled when includeAdCopy is true and the preview payload can be read; otherwise they are null.
Input
| Field | Type | Default |
|---|---|---|
domains | string[] | example domains (when no other target is given) |
advertiserIds | string[] | none |
queries | string[] | none |
adFormat | ALL, TEXT, IMAGE, VIDEO | ALL |
region | ALL or a 2-letter code (35 countries) | ALL |
startDate, endDate | YYYY-MM-DD | none |
minDaysShown | integer >= 0 | none |
onlyWithVideo | boolean | false |
includeAdCopy | boolean | true |
maxItems | integer 0 to 10000 | 100 (20 in MCP tools) |
maxTotalChargeUsd | number or null | no cap |
Invalid input is rejected with INVALID_INPUT_ZERO_CHARGE before any network call or charge.
MCP usage
Standby URL: https://<user>--google-ads-transparency-mcp.apify.actor/mcp (authenticate with your Apify API token).
{"mcpServers": {"google-ads-transparency": {"url": "https://<user>--google-ads-transparency-mcp.apify.actor/mcp","headers": { "Authorization": "Bearer <APIFY_API_TOKEN>" }}}}
Tools:
search_ads: same arguments as the batch input (camelCase,maxItemsdefaults to 20). Returnscreatives,count,charged,warnings.search_advertisers: free;query(plus optionalmaxAdvertisers,maxDomains) returns advertisers (advertiser_id,advertiser_name,country_code,min_ads_count,max_ads_count,is_verified) and matching domains.
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_ads","arguments":{"domains":["stripe.com"],"adFormat":"VIDEO","region":"US","maxItems":20}}}
GET /health returns {"status":"ok"}.
Pricing
Pay per event: $0.002 per ad creative returned (ad-creative-returned); the actor-start event is free and search_advertisers
is free. maxItems and maxTotalChargeUsd are hard caps enforced in code, and creatives are charged before they are delivered, so a
run never charges more than you configure. Invalid input and empty results are never charged.
Notes
- Results reflect what the Transparency Center shows at request time and can change between runs.
- A failing target or preview payload is reported in
warningsand never fails the whole run.