google_ads_get_performance_report
Get Google Ads Performance Report
GoogleDescription
Segmented and multi-level performance reporting. FIRST, CHECK THE REQUEST: for a plain account-level overview with no segments and no level breakdown — a quick performance summary, "how is this account doing", or account totals over a date range — use google_ads_get_account_summary instead; it returns those totals pre-aggregated in a single call. Use this tool when a level (CAMPAIGN, AD_GROUP) or a segment (device, date, network type) is actually needed. Comprehensive funnel metrics with per-conversion-action breakdowns. Supports segments for device breakdown (DESKTOP, MOBILE, TABLET), daily trends, and network type analysis. Preferred over google_ads_get_insights for standard analysis. Runs parallel queries for top-level funnel and conversion action breakdown. Supported levels automatically include the Demand Gen Platform Comparable conversion family (platform_comparable_conversions, cost/value/rate variants); row-level reports return null for non-Demand Gen rows. Search impression share is included at CAMPAIGN and AD_GROUP levels (budget-lost variants campaign-level only). Set include_new_vs_returning to add a conversions breakdown by new vs returning customer (segments.new_versus_returning_customers; new customers = NEW + NEW_AND_HIGH_LTV buckets summed) for cost-per-new-customer reporting on customer-acquisition-goal campaigns. Use google_ads_get_insights for custom metric selection. For geographic data, use google_ads_get_geo_performance instead.
Usage
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "google_ads_get_performance_report",
"arguments": {
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"reason": "Monthly performance review"
}
}
}
hopkin google performance-report get
| Flag | Type | Required | Description |
|---|---|---|---|
--customer-id | string | Required | The Google Ads Customer ID (10 digits, with or without dashes) |
--login-customer-id | string | Optional | MCC (Manager) Customer ID; required for managed accounts |
--date-preset | string | Optional | Predefined date range: TODAY, YESTERDAY, LAST_7_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTH |
--date-range | object | Optional | Custom date range {start_date, end_date} in YYYY-MM-DD |
--level | string | Optional | Report level (default: CAMPAIGN): ACCOUNT, CAMPAIGN, AD_GROUP, AD. CAMPAIGN, AD_GROUP, and AD reports automatically include platform_comparable_conversions for Demand Gen rows (null for non-Demand Gen). |
--segments | array | Optional | Additional segments for the main metrics: date, device, ad_network_type. Conversion action breakdowns are always included automatically via a separate query. |
--campaign | string | Optional | Filter to a specific campaign ID |
--ad-group-id | string | Optional | Filter to a specific ad group ID |
--include-all-conversions | boolean | Optional | When true, includes an additional all-conversions breakdown (metrics.all_conversions, all_conversions_value, value_per_all_conversions) segmented by conversion_action_name. This captures ALL conversion actions including those not marked "Include in Conversions" (e.g., view-through, cross-device, store visits). |
--include-new-vs-returning | boolean | Optional | When true, includes an additional breakdown of conversions by segments.new_versus_returning_customers (NEW, RETURNING, NEW_AND_HIGH_LTV, UNKNOWN) via a separate query, aggregated over the date range. New customers are split across the NEW and NEW_AND_HIGH_LTV buckets — sum both, then combine with the main query cost to compute cost-per-new-customer. Only populated for campaigns using a customer acquisition goal; if the breakdown query fails, the breakdown is empty and a warnings entry explains why. |
--connection-id | string | Optional | Optional ID of a specific connection to use for this call. Omit to use the actor's default connection for this network. Call <platform>_list_connections to discover available connection IDs. |
{
"mcpServers": {
"google-ads": {
"url": "https://google.mcp.hopkin.ai",
"transport": "sse"
}
}
}
- Campaign overview
- Daily trend
- Account summary
- Device breakdown
- Cost per new customer
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
customer_id |
string |
Required | The Google Ads Customer ID (10 digits, with or without dashes)maxLength: 20, pattern: ^[\d-]+$ |
reason |
string |
Required | Why this tool call is neededminLength: 1, maxLength: 500 |
Optional parameters (10)
| Name | Type | Required | Description |
|---|---|---|---|
login_customer_id |
string |
Optional | MCC (Manager) Customer ID; required for managed accountsmaxLength: 20, pattern: ^[\d-]+$ |
date_preset |
string |
Optional | Predefined date range: TODAY, YESTERDAY, LAST_7_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTHTODAY YESTERDAY LAST_7_DAYS LAST_30_DAYS THIS_MONTH LAST_MONTH |
date_range |
object |
Optional | Custom date range {start_date, end_date} in YYYY-MM-DD |
level |
string |
Optional | Report level (default: CAMPAIGN): ACCOUNT, CAMPAIGN, AD_GROUP, AD. CAMPAIGN, AD_GROUP, and AD reports automatically include platform_comparable_conversions for Demand Gen rows (null for non-Demand Gen).ACCOUNT CAMPAIGN AD_GROUP AD |
segments |
array |
Optional | Additional segments for the main metrics: date, device, ad_network_type. Conversion action breakdowns are always included automatically via a separate query. |
campaign_id |
string |
Optional | Filter to a specific campaign IDmaxLength: 20, pattern: ^\d+$ |
ad_group_id |
string |
Optional | Filter to a specific ad group IDmaxLength: 20, pattern: ^\d+$ |
include_all_conversions |
boolean |
Optional | When true, includes an additional all-conversions breakdown (metrics.all_conversions, all_conversions_value, value_per_all_conversions) segmented by conversion_action_name. This captures ALL conversion actions including those not marked "Include in Conversions" (e.g., view-through, cross-device, store visits). |
include_new_vs_returning |
boolean |
Optional | When true, includes an additional breakdown of conversions by segments.new_versus_returning_customers (NEW, RETURNING, NEW_AND_HIGH_LTV, UNKNOWN) via a separate query, aggregated over the date range. New customers are split across the NEW and NEW_AND_HIGH_LTV buckets — sum both, then combine with the main query cost to compute cost-per-new-customer. Only populated for campaigns using a customer acquisition goal; if the breakdown query fails, the breakdown is empty and a warnings entry explains why. |
connection_id |
string |
Optional | Optional ID of a specific connection to use for this call. Omit to use the actor's default connection for this network. Call <platform>_list_connections to discover available connection IDs. |
Examples
Campaign overview
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"reason": "Monthly performance review"
}
hopkin google performance-report get --customer-id 1234567890 --date-preset LAST_30_DAYS
Daily trend
{
"customer_id": "1234567890",
"date_preset": "LAST_7_DAYS",
"segments": [
"date"
],
"reason": "Daily performance trend"
}
hopkin google performance-report get --customer-id 1234567890 --date-preset LAST_7_DAYS --segments date
Account summary
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"level": "ACCOUNT",
"reason": "Account-level overview"
}
hopkin google performance-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --level ACCOUNT
Device breakdown
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"segments": [
"device"
],
"reason": "Device analysis"
}
hopkin google performance-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --segments device
Cost per new customer
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"include_new_vs_returning": true,
"reason": "New vs returning customer acquisition analysis"
}
hopkin google performance-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --include-new-vs-returning true