Scrape competitor ads from Google Ads by domain. Returns ad creatives, formats, and campaign details. Use for competitive ad research and messaging analysis.
70
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
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).
# 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:
{
"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 |
python3 skills/google-ad-scraper/scripts/search_google_ads.py \
--domain "competitor.com" --max-ads 100 --output summary# 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.8866b2a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.