Repository navigation
Releases
Releases · block-town/google-ads-transparency-mcp
v0.3.0
Added
compare_advertisers(domains): active ad count per domain in one call, with
a per-rowstatus(ok/absent/blocked/error) so a rate-limit is
never mistaken for a zero. Stops issuing requests once every egress route is
blocked.parent_entityflag on comparison rows. Domain search returns whoever's ads
mention the domain, which can be a parent company, a reseller or a stranger;
the flag marks advertisers whose name shares no token with the domain.advertiser_summary(advertiser, sample): format mix and share, last-shown
range, de-duplicated headlines, descriptions and CTA labels, and destination
hosts for one advertiser. Accepts an id, a domain or a name.analysismodule with the pure, offline aggregation helpers behind the
tools (summarize_ads,is_parent_entity,normalize_domain), exported
from the package for library use.GoogleAdsTransparency.resolve_advertiser()for id / domain / name lookup.- Offline test suite (
pytest) and a CI workflow running lint and tests on
Python 3.10 and 3.13.
Changed
AdsTransparencyErrorandAdsTransparencyBlockedare exported from the
package root.
Fixed
- Text ads whose preview is a
content.jsrenderer (rather than an overlay
URL) now decode headline, description and display URL. Previously they
came back withpreview_urlonly.
v0.2.0
Fixed
- Pinned
mcp<2. The 2.x SDK renamedFastMCP, which broke every fresh
install of 0.1.0 withModuleNotFoundError.
Added
fetch_ad_creativeanddownload_ad_creatives: write the actual creative
files to disk. Images at original resolution; videos sampled to JPEG frames
(needsyt-dlpandffmpeg). Bulk mode writes amanifest.json.AdsTransparencyBlockedis raised when Google rate-limits or CAPTCHA-gates
the source IP, instead of silently returning an empty list.- Request throttling with retry and backoff.
- Proxy route chain (residential → direct → tunnel), auto-detected, scoped to
this package only, credentials scrubbed from error text. - Exact text-ad decoding from the preview URL's protobuf overlay.
- Image and video creatives resolved through Google's renderer to the real
asset URL or YouTube id, with on-creative headline and button label. - Pagination past 100 creatives.
scripts/socks_over_ssh.py: a loopback-only SOCKS5 proxy relayed over SSH
exec channels, for hosts that refusessh -D.