Estimate a Google Ads campaign budget

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Asks Google to forecast the clicks and spend a set of keyword themes would produce, so you can show a projection before a campaign is created.

Send the themes you are considering, as they would go to Create campaign. Nothing is saved.

Google's planner picks the budget it forecasts at — it does not take one — so the figures come back for Google's own recommended daily budget, which estimated_monthly_cost reports.

Google forecasts for a landing page in specific places, so a request without landing_page or without at least one geo_targets entry is rejected with a 400 before it reaches Google.

The forecast comes from Google's own planner, so it needs a connected Google Ads account that has finished provisioning. An account that exists but has no Google customer ID yet is rejected with a 400; wait for provisioning to finish and retry.

estimated_monthly_cost is in micros and covers 30 days.

<Note>Each call asks Google's planner, so this endpoint has its own quota of 10 requests per minute per app — separate from the AI pool. A 429 means that quota is spent; retry in a minute.</Note>

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

post/api/apps/{app_id}/google-ads/campaigns/estimate

Path parameters

app_idstring required

ID of the app you are planning a Google Ads campaign for.

ID of the app you are planning a Google Ads campaign for.

Request body

landing_pagestring

Landing page the campaign would send clicks to. Required for a forecast.

geo_targetsstring[]

Locations to forecast for, as Google geo target constant IDs (geoTargetConstants/1023191, or just 1023191). At least one is required for a forecast.

keyword_themesstring[]

Themes the campaign would match on. An empty list forecasts nothing useful.

language_codestring

Two-letter language the ads would run in. Defaults to en.

business_namestring

Business name, which sharpens Google's forecast.

daily_budgetinteger

Daily budget you have in mind, in micros (1,000,000 micros = 1 unit of the account's currency). Google's planner chooses the budget it forecasts at, so this is only reported back when Google returns no recommendation of its own.

Example request

{
  "landing_page": "https://example.com/furniture",
  "geo_targets": [
    "1023191"
  ],
  "keyword_themes": [
    "handmade oak furniture",
    "custom dining tables"
  ],
  "language_code": "en",
  "business_name": "Oakline Furniture",
  "daily_budget": 30000000
}

Response

Google's forecast for the themes and locations you sent.

estimated_daily_clicks_lowinteger required

Low end of Google's forecast daily clicks.

estimated_daily_clicks_highinteger required

High end of Google's forecast daily clicks.

estimated_monthly_costinteger required

Forecast spend over 30 days, in micros (1,000,000 micros = 1 unit of the account's currency). This is the recommended daily budget times 30, so it is a 30-day figure rather than a calendar month, and it can differ from the daily_budget you sent.

Example response

{
  "estimated_daily_clicks_low": 12,
  "estimated_daily_clicks_high": 31,
  "estimated_monthly_cost": 900000000
}

Changes

Changed in 1 of the 14 revisions of this API.5

    • ○

      added the new optional request property

      new-optional-request-property

    • ○

      added the new optional request property

      new-optional-request-property

    • ○

      added the new optional request property

      new-optional-request-property

    • ○

      added the new optional request property

      new-optional-request-property

    • ○

      added the non-success response with the status

      response-non-success-status-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog