Google Ad Scraper

Ruft Live-Google Ads eines Konkurrenten per Domain über einen Apify-Aktor ab; benötigt einen Apify-Token

von gooseworks-ai · gooseworks-ai/goose-skills

Funktioniert mit Setup ★ 6.4/10

Google Ad Scraper — Ruft Live-Google Ads eines Konkurrenten per Domain über einen Apify-Aktor ab; benötigt einen Apify-Token

Was es kann

Umschließt eine Python CLI, die den Apify `burbn/google-ads-search`-Aktor aufruft, um die Anzeigen abzurufen, die eine bestimmte Domain derzeit auf Google schaltet, und gibt Anzeigen-ID, Creative-ID, Anzeigenformat, Anzeigentext, Ziel-URL und Startdatum als JSON oder Tabelle zurück. Wird ausgelöst, wenn Sie die Google Ads eines Konkurrenten scrapen oder nachschlagen, deren Anzeigen-Creatives recherchieren oder die Botschaften hinter deren Such- und Display-Anzeigen analysieren möchten. Erfordert einen APIFY_API_TOKEN (oder einen Gooseworks API-Schlüssel) und einen kostenpflichtigen Apify-Lauf pro Domain.

Testbericht

Der Skill wurde unter skills/ads/capabilities/google-ad-scraper/ gefunden (SKILL.md, scripts/search_google_ads.py, skill.meta.json alle HTTP 200) und das Skript lokal ausgeführt: --help, missing-args und missing-token Pfade verhalten sich alle wie dokumentiert, und format_summary wurde korrekt auf einem Mock-Datensatz gerendert, der gemäß dem dokumentierten Schema geformt war. Ich konnte keinen echten Scraping-Vorgang ausführen (benötigt APIFY_API_TOKEN plus einen kostenpflichtigen Apify-Aktor-Lauf), daher ist outputMeasured false; ich habe jedoch überprüft, dass die Baseline-Alternative tatsächlich blockiert ist — curl von adstransparency.google.com gibt ein 2,5 MB JS-Bundle zurück, bei dem die einzigen „hubspot“-Treffer der wiederholte Abfrageparameter sind, null Creatives. Zwei konkrete Defekte, die durch Ausführung, nicht nur durch Lesen, gefunden wurden: Das Stubbing einer erfolgreichen Werbetreibenden-Suche zeigt, dass das --company-Flag niemals funktionieren kann, da resolve_advertiser_id {advertiser_id, advertiser_name, url} zurückgibt, während main() result["domain"] erfordert und mit 1 beendet („Could not resolve company name to domain“); und die empfohlene --output-Zusammenfassungstabelle lässt variantContent fallen, das Feld für den Anzeigentext, von dem der eigene Anwendungsfall „messaging analysis“ des Skills abhängt. Keine gefährlichen Muster (kein curl|sh, kein base64, keine geheime Exfiltration, kein Injection-Text), obwohl das API-Token als ?token=-URL-Abfrageparameter übergeben und an api.gooseworks.ai gesendet wird, wenn GOOSEWORKS_API_KEY gesetzt ist.

Getestet am: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

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.

Befehle & Beispiel-Prompts

  • /google-ad-scraperRuft Live-Google Ads eines Konkurrenten per Domain über einen Apify-Aktor ab; benötigt einen Apify-Token

Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):

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