Partially update ad groups (PATCH)
Learn to update specific ad group fields using PATCH while preserving existing settings.
Overview
Partially update existing Onsite Display ad groups.
PATCH updates modify only the eligible fields included in the request payload. Unlike PUT requests, PATCH updates do not require resubmitting the entire ad group object.
PATCH is generally the preferred update method when only a subset of ad group attributes must change because it:
- Reduces payload size
- Minimizes the risk of unintended changes
- Simplifies operational updates
- Supports efficient batch updates
This endpoint supports both single-ad-group and batch update workflows.
Availability
Supported for Onsite Display only.
Why use PATCH?
PATCH is designed for incremental updates.
Use PATCH when you need to:
- Update bids
- Extend end dates
- Adjust budgets
- Update targeting IDs
- Modify geotargeting
- Update keyword lists
- Adjust frequency caps
- Update creative rotation settings
PATCH updates only the fields you include in the request.
How PATCH updates work
PATCH updates allow you to modify specific ad group attributes without replacing the full ad group configuration.
ImportantPATCH updates only the fields included in the request. Fields omitted from the request retain their existing values.
PATCH update workflow
Retrieve
Review current ad group configuration.
Review
Validate lifecycle state.
Modify
Update only required fields.
Submit
Send PATCH request.
Validate
Review update results.
Before you begin
- Valid
advertiserId - Valid
adGroupId - Ad group in an eligible lifecycle state
- Understanding of which fields are independent versus dependent
- Confirmation that the update does not violate targeting or configuration rules
Endpoint
PATCH /api/v1/adGroups
PATCH /api/v1/adGroupsRequest details
PATCH behavior
PATCH Updates
- Update targeting IDs
- Update bids
- Update frequency caps
- Update budgets
- Modify configuration
Status Updates
- Pause ad groups
- Resume ad groups
- Archive ad groups
- Unarchive ad groups
- Modify lifecycle state
Batch update behavior
This endpoint supports batch operations.
Batch requests:
- Are not transactional
- May partially succeed
- Return one response object per ad group
- Require a consistent
advertiserId - Max batch size=10
See the Batch Requests Guide for retry strategies and partial success handling.
Sample requests
Update name, frequency caps, and targeting
curl -X PATCH \
'https://developer.api.us.stg.walmart.com/api-proxy/service/display/api/v1/api/v1/adGroups' \
--header 'Content-Type: application/json' \ --header 'Authorization: Bearer <auth_token>'
--header 'WM_SEC.AUTH_SIGNATURE: **************' \ --header 'WM_SEC.KEY_VERSION: 1' \ --header 'WM_CONSUMER.ID: adfwe-v23-faasd2r-afs-asdfqeff' \ --header 'WM_CONSUMER.intimestamp: 1565309779'
--data '[ { "advertiserId": 1, "adGroupId": 11, "name": "Ad Group 1" , "frequencyCapDay": 1, "frequencyCapWeek": 3, "targeting" : { "and": [ { "contextual": [ { "id": 3452, "reach": "tier_2" }, { "id": 2343, "reach": "tier_3" } ] }, { "geoTargets": [ { "id": 123 }, { "id": 234 }, { "id": 235 } ] } ] } } ]'Update multiple ad groups
curl -X PATCH \
'https://developer.api.us.stg.walmart.com/api-proxy/service/display/api/v1/api/v1/adGroups' \
--header 'Content-Type: application/json' \ --header 'Authorization: Bearer <auth_token>'
--header 'WM_SEC.AUTH_SIGNATURE: **************' \ --header 'WM_SEC.KEY_VERSION: 1' \ --header 'WM_CONSUMER.ID: adfwe-v23-faasd2r-afs-asdfqeff' \ --header 'WM_CONSUMER.intimestamp: 1565309779'
--data '[ { "advertiserId": 1, "adGroupId": 11, "frequencyCapDay": null, "frequencyCapWeek": null, "frequencyCapMonth": null, "targeting": { "and": [ { "and": [ { "keywords": [ { "keywordText": "running shoes", "matchType": "BROAD" } ] }, { "not": [ { "keywords": [ { "keywordText": "cheap shoes", "matchType": "EXACT" } ] } ] } ] }, { "geoTargets": [{"id": 234},{"id": 235}] } ] }
}, { "advertiserId": 1, "adGroupId": 12, "endDate": "2023-12-09T12:00:00Z", "frequencyCapMonth": 5, "targeting": { "and": [ { "behavioral": [{ "id": 134, "audienceType": "retail", "attribute": "historical" }] }, { "geoTargets": [{"id": 234},{"id": 235}] } ] }
} ]'Response details
What this response returns
The response confirms whether each ad group update succeeded or failed. Batch requests return one response object per ad group.
Key fields to use
-
adGroupId
Unique ad group identifier associated with the update result. -
code
Overall operation result (success,failure) -
details
Validation messages, processing feedback, or failure details
How to interpret results
Successful updates
A successful response confirms the specified fields were updated successfully.
Batch operations
Batch requests may contain both successful and failed updates. Always validate results at the individual ad group level.
Sample responses
Single ad group update
[ { "code": "success", "details": ["string"], "adGroupId": 11 }
]Batch operation - partial success
[ { "code": "failure", "details": ["string"], "adGroupId": 11, "message": "string",
"errors": [ { "field": "string", "errorType": "string", "description": "string" } ]
} { "code": "failure", "details": ["string"], "adGroupId": 12, "message": "string",
"errors": [ { "field": "string", "errorType": "string", "description": "string" } ]
} ]Common issues
- Attempting to change targeting tactics after scheduling
- Updating immutable fields
- Updating budget at the wrong configuration level
- Forgetting to extend
endDatebefore editing completed ad groups - Using targeting IDs where
isDisabled=true - Sending conflicting targeting structures
- Attempting unsupported negative keyword match types
What happens next
After updating ad groups:
- Store updated ad group metadata
- Re-sync partner interfaces if needed
- Review failed update results
- Continue creative association workflows
- Revalidate targeting configuration where applicable
Related pages
Updated 1 day ago
