---
title: "Estimate a Google Ads campaign budget"
method: POST
path: "/api/apps/{app_id}/google-ads/campaigns/estimate"
---

# Estimate a Google Ads campaign budget

`POST /api/apps/{app_id}/google-ads/campaigns/estimate`

<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 and the daily budget you have in mind, both as they would go to [Create campaign](/api-reference/create-google-ads-campaign). Nothing is saved.

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>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

## Path parameters

- `app_id` string, required — ID of the app you are planning a Google Ads campaign for.

## Request body

- BudgetEstimateRequest
  - `keyword_themes` string[] — Themes the campaign would match on. An empty list forecasts nothing useful.
  - `daily_budget` integer — Daily budget to forecast against, in micros (1,000,000 micros = 1 unit of the account's currency).

## Response `200`

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

- GoogleAdsBudgetEstimate — Google's forecast for a set of keyword themes at a daily budget.
  - `estimated_daily_clicks_low` integer, required — Low end of Google's forecast daily clicks.
  - `estimated_daily_clicks_high` integer, required — High end of Google's forecast daily clicks.
  - `estimated_monthly_cost` integer, 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.

## Other responses

- `400` — The Google Ads account has not finished provisioning, so it has no Google customer ID yet.
- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, the app does not exist, or you used a workspace API key. A missing app and an app you cannot reach are deliberately the same answer.
- `404` — The app has no connected Google Ads account.
- `422` — Validation Error

## Changes

- **2026-08-26** `f2727732ced1` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/google-ads/campaigns/estimate/post.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/idealspot/base44-app-management-api/revisions/173e4e9c63c2/schema)
