> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Product Partitions

> Apply native Add, Update or Delete actions to Microsoft Ads Shopping product partitions

Apply native Add, Update or Delete actions to Microsoft Ads Shopping product partitions. Forwards criterion\_actions unchanged; never automatically deletes or rebuilds a tree. All actions must target one ad group and leave a complete tree. Requires explicit criterion IDs for updates/deletes.

| | |
| - | - |
| **App** | Microsoft Ads |
| **Operation ID** | `microsoft_ads_update_product_partitions` |
| **Type** | Action |
| **Connection** | `microsoft_ads` (required) |
| **Credits per run** | 1 |
| **Agent / MCP tool** | Yes |
| **Requires approval** | Yes (write operation) |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `account` | object or array of object or MicrosoftAdsAccountItem or string or integer | Yes | - | Select the Microsoft Ads account that owns the Shopping ad group. |
| `criterion_actions` | array of object or string | Yes | - | Native Microsoft Ads CriterionActions array, forwarded unchanged to ApplyProductPartitionActions. Accepts a JSON array or JSON array string, not the enclosing CriterionActions object. Each action contains Action (Add, Update or Delete) and AdGroupCriterion. Include AdGroupId in every action; all actions must target the same Shopping ad group. Up to 5,000 actions per request. The resulting tree must be complete; if one action fails, all fail. No tree lookup, automatic deletion or 'Everything else' node is performed. Update an existing bid: \[\{"Action":"Update","AdGroupCriterion":\{"Type":"BiddableAdGroupCriterion","AdGroupId":123,"Id":456,"CriterionBid":\{"Type":"FixedBid","Amount":0.8}}}]. Add an all-products root to an ad group without a tree: \[\{"Action":"Add","AdGroupCriterion":\{"Type":"BiddableAdGroupCriterion","AdGroupId":123,"Criterion":\{"Type":"ProductPartition","PartitionType":"Unit","ParentCriterionId":null,"Condition":\{"Operand":"All","Attribute":null}},"CriterionBid":\{"Type":"FixedBid","Amount":0.8}}}]. Delete an existing node: \[\{"Action":"Delete","AdGroupCriterion":\{"Type":"BiddableAdGroupCriterion","AdGroupId":123,"Id":456}}]. Deleting a parent removes its descendants; include replacement actions when needed to leave a complete tree. Omit Criterion on deletes. For subdivision trees, send parents before children, use temporary negative IDs for new parents, and include the required remainder node. Changing a condition or switching between biddable and negative requires explicit Delete and Add actions. |

### MicrosoftAdsAccountItem

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | |
| `label` | string | Yes | - | |
| `customerId` | string | No | - | The Microsoft Ads customer ID used for REST CustomerId headers. If omitted, it is resolved from the account ID. |

## Output

**Type**: `Dict`

Returns Microsoft's ApplyProductPartitionActions response. AdGroupCriterionIds corresponds to the submitted action order; operation and partial errors are raised.

**Fields**: `AdGroupCriterionIds`, `PartialErrors`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.