{"id":"google-ad-scraper","name":"google-ad-scraper","summary":"Google広告からドメイン別に競合広告をスクレイピングできます。広告クリエイティブ、フォーマット、キャンペーンの詳細を返却します。","body":"# Google Ads Scraper\n\nScrape ads from Google Ads using the Apify `burbn/google-ads-search` actor. Search by domain to get ad creatives, formats, and campaign details.\n\n## Quick Start\n\nRequires `APIFY_API_TOKEN` env var (or `--token` flag).\n\n```bash\n# Search by domain (recommended)\npython3 skills/google-ad-scraper/scripts/search_google_ads.py \\\n  --domain \"hubspot.com\"\n\n# Search by company name (resolves to domain via transparency center)\npython3 skills/google-ad-scraper/scripts/search_google_ads.py \\\n  --company \"Nike\"\n\n# Limit results\npython3 skills/google-ad-scraper/scripts/search_google_ads.py \\\n  --domain \"hubspot.com\" --max-ads 30\n\n# Human-readable summary\npython3 skills/google-ad-scraper/scripts/search_google_ads.py \\\n  --domain \"stripe.com\" --output summary\n```\n\n## How It Works\n\n1. **Domain Input**: Pass the target company's domain directly via `--domain`\n2. **Company Name Resolution** (optional): If only `--company` is provided, the script searches Google Ads Transparency Center using Apify's web-scraper (Puppeteer) to resolve the company name to advertiser info\n3. **Ad Scraping**: Calls the Apify `burbn/google-ads-search` actor with `{\"domain\": \"...\", \"maxItems\": N}`\n4. **Output**: Returns ads as JSON or human-readable summary\n\n## CLI Reference\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--domain` | none | Company domain (e.g. hubspot.com) — recommended |\n| `--company` | none | Company name (resolved to domain via transparency center) |\n| `--max-ads` | 50 | Maximum number of ads to return |\n| `--output` | json | Output format: `json` or `summary` |\n| `--token` | env var | Apify token (prefer `APIFY_API_TOKEN` env var) |\n| `--timeout` | 300 | Max seconds to wait for Apify run |\n\nAt least one of `--company` or `--domain` is required.\n\n## Output Fields\n\nEach ad in the output contains:\n\n```json\n{\n  \"advertiserId\": \"AR13129532367502835713\",\n  \"advertiserName\": \"Nike, Inc.\",\n  \"creativeId\": \"CR12345678901234567890\",\n  \"originalUrl\": \"https://www.nike.com/\",\n  \"imageUrl\": \"https://...\",\n  \"variantFormat\": \"TEXT\",\n  \"variantContent\": \"Shop the latest Nike shoes...\",\n  \"variants\": [...],\n  \"variantCount\": 3,\n  \"startDate\": \"2026-01-15\"\n}\n```\n\n**Output fields:**\n\n| Field | Description |\n|-------|-------------|\n| `advertiserId` | Google Ads advertiser ID |\n| `advertiserName` | Company/advertiser display name |\n| `creativeId` | Unique ID for the ad creative |\n| `originalUrl` | Destination URL the ad links to |\n| `imageUrl` | URL of the ad image (if applicable) |\n| `variantFormat` | Ad format (TEXT, IMAGE, VIDEO, etc.) |\n| `variantContent` | Ad copy/text content |\n| `variants` | Array of ad variants |\n| `variantCount` | Number of variants for this creative |\n| `startDate` | Date the ad first appeared |\n\n## Cost\n\n- Ad scraping: Varies by actor pricing, typically a few cents per domain\n- Company name resolution (optional): ~$0.05 (one web-scraper page)\n\n## Common Workflows\n\n### 1. Competitor Ad Research\n\n```bash\npython3 skills/google-ad-scraper/scripts/search_google_ads.py \\\n  --domain \"competitor.com\" --max-ads 100 --output summary\n```\n\n### 2. Compare Multiple Competitors\n\n```bash\n# Run for each competitor domain\nfor domain in \"competitor1.com\" \"competitor2.com\" \"competitor3.com\"; do\n  python3 skills/google-ad-scraper/scripts/search_google_ads.py \\\n    --domain \"$domain\" --max-ads 50\ndone\n```\n\n## Limitations\n\n- **Company name resolution** uses Puppeteer-based web scraping of Google's SPA. It may occasionally fail — use `--domain` for best results.\n- **Ad coverage**: Google only shows ads from verified advertisers. Some smaller advertisers may not appear.\n- **Historical data**: Primarily shows recently active ads.","author":"@gooseworks-ai","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/capabilities/google-ad-scraper","license":"MIT","category":"document","lang":"en","tokens":977,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"scripts/search_google_ads.py","size":11415,"sha256":"71d5d8443a613c57e4b2238c95019d0e368c380d6e15020255f5581b0b7adc06"},{"path":"skill.meta.json","size":252,"sha256":"f2f5a36ecbf720318d4da72e1318b399d280b1eb10cf879874e62ae41de4950d"}],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[{"code":"net.endpoints","kind":"exfiltration","excerpt":"adstransparency.google.com, api.apify.com, api.gooseworks.ai, www.nike.com","message":"bundled scripts reach 4 external host(s)","severity":"warn"}],"scannedAt":"2026-08-22","hasScripts":true,"networkEndpoints":["adstransparency.google.com","api.apify.com","api.gooseworks.ai","www.nike.com"]}}