Get Google Ads campaign conversion breakdown
Changed on<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Breaks one campaign's conversions down by goal, by the Google surface they came through, and by where the people who converted were, for a date window.
Base44 reads all three live from Google Ads as separate reads, and each one can fail on its own. A failed read still returns a 200: its *_unavailable flag is true and its lists are empty, so show that section as unavailable rather than as zero conversions.
- Goals. goals totals conversions and conversion value for the sales, leads, shopping and other families, and goal_actions lists the conversion categories behind them. A category whose conversions round to zero is left out of goal_actions but still counts in goals, so a total can differ slightly from the sum of its rows. BEGIN_CHECKOUT and ADD_TO_CART count as shopping, not sales, and can carry a value, so don't add shopping to a sales total as revenue.
- Channels. channels ranks conversions by ad network. Conversions Google reports with no resolved network, which includes every Performance Max date before 1 June 2025, are summed into channels_unresolved instead.
- Locations. countries and locations rank conversions by where people were, not by what they searched for. Conversions Base44 can't name a place for are summed into countries_unresolved and locations_unresolved.
The ranked lists leave out entries that round to zero. goals_configured names the goal families the app reports conversions for, so you can hide one it never tracks.
start_date and end_date are inclusive, must both be YYYY-MM-DD, and are read in the Google Ads account's time zone. Anything else is rejected with a 400. Keep start_date on or before end_date. The campaign has to have reached Google Ads, so one with no google_campaign_id yet returns a 404.
This is limited to 30 requests a minute per app. Some workspaces have a different limit.
<Note>This endpoint accepts a personal API key from anyone who can view the app, including a read-only key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>
Request
- Base URL: https://app.base44.com
- URL: https://app.base44.com/api/apps/{app_id}/google-ads/campaigns/{campaign_id}/impact
- Auth: HTTP bearer
Path parameters
ID of the app whose Google Ads reporting you want to read.
Base44's ID for the campaign, as returned in id by List campaigns. This is not the Google Ads campaign ID, which is reported separately as google_campaign_id.
Query parameters
First day of the window, as YYYY-MM-DD.
Last day of the window, inclusive, as YYYY-MM-DD.
Response
The campaign's conversions by goal, channel and location.
Example response
{
"goals": {
"leads": {
"conversions": 6,
"conversions_value": 0
},
"other": {
"conversions": 0,
"conversions_value": 0
},
"sales": {
"conversions": 24,
"conversions_value": 1830
},
"shopping": {
"conversions": 9,
"conversions_value": 410
}
},
"goal_actions": [
{
"category": "PURCHASE",
"conversions": 12,
"conversions_value": 960,
"family": "sales"
}
],
"channels": [
{
"channel": "SEARCH",
"conversions": 18
}
],
"channels_unresolved": 2,
"countries": [
{
"code": "DE",
"conversions": 20
}
],
"locations": [
{
"conversions": 11,
"name": "Berlin"
}
],
"locations_unresolved": 1,
"goals_configured": [
"sales"
]
}Changes
- ○
endpoint added
- ○