Google Ads Scraper
Scrape competitor Google Ads creatives and campaign metadata for a supplied domain or company name using the Apify `burbn/google-ads-search` actor. The runbook produces a traceable research packet with raw ad data, a concise summary, and validation metadata. Use it for competitiv
7 steps · start to finish.
- 1Step 1
Environment Setup
▶mkdir -p /app/results /app/results/work python3 -m pip install requests if [ -z "$APIFY_API_TOKEN" ]; then echo "ERROR: APIFY_API_TOKEN is not set" exit 1 fiValidate that
query_modeis eitherdomainorcompany. Requiredomainwhenquery_mode=domain, requirecompanywhenquery_mode=company, and write any setup failure to/app/results/validation_report.jsonbefore exiting. - 2Step 2
Resolve Search Target
▶Normalize the search parameters into `/app/results/query_metadata.json`. For domain searches, lowercase and trim the supplied domain. For company searches, resolve the company to the best available advertiser domain before invoking the scraper, and record both the original compan
- 3Step 3
Run Google Ads Scraper
▶Invoke the Apify `burbn/google-ads-search` actor with the resolved domain and requested limit. Persist the raw response exactly as structured JSON in `/app/results/google_ads_results.json`.
- 4Step 4
Analyze Results
▶Read `/app/results/google_ads_results.json` and produce `/app/results/google_ads_summary.md` with the advertiser searched, number of ads returned, dominant formats, recurring calls to action, visible landing page patterns, and notable creative messages. Keep claims tied to fields
- 5Step 5
Validate Outputs
▶Check that all mandatory files exist and that `google_ads_results.json`, `query_metadata.json`, and `validation_report.json` parse as JSON. Mark the validation as `PASS` when all required files are non-empty and JSON files parse, `PARTIAL` when the scrape completed but returned z
- 6Step 6
Iterate on Errors (max 3 rounds)
▶If validation returns `FAIL` or `PARTIAL`, inspect the failing stage, apply the smallest targeted fix, and re-run the affected step. Repeat for max 3 rounds, then write the final status to `/app/results/validation_report.json` and stop if the status is still `FAIL`.
- 7Step 7
Write Executive Summary
▶Write `/app/results/summary.md` with the run date, resolved domain or company, number of ads returned, output file list, validation status, and any manual follow-up. Mention if the actor returned no ads or if attribution to a domain was ambiguous.