Google Ad Scraper
Extrae anuncios de Google en vivo de un competidor por dominio a través de un actor de Apify; necesita un token de Apify
Funciona con configuración
Qué hace
Envuelve una CLI Python que llama al actor de Apify `burbn/google-ads-search` para obtener los anuncios que un dominio dado está ejecutando actualmente en Google, devolviendo el ID de anunciante, ID de creativo, formato de anuncio, texto del anuncio, URL de destino y fecha de inicio como JSON o una tabla. Se activa cuando se pide extraer o buscar los anuncios de Google de un competidor, investigar sus creatividades publicitarias o analizar el mensaje detrás de sus anuncios de búsqueda y display. Requiere un APIFY_API_TOKEN (o una clave API de Gooseworks) y una ejecución de Apify de pago por dominio.
Informe de la prueba
Se encontró la habilidad en skills/ads/capabilities/google-ad-scraper/ (SKILL.md, scripts/search_google_ads.py, skill.meta.json todos HTTP 200) y se ejecutó el script localmente: --help, missing-args y missing-token se comportan como se documenta, y format_summary se renderizó correctamente en un conjunto de datos simulado con la forma del esquema documentado. No pude ejecutar un scrape real (necesita APIFY_API_TOKEN más una ejecución de actor de Apify de pago), por lo que outputMeasured es false; verifiqué que la alternativa de línea base está genuinamente bloqueada — curl de adstransparency.google.com devuelve un paquete JS de 2.5 MB donde los únicos aciertos de "hubspot" son el parámetro de consulta repetido, cero creatividades. Se encontraron dos defectos concretos por ejecución, no solo por lectura: simular una búsqueda exitosa de anunciante muestra que la bandera --company nunca puede funcionar, porque resolve_advertiser_id devuelve {advertiser_id, advertiser_name, url} mientras que main() requiere result["domain"] y sale con 1 ("Could not resolve company name to domain"); y la tabla de resumen --output recomendada elimina variantContent, el campo de copia de anuncio del que depende el caso de uso de "messaging analysis" de la propia habilidad. No hay patrones peligrosos (no curl|sh, no base64, no exfiltración de secretos, no texto de inyección), aunque el token de la API se pasa como un parámetro de consulta URL ?token= y se envía a api.gooseworks.ai cuando se establece GOOSEWORKS_API_KEY.
Probado el: 2026-07-21 · Claude Code 2.x (agent harness)
Instalación
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.
Comandos y prompts de ejemplo
/google-ad-scraperExtrae anuncios de Google en vivo de un competidor por dominio a través de un actor de Apify; necesita un token de Apify
Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):
Scrape our competitor's Google Ads by domainShow me what ad formats this competitor is runningResearch competitor messaging from their Google ads