Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Scrape competitor ads from Google Ads by domain. Returns ad creatives, formats, and campaign details. Use for competitive ad research and messaging analysis.
.claude/skills/gooseworks-ai-google-ad-scraper/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -23% | 0% |
Scrape ads from Google Ads using the Apify burbn/google-ads-search actor. Search by domain to get ad creatives, formats, and campaign details.
Requires APIFY_API_TOKEN env var (or --token flag).
bash# Search by domain (recommended) python3 skills/google-ad-scraper/scripts/search_google_ads.py \ --domain "hubspot.com" # Search by company name (resolves to domain via transparency center) python3 skills/google-ad-scraper/scripts/search_google_ads.py \ --company "Nike" # Limit results python3 skills/google-ad-scraper/scripts/search_google_ads.py \ --domain "hubspot.com" --max-ads 30 # Human-readable summary python3 skills/google-ad-scraper/scripts/search_google_ads.py \ --domain "stripe.com" --output summary
--domain--company is provided, the script searches Google Ads Transparency Center using Apify's web-scraper (Puppeteer) to resolve the company name to advertiser infoburbn/google-ads-search actor with {"domain": "...", "maxItems": N}| Flag | Default | Description | |------|---------|-------------| | --domain | none | Company domain (e.g. hubspot.com) — recommended | | --company | none | Company name (resolved to domain via transparency center) | | --max-ads | 50 | Maximum number of ads to return | | --output | json | Output format: json or summary | | --token | env var | Apify token (prefer APIFY_API_TOKEN env var) | | --timeout | 300 | Max seconds to wait for Apify run |
At least one of --company or --domain is required.
Each ad in the output contains:
json{ "advertiserId": "AR13129532367502835713", "advertiserName": "Nike, Inc.", "creativeId": "CR12345678901234567890", "originalUrl": "https://www.nike.com/", "imageUrl": "https://...", "variantFormat": "TEXT", "variantContent": "Shop the latest Nike shoes...", "variants": [...], "variantCount": 3, "startDate": "2026-01-15" }
Output fields:
| Field | Description | |-------|-------------| | advertiserId | Google Ads advertiser ID | | advertiserName | Company/advertiser display name | | creativeId | Unique ID for the ad creative | | originalUrl | Destination URL the ad links to | | imageUrl | URL of the ad image (if applicable) | | variantFormat | Ad format (TEXT, IMAGE, VIDEO, etc.) | | variantContent | Ad copy/text content | | variants | Array of ad variants | | variantCount | Number of variants for this creative | | startDate | Date the ad first appeared |
bashpython3 skills/google-ad-scraper/scripts/search_google_ads.py \ --domain "competitor.com" --max-ads 100 --output summary
bash# Run for each competitor domain for domain in "competitor1.com" "competitor2.com" "competitor3.com"; do python3 skills/google-ad-scraper/scripts/search_google_ads.py \ --domain "$domain" --max-ads 50 done
--domain for best results.Other measured skills in the registry, with their headline benchmark lift.