google_ads_get_asset_report
Get Google Ads Asset Report
GoogleDescription
Asset-level performance report across hierarchy levels (AD_GROUP, CAMPAIGN, CUSTOMER, ASSET_GROUP). CAMPAIGN level automatically includes PMax asset groups. When levels is omitted, all levels are queried. Conversion breakdown, change history, and PMax audience signals are opt-in to control response size. Video metrics are not available on asset resources. For creative inventory or copy exports, set include_asset_content: true — it resolves full sitelink copy (link text + both description lines), callout text, structured snippet values, call numbers, promotion targets, price offerings, and final URLs; without it, content is null for those asset types. Paginated: when a response includes nextCursor, call again with the same parameters plus cursor=<nextCursor>, and repeat until nextCursor is absent to get every row.
Usage
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "google_ads_get_asset_report",
"arguments": {
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"reason": "Review asset performance across all levels"
}
}
}
hopkin google asset-report get
| Flag | Type | Required | Description |
|---|---|---|---|
--customer-id | string | Required | 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 |
--campaign-ids | array | Optional | Filter to one or more campaign IDs |
--ad-group-ids | array | Optional | Filter to one or more ad group IDs |
--asset-ids | array | Optional | Filter to one or more asset IDs |
--asset-types | array | Optional | Filter by asset type(s): TEXT, IMAGE, YOUTUBE_VIDEO, SITELINK, CALLOUT, etc. |
--field-types | array | Optional | Filter by field type(s): HEADLINE, DESCRIPTION, MARKETING_IMAGE, etc. |
--levels | array | Optional | Levels to query: CUSTOMER, CAMPAIGN, AD_GROUP, ASSET_GROUP. CAMPAIGN automatically includes ASSET_GROUP (PMax). Defaults to all levels. |
--policy-approval-statuses | array | Optional | Filter by policy approval status(es). Useful for surfacing disapproved or limited assets without paginating through all results. |
--include-change-history | boolean | Optional | Add added_at, added_by, last_modified_at, last_modified_by via change_event queries. Limited to last 30 days of Google history. |
--include-conversion-breakdown | boolean | Optional | Include per-conversion-action breakdown on each asset row. Adds 4 extra GAQL queries and significantly increases response size. Default false. |
--include-audience-signals | boolean | Optional | Include PMax audience signals per asset group. Shows which audiences (remarketing lists, custom segments, interests) are configured as signals. |
--include-asset-content | boolean | Optional | Resolve full asset content via a second query against the asset resource: sitelink link text + description lines, callout text, structured snippet values, call numbers, promotion targets, price offerings, and final URLs. Required for creative inventory / copy exports — without it, content is null for SITELINK, CALLOUT, STRUCTURED_SNIPPET, PROMOTION, CALL, PRICE, and LEAD_FORM assets. Adds 1 extra query per page. Default false. |
--order-by | string | Optional | Sort results by: impressions (default), clicks, cost, conversions, ctr. Applied globally after merging all levels. |
--limit | integer | Optional | Maximum rows to return per page (default: 20, max: 1000). Use cursor for subsequent pages. |
--cursor | string | Optional | Opaque cursor from the previous response's nextCursor. Pass it with otherwise identical parameters to get the next page; a cursor reused with different filters is rejected. Omit for the first page. |
--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"
}
}
}
- All assets last 30 days
- Ad group assets last 7 days
- PMax assets by campaign
- Top headlines by impressions
- PMax with audience signals
- Creative inventory with sitelink copy
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
customer_id |
string |
Required | 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 (18)
| 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 |
campaign_ids |
array |
Optional | Filter to one or more campaign IDs |
ad_group_ids |
array |
Optional | Filter to one or more ad group IDs |
asset_ids |
array |
Optional | Filter to one or more asset IDs |
asset_types |
array |
Optional | Filter by asset type(s): TEXT, IMAGE, YOUTUBE_VIDEO, SITELINK, CALLOUT, etc. |
field_types |
array |
Optional | Filter by field type(s): HEADLINE, DESCRIPTION, MARKETING_IMAGE, etc. |
levels |
array |
Optional | Levels to query: CUSTOMER, CAMPAIGN, AD_GROUP, ASSET_GROUP. CAMPAIGN automatically includes ASSET_GROUP (PMax). Defaults to all levels. |
policy_approval_statuses |
array |
Optional | Filter by policy approval status(es). Useful for surfacing disapproved or limited assets without paginating through all results. |
include_change_history |
boolean |
Optional | Add added_at, added_by, last_modified_at, last_modified_by via change_event queries. Limited to last 30 days of Google history. |
include_conversion_breakdown |
boolean |
Optional | Include per-conversion-action breakdown on each asset row. Adds 4 extra GAQL queries and significantly increases response size. Default false. |
include_audience_signals |
boolean |
Optional | Include PMax audience signals per asset group. Shows which audiences (remarketing lists, custom segments, interests) are configured as signals. |
include_asset_content |
boolean |
Optional | Resolve full asset content via a second query against the asset resource: sitelink link text + description lines, callout text, structured snippet values, call numbers, promotion targets, price offerings, and final URLs. Required for creative inventory / copy exports — without it, content is null for SITELINK, CALLOUT, STRUCTURED_SNIPPET, PROMOTION, CALL, PRICE, and LEAD_FORM assets. Adds 1 extra query per page. Default false. |
order_by |
string |
Optional | Sort results by: impressions (default), clicks, cost, conversions, ctr. Applied globally after merging all levels.impressions clicks cost conversions ctr |
limit |
integer |
Optional | Maximum rows to return per page (default: 20, max: 1000). Use cursor for subsequent pages.min: 1, max: 1000 |
cursor |
string |
Optional | Opaque cursor from the previous response's nextCursor. Pass it with otherwise identical parameters to get the next page; a cursor reused with different filters is rejected. Omit for the first page. |
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
All assets last 30 days
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"reason": "Review asset performance across all levels"
}
hopkin google asset-report get --customer-id 1234567890 --date-preset LAST_30_DAYS
Ad group assets last 7 days
{
"customer_id": "1234567890",
"date_preset": "LAST_7_DAYS",
"levels": [
"AD_GROUP"
],
"reason": "Ad group asset analysis"
}
hopkin google asset-report get --customer-id 1234567890 --date-preset LAST_7_DAYS --levels AD_GROUP
PMax assets by campaign
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"levels": [
"CAMPAIGN"
],
"reason": "PMax asset group analysis"
}
hopkin google asset-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --levels CAMPAIGN
Top headlines by impressions
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"field_types": [
"HEADLINE"
],
"order_by": "impressions",
"limit": 20,
"reason": "Top headline analysis"
}
hopkin google asset-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --field-types HEADLINE --order-by impressions --limit 20
PMax with audience signals
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"levels": [
"ASSET_GROUP"
],
"include_audience_signals": true,
"reason": "PMax audience signal audit"
}
hopkin google asset-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --levels ASSET_GROUP --include-audience-signals true
Creative inventory with sitelink copy
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"asset_types": [
"SITELINK"
],
"include_asset_content": true,
"reason": "Export full sitelink copy and final URLs"
}
hopkin google asset-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --asset-types SITELINK --include-asset-content true