Google Ads API - Keyword Planner Reference
Gold-standard source for keyword search volume. DataForSEO gets its volume data from Google Ads -- this cuts out the middleman.
Prerequisites (More Complex Than Other Google APIs)
- Google Ads Manager Account -- create at ads.google.com (free to create)
- Developer Token -- apply at Google Ads API Center (requires Basic access approval)
- OAuth 2.0 credentials -- reuse existing OAuth client from seo-google config
- For exact volumes: Run a minimal campaign (~$5-10/day). Without spend, volumes are bucketed ranges ("1K-10K")
Key Methods
GenerateKeywordIdeas
Generate keyword suggestions from seed terms.
Returns per keyword:
text: Keyword stringavg_monthly_searches: Average monthly volume (exact if spending, bucketed if not)competition: LOW / MEDIUM / HIGH (for ads, not organic)competition_index: 0-100 competition scorelow_top_of_page_bid_micros: ~20th percentile CPC in microshigh_top_of_page_bid_micros: ~80th percentile CPC in microsmonthly_search_volumes[]: Per-month volume for last 12 months
GenerateKeywordHistoricalMetrics
Get volume data for specific keywords.
Same return fields as above but for exact keyword list instead of suggestions.
GenerateKeywordForecastMetrics
Predict clicks, impressions, and cost for keywords.
Configuration
Add to ~/.config/claude-seo/google-api.json:
{
"ads_developer_token": "YOUR_DEV_TOKEN",
"ads_customer_id": "123-456-7890",
"ads_login_customer_id": "123-456-7890"
}Rate Limits
- Keyword Planning requests are more strictly rate-limited than other Ads API services
- Exact QPM/QPS not publicly documented
- Google recommends caching results
Python Library
pip install google-adsUses google-ads library (separate from google-api-python-client).
Important Notes
- Volume accuracy: Without active ad spend, Google returns bucketed ranges ("1K-10K", "10K-100K") instead of exact numbers like "14,800"
- Competition score: Measures advertiser competition for ads, NOT organic ranking difficulty
- CPC bids: Reflect what advertisers pay, useful for estimating keyword commercial value
- Location targeting: Use location IDs (2840 = United States, 2826 = United Kingdom)
- Language targeting: Use language IDs (1000 = English, 1003 = Spanish)