get_conversion_action_performance

Google Ads Read

๐Ÿšจ **IF THIS TOOL RETURNS A QUOTA ERROR:** - The error message will include a clickable upgrade link - Show the FULL error message to the user (it contains the upgrade link) - DO NOT attempt to work ar

Endpoint

POST https://api.adspirer.ai/api/v1/tools/get_conversion_action_performance/execute

Headers

Description

๐Ÿšจ **IF THIS TOOL RETURNS A QUOTA ERROR:** - The error message will include a clickable upgrade link - Show the FULL error message to the user (it contains the upgrade link) - DO NOT attempt to work around the error or use alternative data - DO NOT create campaigns or perform actions without valid tool data - STOP and direct the user to upgrade via the provided link Per-conversion-action performance breakdown. This tool retrieves READ-ONLY data via 2 live GAQL queries (cached 5 min in Redis). Safe to call multiple times. **Returns:** - `totals` โ€” account or campaign aggregate: cost, conversions, conversion_value, CPA, ROAS, clicks, impressions - `breakdown` โ€” per-conversion-action rows: conversions, conversion_value, all_conversions, all_conversions_value, avg_value_per_conversion, share_of_conversions, share_of_value - `note` โ€” explains why per-action CPA/ROAS are NOT computed **Important โ€” what this tool does NOT do:** Per-action CPA and ROAS are NOT shown. Google Ads rejects `cost_micros` when segmenting by `conversion_action` because cost is shared across all actions a click can produce. We do NOT prorate cost per action โ€” that would fabricate data. Account/campaign-level CPA + ROAS appear in `totals`. Use `share_of_conversions` and `share_of_value` to see relative contribution per action. **Parameters:** - customer_id: Optional (uses connected account if omitted) - lookback_days: 7, 30, 60, 90, 120 (default 30). Ignored when both start_date and end_date set. - start_date / end_date: YYYY-MM-DD (override lookback_days when both provided) - campaign_id: Optional. Scopes the breakdown to a single campaign. **Execution time:** 2-5 seconds (2 GAQL queries, then cached 5 min) **Use this tool when:** - User asks "which conversion action drove the most conversions / value?" - User wants per-action breakdown for accounts with multiple conversion actions (e.g., lead vs purchase) - User wants to see relative contribution of each action to total conversions/value - After `list_conversion_actions` to map IDs to performance **Tip:** Use this AFTER `list_conversion_actions` so you know action names/IDs/categories. For a single campaign: pass `campaign_id` from `list_campaigns`.

Request body

All tool arguments are wrapped in an arguments object.

FieldTypeDescription
start_datestring optionalStart date (YYYY-MM-DD). If provided with end_date, overrides lookback_days for custom date range queries.
end_datestring optionalEnd date (YYYY-MM-DD). If provided with start_date, overrides lookback_days for custom date range queries.
date_rangestring optionalDate range preset: 'last_7_days', 'last_14_days', 'last_30_days', 'last_60_days', 'last_90_days'. Overrides lookback_days. Ignored if start_date/end_date are provided.
raw_databoolean optionalIf true, return ONLY raw metrics as a JSON code block (spend, clicks, impressions, conversions, CPA, CPC, CTR, CVR, ROAS by campaign/ad/date). Strips severity labels, suggested bids/budgets, industry benchmarks, and optimization recommendations. Use when you run your own attribution model or want to minimize token usage. default: false
customer_idstring optionalGoogle Ads customer ID. Required for multi-account users. Get from get_connections_status.
lookback_daysinteger optionalNumber of days to analyze (7, 30, 60, 90, 120). Default 30. Ignored when both start_date and end_date are provided. default: 30
campaign_idstring optionalOptional. Scope the breakdown to a single campaign. Omit for account-wide breakdown.

Example request

{
  "arguments": {
    "start_date": "string",
    "end_date": "string",
    "date_range": "string",
    "raw_data": false,
    "customer_id": "string",
    "lookback_days": 30
  }
}

Example responses

200 โ€” Success

{
  "success": true,
  "data": {
    "text": "(tool-specific textual output for get_conversion_action_performance)",
    "quota": {
      "used": 42,
      "limit": 150,
      "tier": "plus",
      "period_end": "2026-05-01"
    }
  },
  "tool": "get_conversion_action_performance"
}

400 โ€” Tool-level error (bad arguments / multi-account selection)

{
  "success": false,
  "error": "You have 25 meta_ads accounts connected. Please specify which account to use by passing the ad_account_id parameter:\n  - Acme Holdings (ad_account_id=\"act_123456789\")\n  - Acme EU (ad_account_id=\"act_987654321\")",
  "is_error": true,
  "tool": "get_conversion_action_performance"
}

402 โ€” Quota exhausted

{
  "success": false,
  "error": "\ud83d\udea8 Monthly limit reached (150/150 tool calls on Plus tier).\nUpgrade to Pro at https://adspirer.ai to keep building.",
  "is_error": true,
  "tool": "get_conversion_action_performance",
  "quota": {
    "used": 150,
    "limit": 150,
    "tier": "plus",
    "period_end": "2026-05-01",
    "upgrade_url": "https://adspirer.ai"
  }
}

Try it live


Adspirer REST API โ€” get an API key at adspirer.ai/keys ยท adspirer.ai