# Generate Google Ads keyword forecast metrics

Forecast impressions, clicks, CTR, CPC, cost, conversions, and CPA for a temporary keyword campaign. Works on your own Google Ads account, connected through Get MCP Ads. Needs customer id and keywords.

Forecast impressions, clicks, CTR, CPC, cost, conversions, and CPA for a temporary keyword campaign. Supports targeting, negatives, match type, three bidding strategies, explicit future dates, and an optional independent per-keyword breakdown. This read-only planless RPC does not create a campaign or saved plan. Agentik price: $0.005 per call.

- Tool ID: `google-ads/generate-keyword-forecast-metrics`
- Name in the catalog: Google Ads: Generate keyword forecast metrics
- Provider: [Google Ads](/providers/google-ads.md)
- Capability: [Google Keyword Planner](/tools/google-ads/keyword-planner.md)
- Price: $0.005 per call
- Workspace access is automatic. Connect a platform using the link and notice returned to your AI assistant; an owner or admin completes platform consent and returns to the conversation; see the [guide](/docs/getmcpads.md).
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_call",
  "amountUsd": 0.005
}
```

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "customerId": {
      "type": "string",
      "pattern": "^\\d[\\d-]*\\d$|^\\d$",
      "description": "Google Ads serving customer ID; use a relevant client account for better estimates"
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      },
      "minItems": 1,
      "maxItems": 1000,
      "description": "Keyword phrases to analyze; use the language and market of the intended audience."
    },
    "matchType": {
      "type": "string",
      "enum": [
        "EXACT",
        "PHRASE",
        "BROAD"
      ],
      "default": "BROAD",
      "description": "Google Ads keyword match type for the forecast."
    },
    "negativeKeywords": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      },
      "maxItems": 1000,
      "default": [],
      "description": "Keyword phrases excluded from the keyword forecast."
    },
    "negativeMatchType": {
      "type": "string",
      "enum": [
        "EXACT",
        "PHRASE",
        "BROAD"
      ],
      "default": "BROAD",
      "description": "Match type applied to the negative keywords."
    },
    "geoTargetIds": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d+$"
      },
      "maxItems": 20,
      "default": [],
      "description": "Google Ads geo-target constant IDs for the intended locations."
    },
    "languageIds": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d+$"
      },
      "maxItems": 10,
      "default": [],
      "description": "Google Ads language constant IDs for the intended audience."
    },
    "network": {
      "type": "string",
      "enum": [
        "GOOGLE_SEARCH",
        "GOOGLE_SEARCH_AND_PARTNERS"
      ],
      "default": "GOOGLE_SEARCH",
      "description": "Google Ads search network selector used for planning."
    },
    "biddingStrategy": {
      "type": "string",
      "enum": [
        "MANUAL_CPC",
        "MAXIMIZE_CLICKS",
        "MAXIMIZE_CONVERSIONS"
      ],
      "default": "MANUAL_CPC",
      "description": "Supported bidding strategy for this temporary forecast. The request does not create a live campaign."
    },
    "maxCpcBid": {
      "type": "number",
      "minimum": 0.000001,
      "maximum": 1000000000,
      "description": "Bid in standard account-currency units; required for MANUAL_CPC"
    },
    "dailyBudget": {
      "type": "number",
      "minimum": 0.000001,
      "maximum": 1000000000,
      "description": "Daily amount in standard currency units; required for maximize strategies and optional for MANUAL_CPC"
    },
    "maxCpcBidCeiling": {
      "type": "number",
      "minimum": 0.000001,
      "maximum": 1000000000,
      "description": "Optional standard-currency CPC ceiling for MAXIMIZE_CLICKS"
    },
    "conversionRate": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Expected conversion rate as a decimal, e.g. 0.02 for 2%"
    },
    "currencyCode": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "description": "Optional ISO 4217 conversion currency; account currency is used by default"
    },
    "startDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Optional inclusive future forecast start YYYY-MM-DD; supply with endDate"
    },
    "endDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Optional inclusive forecast end YYYY-MM-DD, no more than one year ahead; supply with startDate"
    },
    "includeKeywordBreakdown": {
      "type": "boolean",
      "default": false,
      "description": "Make independent one-keyword forecast calls in addition to the combined campaign forecast"
    },
    "keywordBreakdownLimit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 10,
      "description": "Safety cap for additional rate-limited Keyword Planner requests"
    },
    "workspace_id": {
      "type": "string",
      "description": "Authorized workspace ID from list_accounts/list_workspaces. Use the user's chosen workspace; never guess between clients. Optional when a unique account identifies it."
    }
  },
  "required": [
    "customerId",
    "keywords"
  ]
}
```

## Published example

No example input is published for this tool. Ask for the inputs required by its schema.

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[REST inspection](https://api.agentik.cc/v1/tools/google-ads/generate-keyword-forecast-metrics) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/google-ads/generate-keyword-forecast-metrics) · [Agent index](/llms.txt)
