Google Ad Scraper

Haalt live Google Ads van een concurrent op per domein via een Apify actor; vereist een Apify token

Door gooseworks-ai · gooseworks-ai/goose-skills

Werkt met setup ★ 6.4/10

Google Ad Scraper — Haalt live Google Ads van een concurrent op per domein via een Apify actor; vereist een Apify token

Wat het doet

Wrapt een Python CLI die de Apify `burbn/google-ads-search` actor aanroept om de advertenties op te halen die een gegeven domein momenteel op Google draait, en retourneert adverteerder-ID, creatieve ID, advertentieformaat, advertentietekst, bestemmings-URL en startdatum als JSON of een tabel. Activeert wanneer u vraagt om de Google Ads van een concurrent te scrapen of op te zoeken, hun advertentiecreatives te onderzoeken, of de boodschap achter hun zoek- en display-advertenties te analyseren. Vereist een APIFY_API_TOKEN (of een Gooseworks API-sleutel) en een betaalde Apify-run per domein.

Testrapport

De skill gevonden op skills/ads/capabilities/google-ad-scraper/ (SKILL.md, scripts/search_google_ads.py, skill.meta.json allemaal HTTP 200) en het script lokaal uitgevoerd: --help, missing-args en missing-token paden gedragen zich allemaal zoals gedocumenteerd, en format_summary renderde correct op een mock dataset gevormd volgens het gedocumenteerde schema. Ik kon geen echte scrape uitvoeren (vereist APIFY_API_TOKEN plus een betaalde Apify actor run), dus outputMeasured is false; ik heb wel geverifieerd dat het baseline-alternatief echt geblokkeerd is — curl van adstransparency.google.com retourneert een 2.5 MB JS-bundel waar de enige "hubspot" hits de herhaalde query-parameter zijn, nul creatives. Twee concrete defecten gevonden door uitvoering, niet alleen lezen: het stubben van een succesvolle adverteerder-lookup toont dat de --company vlag nooit kan werken, omdat resolve_advertiser_id {advertiser_id, advertiser_name, url} retourneert terwijl main() result["domain"] vereist en afsluit met 1 ("Could not resolve company name to domain"); en de aanbevolen --output summary tabel laat variantContent vallen, het advertentietekstveld waarvan de eigen "messaging analysis" use case van de skill afhankelijk is. Geen gevaarlijke patronen (geen curl|sh, geen base64, geen geheime exfiltratie, geen injectietekst), hoewel het API-token wordt doorgegeven als een ?token= URL-queryparameter en naar api.gooseworks.ai wordt gestuurd wanneer GOOSEWORKS_API_KEY is ingesteld.

Getest op: 2026-07-21 · Claude Code 2.x (agent harness)

Installatie

git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git /tmp/google-ad-scraper-src
mkdir -p ~/.claude/skills
cp -R /tmp/google-ad-scraper-src/skills/ads/capabilities/google-ad-scraper ~/.claude/skills/google-ad-scraper
# pip3 install requests   # undeclared dependency, no requirements.txt in the skill
# export APIFY_API_TOKEN=apify_api_...   # or GOOSEWORKS_API_KEY=... to route via api.gooseworks.ai
# Run: python3 ~/.claude/skills/google-ad-scraper/scripts/search_google_ads.py \
#        --domain hubspot.com --max-ads 30 --output summary
# Note: SKILL.md's examples use skills/google-ad-scraper/scripts/... which matches neither the repo layout nor the install dir.

Commando's en voorbeeldprompts

  • /google-ad-scraperHaalt live Google Ads van een concurrent op per domein via een Apify actor; vereist een Apify token

Skills reageren op gewone verzoeken — geen commando's om te onthouden. Na installatie activeren prompts zoals deze de skill (in het Engels):

  • Scrape our competitor's Google Ads by domain
  • Show me what ad formats this competitor is running
  • Research competitor messaging from their Google ads