Get Google Ads performance dashboard

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

Returns the account's spend, clicks, impressions, conversions and return on ad spend for a date window, each with its change against the previous window of the same length, plus a per-campaign breakdown.

Base44 reads these numbers from Google Ads on every call. When Google is unavailable it falls back to its own nightly copy, which is the same shape minus trend and conversion_goals: write your client to treat both as optional rather than assuming the live shape.

Archived campaigns stay in both the totals and the breakdown, so the rows always sum to the figures above them.

conversions and conversions_trend are null for an account that records no conversions and has no conversion tracking configured, so a real zero stays distinguishable from an untracked account. List conversion actions shows whether the account has any goals at all.

Set include_campaign_trend to false to drop the per-campaign daily sparkline. It costs one Google Ads row per campaign per day, so leaving it on is noticeably slower on an account with many campaigns and a long window.

<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>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

get/api/apps/{app_id}/google-ads/analytics/dashboard

Path parameters

app_idstring required

ID of the app whose Google Ads reporting you want to read.

ID of the app whose Google Ads reporting you want to read.

Query parameters

start_datestring required

First day of the window, as YYYY-MM-DD. Inclusive.

First day of the window, as YYYY-MM-DD. Inclusive.

end_datestring required

Last day of the window, as YYYY-MM-DD. Inclusive.

Last day of the window, as YYYY-MM-DD. Inclusive.

include_campaign_trendboolean

Include each campaign's daily series in campaign_breakdown[].trend. Set it to false to leave the series out, which is significantly faster on an account with many campaigns or a long window.

Include each campaign's daily series in campaign_breakdown[].trend. Set it to false to leave the series out, which is significantly faster on an account with many campaigns or a long window.

Response

The account's totals for the window, plus a row per campaign.

spendnumber required

Amount spent in the window, in the account's currency.

spend_trendnumber nullable

Percentage change in spend against the previous window of the same length. null when the previous window had no spend to compare against.

impressionsinteger required

Impressions in the window.

impressions_trendnumber nullable

Percentage change in impressions against the previous window.

clicksinteger required

Clicks in the window.

clicks_trendnumber nullable

Percentage change in clicks against the previous window.

conversionsnumber nullable

Conversions in the window. null when the account has no conversion tracking configured and recorded none, because the number would read as a real zero.

conversions_trendnumber nullable

Percentage change in conversions against the previous window. null whenever conversions is null.

roasnumber required

Return on ad spend: conversion value divided by spend. 0 when nothing was spent.

roas_trendnumber nullable

Percentage change in return on ad spend against the previous window.

monthly_spend_cap_microsinteger

The account's monthly spend cap in micros, or 0 when no cap is set. Absent when the account has no synced campaigns yet.

includes_estimatedboolean required

true when some rows are Base44's own estimate rather than a figure Google reported.

Example response

{
  "spend": 1240.75,
  "spend_trend": 12.4,
  "impressions": 52100,
  "impressions_trend": -3.2,
  "clicks": 1830,
  "clicks_trend": 8.1,
  "conversions": 64,
  "conversions_trend": 15,
  "roas": 2.35,
  "roas_trend": 4.7,
  "campaign_breakdown": [
    {
      "campaign_type": "SEARCH",
      "clicks": 612,
      "conversions": 24,
      "conversions_value": 1830,
      "ctr": 3.33,
      "id": "21458812345",
      "impressions": 18400,
      "name": "Spring sale - Search",
      "spend": 412.5,
      "status": "ENABLED"
    }
  ],
  "top_search_terms": [
    {
      "clicks": 17,
      "term": "oak dining table"
    }
  ],
  "monthly_spend_cap_micros": 50000000,
  "trend": [
    {
      "clicks": 48,
      "conversions": 3,
      "date": "2026-08-14"
    }
  ],
  "conversion_goals": [
    {
      "category": "PURCHASE",
      "conversions": 12,
      "name": "Purchase"
    }
  ]
}

Changes

Changed in 1 of the 10 revisions of this API.1