---
title: "Get Google Ads campaign metrics"
method: GET
path: "/api/apps/{app_id}/google-ads/campaigns/metrics"
---

# Get Google Ads campaign metrics

`GET /api/apps/{app_id}/google-ads/campaigns/metrics`

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

Reads live performance figures for every campaign on the account over a date window, in one call.

This goes to Google directly rather than to Base44's nightly copy, so the numbers include today. Use it to fill in a table you first drew from [List campaigns](/api-reference/list-google-ads-campaigns) with `include_metrics=false`.

`metrics` is keyed by the Google Ads campaign ID, not Base44's campaign ID. Join on the `google_campaign_id` field from the list endpoint. A campaign that had no activity in the window does not appear as a zero row, it is simply absent.

When Google cannot be reached you get an empty `metrics` map with `degraded` set to `true`, under a 200. Treat that as "unknown" rather than "nothing happened".

<Note>`start_date` and `end_date` are inclusive and must both be `YYYY-MM-DD`. Anything else is rejected with a 400.</Note>

<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 whose Google Ads reporting you want to read.

## Query parameters

- `start_date` string, required — First day to include, as `YYYY-MM-DD`. Inclusive.
- `end_date` string, required — Last day to include, as `YYYY-MM-DD`. Inclusive.

## Response `200`

Metrics for each campaign with activity in the window.

- GoogleAdsCampaignMetricsResponse — Live metrics for every campaign on the account, keyed by Google's campaign ID.
  - `metrics` object, required — One entry per campaign, keyed by the Google Ads campaign ID. This is the `google_campaign_id` field from [List campaigns](/api-reference/list-google-ads-campaigns), not Base44's `id`, so join on that field. Campaigns with no activity in the window are left out entirely.
  - `degraded` boolean, required — `true` when Google could not be reached and `metrics` is empty for that reason rather than because nothing ran. Always check this before showing zeros.

## Other responses

- `400` — `start_date` or `end_date` is not `YYYY-MM-DD`, or `start_date` is after `end_date`.
- `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

---

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