| App | Google Ads |
| Operation ID | gads_update_listing_groups |
| Type | Action |
| Connection | gads (required) |
| Credits per run | 1 |
| Agent / MCP tool | Yes |
| Requires approval | Yes (write operation) |
Inputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
account | GadsAccountItem or object or array of object or string or integer | Yes | - | Select the Google Ads account, ask user for it if not provided |
ad_group | string or SelectItem | Yes | - | The Shopping ad group to attach the listing group tree to. Must be a SHOPPING_PRODUCT_ADS ad group. |
nodes | string or array of ListingNode | Yes | - | The full listing group tree as a flat list of nodes. Provide exactly one root (SUBDIVISION with no parent_temp_id and no case_value). Each SUBDIVISION needs an ‘Other’ child (a node whose case_value has type matching its siblings but no value). All sibling nodes must share the same dimension type. ‘Other’ may be negative to exclude all remaining products. Google Ads validates the final tree. Accepts either a JSON string or a list. |
GadsAccountItem
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
value | string | Yes | - | |
label | string | Yes | - | |
managerId | string | Yes | - | The manager ID for the Google Ads account. Ask user to use the dropdown to select accounts, this manager id is selected background and not shown to the user. |
ListingNode
A single node in the listing group tree.| Field | Type | Required | Default | Description |
|---|---|---|---|---|
temp_id | integer | Yes | - | Negative integer that uniquely identifies this node within the request (e.g. -1, -2, …). Used to wire children to parents. |
parent_temp_id | integer | No | - | temp_id of the parent SUBDIVISION node. Null for the root. |
type | enum (SUBDIVISION, UNIT) | Yes | - | SUBDIVISION (parent / non-leaf) or UNIT (leaf). |
case_value | ListingDimension | No | - | Dimension that places this node inside its parent’s partition. Required for every non-root node. Omit on the root node. |
cpc_bid | number | No | - | CPC bid in account currency (e.g. 0.20 for $0.20). Sent to Google Ads when provided; Google validates whether it is allowed. |
negative | boolean | No | False | If true, exclude products matching this UNIT from serving. Only valid on UNIT nodes; bids are not applied to negative units. |
SelectItem
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
value | string | Yes | - | The value of the selectable item. |
label | string | Yes | - | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |
ListingDimension
Describes the case_value dimension of a listing group node.| Field | Type | Required | Default | Description |
|---|---|---|---|---|
type | enum (BRAND, CONDITION, ITEM_ID, CUSTOM_LABEL, PRODUCT_TYPE, CATEGORY, CHANNEL, CHANNEL_EXCLUSIVITY) | Yes | - | Dimension type. One of: BRAND, CONDITION, ITEM_ID, CUSTOM_LABEL, PRODUCT_TYPE, CATEGORY, CHANNEL, CHANNEL_EXCLUSIVITY. |
value | string | No | - | Value for the dimension. Used by BRAND (e.g. ‘Nike’), ITEM_ID (merchant offer id), CUSTOM_LABEL (label string), PRODUCT_TYPE (type name). Leave null for the ‘Other’ node. |
condition | string | No | - | Condition enum: NEW, USED, REFURBISHED. Used when type=CONDITION. |
channel | string | No | - | Channel enum: ONLINE, LOCAL. Used when type=CHANNEL. |
channel_exclusivity | string | No | - | Channel exclusivity enum: SINGLE_CHANNEL, MULTI_CHANNEL. Used when type=CHANNEL_EXCLUSIVITY. |
index | integer | No | - | Index 0-4 for CUSTOM_LABEL (which custom_label_0..4 is used) or for PRODUCT_TYPE (which product type level 1-5 is used, 1-indexed). |
category_id | integer | No | - | Numeric Google product category id. Used when type=CATEGORY. |
category_level | integer | No | - | Product category level (1-5). Used when type=CATEGORY or PRODUCT_TYPE if index is not provided. |
Output
Type:Dict
Returns counts and resource names for the created criteria.
Fields: ad_group_id, criteria_count, resource_names, temp_id_to_resource_name
