# Generate Google Ads keyword ideas

Discover Keyword Planner ideas from up to 20 seed keywords, a URL, keywords plus URL, or a whole site. Works on your own Google Ads account, connected through Get MCP Ads. Needs customer id.

Discover Keyword Planner ideas from up to 20 seed keywords, a URL, keywords plus URL, or a whole site. Returns historical volume, monthly trends, computed 3-month/YoY changes, competition, bids, close variants, optional concepts, and pagination. Read-only; no plan is saved. Agentik price: $0.005 per call.

- Tool ID: `google-ads/generate-keyword-ideas`
- Name in the catalog: Google Ads: Generate keyword ideas
- 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 the client account, not its MCC manager"
    },
    "seedKeywords": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      },
      "minItems": 1,
      "maxItems": 20,
      "description": "Seed keyword phrases from which Google generates keyword ideas."
    },
    "url": {
      "type": "string",
      "minLength": 1,
      "description": "Specific page URL to crawl; combine with seedKeywords if desired"
    },
    "site": {
      "type": "string",
      "minLength": 1,
      "description": "Whole-domain seed; exclusive with seedKeywords/url"
    },
    "geoTargetIds": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d+$"
      },
      "maxItems": 10,
      "default": [],
      "description": "Google Ads geo-target constant IDs for the intended locations."
    },
    "languageId": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Google Ads language constant ID for the keyword request."
    },
    "network": {
      "type": "string",
      "enum": [
        "GOOGLE_SEARCH",
        "GOOGLE_SEARCH_AND_PARTNERS"
      ],
      "default": "GOOGLE_SEARCH",
      "description": "Google Ads search network selector used for planning."
    },
    "includeAdultKeywords": {
      "type": "boolean",
      "default": false,
      "description": "Allow adult keyword ideas where supported by the provider and the selected market."
    },
    "includeAverageCpc": {
      "type": "boolean",
      "default": true,
      "description": "Request average cost-per-click metrics when available."
    },
    "includeDeviceBreakdown": {
      "type": "boolean",
      "default": false,
      "description": "Include device-specific planning metrics when supported."
    },
    "includeKeywordConcepts": {
      "type": "boolean",
      "default": true,
      "description": "Include Google's keyword concept grouping metadata."
    },
    "historyMonths": {
      "type": "integer",
      "minimum": 3,
      "maximum": 48,
      "default": 13,
      "description": "13 months is enough to compute latest-month YoY while limiting response size"
    },
    "startYearMonth": {
      "type": "string",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      "description": "First year and month of the historical metrics period."
    },
    "endYearMonth": {
      "type": "string",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      "description": "Last year and month of the historical metrics period."
    },
    "pageSize": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10000,
      "default": 100,
      "description": "Google supports up to 10,000; keep pages small for interactive MCP use and use larger pages only for controlled exports"
    },
    "pageToken": {
      "type": "string",
      "description": "nextPageToken from a prior identical request"
    },
    "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"
  ]
}
```

## 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-ideas) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

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