Google Ads: forecast keyword clicks and cost
get_keyword_forecastForecasts clicks, impressions and cost for keywords at a bid or a daily budget.
The keywords can be any words, not only the account's own, and the
forecast simulates them in Google's whole search auction.
Google's estimate for the 30 days from two days ahead, or the dates
given, simulated for this account: not a promise, and a new account or
one that has never spent gets rougher figures or none. Nothing is
created, saved or spent. A figure Google does not return is null and
listed in unavailable_metrics with the reason (Google forecasts
conversions for MAXIMIZE_CONVERSIONS).
MANUAL_CPC needs max_cpc_bid_micros (daily_budget_micros optional);
MAXIMIZE_CLICKS (TARGET_SPEND is the same) needs daily_budget_micros,
with max_cpc_bid_ceiling_micros as an optional cap; MAXIMIZE_CONVERSIONS
needs daily_budget_micros. Amounts are micros of the account's currency
(1,000,000 is 1 unit); an amount under 10,000 is refused.
Each call is one request to Google. Google accepts about one keyword
planning request per second per account, so a request within a second
of the last one for the same account waits for the rest of that second.
Args:
customer_id: The Google Ads customer ID (numbers only, no hyphens).
keywords: [{"text": ..., "match_type": "EXACT", "PHRASE" (default)
or "BROAD"}], at most 200. Or ad_groups.
bidding_strategy: MANUAL_CPC (default), MAXIMIZE_CLICKS or
MAXIMIZE_CONVERSIONS.
max_cpc_bid_micros: The most to pay for a click (MANUAL_CPC).
daily_budget_micros: The daily budget.
max_cpc_bid_ceiling_micros: A cap per click (MAXIMIZE_CLICKS).
network: GOOGLE_SEARCH (default) or GOOGLE_SEARCH_AND_PARTNERS.
geo_target_ids: Location ids (geo target constants), at most 10.
language_ids: Language ids, at most 10 (a list here; the other two
keyword tools take one language_id).
negative_keywords: Words the ads stay away from (broad match), at
most 200.
start_date: First day, YYYY-MM-DD, after today.
end_date: Last day, YYYY-MM-DD, at most 364 days from today.
currency_code: An ISO code to state amounts in. Default: the
account's currency.
ad_groups: Instead of keywords, keywords in separate ad groups:
[{"keywords": [...], "max_cpc_bid_micros": ...,
"negative_keywords": [...]}], at most 20 (bids on MANUAL_CPC).
Returns:
forecast (clicks, impressions, click_through_rate, average_cpc,
cost, conversions, conversion_rate, average_cpa; null when not
returned), unavailable_metrics, forecast_period, currency_code,
bidding_strategy, network, keyword_count, ad_group_count, caveat and
notes.Tools revision: d80f65c0.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"customer_id": "<customer_id>"
},
"name": "get_keyword_forecast"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | GOOGLE_SEARCH | |
| end_date | No | ||
| keywords | No | ||
| ad_groups | No | ||
| start_date | No | ||
| customer_id | Yes | ||
| language_ids | No | ||
| currency_code | No | ||
| geo_target_ids | No | ||
| bidding_strategy | No | MANUAL_CPC | |
| negative_keywords | No | ||
| max_cpc_bid_micros | No | ||
| daily_budget_micros | No | ||
| max_cpc_bid_ceiling_micros | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |