Update Existing Ad Group

📘

URL: PUT/api/v1/adGroups

Note:

  • This API supports batch operations with a max batch size of 10. For bulk operation, the advertiserId must be the same across all requests in the payload.
  • Updating multiple ad groups with different targeting types is supported in Bulk. For example: A single bulk payload can include one ad group update request with keyword targeting and another ad group update request with contextual targeting.
  • PUT API requests will overwrite all current values and are not intended to be used as incremental updates like PATCH operations
  • You must set all of budgetType, dailyBudget, totalBudget, startDate, endDate, and deliverySpeed parameters at same level i.e. either at campaign level or ad group level
  • Supports both expression-based and flattened targeting structure. Only one of expression based or flattened structure should be used in a request. More details here
  • For details on updatable fields, refer to this link

Request Parameters

ParametersNotesTypeRequiredPossible Values
campaignIdID of the campaign this ad group belongs tointegerYUnique numeric identifier
advertiserIdID of advertiserintegerYUnique numeric identifier
adGroupIdThe ID of the ad groupintegerYUnique numeric identifier
nameThe name of the ad groupstringYRelevant string value representing the ad group
startDatedate on which the ad group is set to go live
Note:
  • it must be set either at campaign or ad group level
  • You can update startDate only for DRAFT and SCHEDULED ad groups
  • You can not update startDate when ad group is LIVE
dateConditional

Date should be in format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX

Note:

  • All timestamp values must be in ISO 8601 format (e.g., "2025-07-20T19:10:10-05:00").
  • All date-time values are internally converted to Eastern Time (ET) for processing and normalized to the start of the hour. This means minutes and seconds are truncated. Example: "2025-07-20T19:10:10-05:00" becomes "2025-07-20T19:00:00-05:00" in ET

Kindly take these behaviors into consideration when assigning a value to startDate in your request.

endDateThe date when ad group ends
Note: it must be set either at campaign or ad group level
dateConditional

Date should be in format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX

To run campaign indefinitely, set its value as ‘9999-12-30T00:00:00Z’

Note:

  • All timestamp values must be in ISO 8601 format (e.g., "2025-07-20T19:10:10-05:00").
  • All date-time values are internally converted to Eastern Time (ET) for processing and normalized to the start of the hour. This means minutes and seconds are truncated. Example: "2025-07-20T19:10:10-05:00" becomes "2025-07-20T19:00:00-05:00" in ET
  • The endDate must be set to a time after 12:00 PM ET. If the provided value is before 12:00 PM ET, the system will return an error.
  • Special Case: If you set endDate to exactly "00:00:00" ET (e.g., "2025-07-20T00:00:00-05:00"), it will be interpreted as the end of the previous day: "2025-07-19T23:59:59-05:00".

Kindly take these behaviors into consideration when assigning a value to startDate in your request.

budgetType

The type of budget allocation you want to choose for your campaign

Note:
  • it must be set either at campaign or ad group level
  • You can not update budgetType
  • Ad groups scheduled to run indefinitely must use a daily budget
stringNValues:
  • daily
  • total
dailyBudgetDaily budget of ad group
Note:
  • Daily budget cannot exceed your total budget amount
  • Unspent budget will be rolled over to the next day
  • Up to 20% of the daily budget can be rolled over to the following day
  • it must be set either at campaign or ad group level
  • Ad groups scheduled to run indefinitely must use a daily budget
doubleConditional.This field is required only if:
  • It is not
    set at campaign level
  • budgetType is set to be daily
The value of daily budget should at least be $0.01
totalBudgetTotal budget of ad group
Note: it must be set either at campaign or ad group level
double

This field is required only if:
-It is not
set at campaign level

-budgetType is set to be total

The value of total budget should at least be $0.01
creativeRotationMode

Specifies the rotation strategy for creatives within an ad group during delivery.

Creatives can either be automatically rotated and prioritized based on performance (OPTIMIZE_PERFORMANCE), or distributed evenly with equal weight (ROTATE_EVENLY**)

stringN

Enum Values:

•OPTIMIZE_PERFORMANCE (Default value)
•ROTATE_EVENLY

deliverySpeedDetermines pacing of ad delivery
Note:
  • it must be set either at campaign or ad group level_
  • You can update it only for campaigns in DRAFT state
  • You cannot update deliverySpeed when ad group is LIVE
  • You can update deliverySpeed only for DRAFT ad groups
stringConditional. Required only if not set at campaign level. Cannot be changed to campaign level laterValues:
  • frontloaded
  • evenly

Note: frontloaded pacing is not supported if budgetType is daily
frequencyCapDayThe number of times the ad from specific adgroup should be shown to the same user on a daily basisintegerNInteger values between 1 and 511
frequencyCapWeekThe number of times the ad from specific adgroup should be shown to the same user on a weekly basisintegerNInteger values between 3 and 511
frequencyCapMonthThe number of times the ad from specific adgroup should be shown to the same user on a monthly basisintegerNInteger values between 5 and 511
maxBidmax bid value for the ad groupdoubleNValue of max bid
targetingJSON object that defines the audience, contextual, keyword, and geographic targeting criteria for an ad group.
View more details about the targeting object and its schema structures here.
Note: You must choose one structure; mixing flat and expression-based schemas in a single payload is not supported.
stringN

Note: You must set all of: budgetType, dailyBudget, totalBudget, startDate, endDate, and deliverySpeed parameters at same level i.e. either at campaign level or ad group level, not both


Targeting Objects

The targeting object can either be replaced fully or can be incrementally updated using add and remove arrays.

For Ad Groups with Keywords and Negative Keywords Targeting

ParameterParameter DescriptionTypeRequiredPossible Values
keywordTextText that defines the keywordstringYAdvertiser ID for which the campaign needs to be updated for delivery status
matchTypeMatching criteria for the keywordsstringYbroad, exact
For negative keywords only exact matchType is allowed

For Ad Groups with Contextual Targeting

ParameterParameter DescriptionTypeRequiredPossible Values
idID of the contextual nodeintegerY
reachDetermines contextual reach.This is how tiers in API call map to the representation on ad center UI:
Tier mapping:
  • low = [tier_1, tier_2 ]
  • mid = [tier_3, tier_4 ]
  • high = [tier_5, tier_6, tier_7 ]
stringY
  • tier_1
  • tier2
  • tier_3
  • tier_4
  • tier_5
  • tier_6
  • tier_7

For Ad Groups with Behavioral Targeting

ParameterParameter DescriptionTypeRequiredPossible Values
idID of the audience obtained from List targeting endpointintegerY
audienceTypeType of audiencestringY
  • retail
  • brand
  • persona
  • custom
  • demographic
attributeAttribute of the audiencestringY
  • For category:
    • historical
    • predictive
  • For brand:
    • historical
    • predictive
    • lapsed_buyers
  • For persona:
    • lifestyle
    • lifestage
    • auto
    • shopping_habits
    • food_beverages
  • For demographic:
    • age
    • gender
    • household_income

For Ad Groups with ROS Targeting

ParameterParameter DescriptionTypeRequiredPossible Values
runOfSiteIndicates whether run‑of‑site targeting is enabledbooleanY
  • true
  • false

Geo targeting 

Can be set to one of: 

  • Country
  • State,City
  • DMA
  • Zip code

If omitted will be default set to country (US). You cannot combine different geo-targeting types within a single ad group

ParameterParameter DescriptionTypeRequiredPossible Values
idis used for Country, State, City or DMA targetsintegerY
zipCodeis used for zip code targeting.We only support ZIP codes within the USA currentlystringY

📌

Rules


  • startDate >= today’s date
  • startDate <= endDate
  • total and daily budget should be >= max bid
  • You can only set either dailyBudget or totalBudget
  • To set daily budget, you must choose value of budgetType as “daily” and then define dailyBudget.
  • To set total budget, you must choose value of budgetType as “total” and then define totalBudget.
  • Budget, Schedule and Delivery speed must be set either at campaign or ad group level
  • You must set all of budgetType, dailyBudget, totalBudget, startDate, endDate, and deliverySpeed parameters at same level i.e. either at campaign level or ad group level, not both
  • IDs with isDisabled = true from POST/api/v1/targeting/list cannot be used for targeting
  • Campaigns must be homogeneous: if mediaType is VIDEO, all ad groups will be VIDEO; if mediaType is BANNER, all ad groups will be BANNER. Mixing VIDEO and BANNER ad groups within the same campaign is not allowed.
  • mediaType, if included in the request payload, is ignored and has no effect on processing.
  • Ad groups created to run definitely can be updated later to include an end date.

📌

Targeting Rules

  • Only one of keywords, contextual, behavioral, or runOfSite is allowed.
  • geoTargets can be combined via an AND relation with that tactic.
  • All targeting combinations must use the and array format, as shown in the sample requests.
  • For geo targeting (Refer to the sample requests for creating an Ad Group with ROS to see how zip codes are used in geo-targeting):
    • In an ad group, geo targeting can be set to one of:
      • Country
      • State, City
      • DMA
      • Zip code
    • You cannot combine different geo-targeting types within a single ad group
    • If geo targeting is not specified, the default Country (US) level targeting will be applied
  • When setting up targeting for Video Ad Groups, the following restrictions apply:
    • Keywords targeting is not supported for ad groups in campaigns with mediaType = VIDEO.
    • Ad groups with runOfSite targeting will not serve on Item Page placement.
    • Ad groups with contextual targeting will not serve on Homepage Feature_4

Sample Request 1 - Update Ad Group with Keyword Targeting (Expression based Targeting Structure)

curl -X PUT \
'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 '[ { "campaignId": 1, "advertiserId": 1, "adGroupId": 11, "name": "Ad Group 1" , "startDate": "2023-12-01T12:00:00Z", "endDate": "2023-12-09T12:00:00Z", "rateType": "cpm", "budgetType": "daily", "dailyBudget": 500, "deliverySpeed": "evenly", "creativeRotationMode": "OPTIMIZE_PERFORMANCE", "frequencyCapDay": 1, "frequencyCapWeek": 3, "frequencyCapMonth": 5, "baseBid": 0.1, "maxBid": 0.5, "targeting": { "and": [ { "and": [ { "keywords": [ { "keywordText": "test-keyword-1", "matchType": "broad" }, { "keywordText": "test-keyword-2", "matchType": "broad" } ] }, { "not": [ { "keywords": [ { "keywordText": "test-keyword-3", "matchType": "exact" } ] } ] } ] }, { "geoTargets": [ { "id": 123 }, { "id": 234 }, { "id": 235 } ] } ] } } ]'

Sample Request 2 - Update Ad Group with Keyword Targeting (using Flattened Targeting Structure)

curl -X PUT \
'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 '[ { "campaignId": 1, "advertiserId": 1, "adGroupId": 11, "name": "Ad group 1" , "startDate": "2023-12-01T12:00:00Z", "endDate": "2023-12-09T12:00:00Z", "rateType": "cpm", "budgetType": "daily", "dailyBudget": 500, "deliverySpeed": "evenly", "creativeRotationMode": "OPTIMIZE_PERFORMANCE", "frequencyCapDay": 1, "frequencyCapWeek": 3, "frequencyCapMonth": 5, "baseBid": 0.1, "maxBid": 0.5, "targeting": { "keywords": { "include": [ { "matchType": "BROAD", "keywordText": "running shoes" }, { "matchType": "PHRASE", "keywordText": "trail sneakers" } ], "exclude": [ { "matchType": "EXACT", "keywordText": "free shoes" }, { "matchType": "EXACT", "keywordText": "loafers" } ] }, "geoTargets": { "include": [{ "id": 123 }, { "id": 234 } ] } } }
]'

Sample Request 3: Update Ad Group with Contextual Targeting (using Expression Targeting Structure)

curl -X PUT \
'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 ' [ {
"campaignId": 1,
"advertiserId": 1,
"adGroupId": 12,
"name": "Ad group 1",
"startDate": "2023-12-01T12:00:00Z",
"endDate": "2023-12-09T12:00:00Z",
"rateType" : "cpm",
"budgetType" : "total",
"totalBudget": 5000,
"deliverySpeed" : "evenly",
"creativeRotationMode":"OPTIMIZE_PERFORMANCE",
"frequencyCapDay" : 1, "frequencyCapWeek" : 3, "frequencyCapMonth" : 5,
"baseBid" : 0.1,
"maxBid" : 0.5, "targeting" : { "and": [ { "contextual": [ { "id": 3452, "reach": "tier_2" }, { "id": 2343, "reach": "tier_3" } ] }, { "geoTargets": [ { "id": 123 }, { "id": 234 }, { "id": 235 } ] } ] } }
]'

Sample Request 4: Update Ad Group with Contextual Targeting (using Flattened Targeting Structure)

curl -X PUT \
'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 ' [ {
"campaignId": 1,
"advertiserId": 1,
"adGroupId": 12,
"name": "Ad group 1",
"startDate": "2023-12-01T12:00:00Z",
"endDate": "2023-12-09T12:00:00Z",
"rateType" : "cpm",
"budgetType" : "total",
"totalBudget": 5000,
"deliverySpeed" : "evenly",
"creativeRotationMode":"OPTIMIZE_PERFORMANCE",
"frequencyCapDay" : 1, "frequencyCapWeek" : 3, "frequencyCapMonth" : 5,
"baseBid" : 0.1,
"maxBid" : 0.5, "targeting": { "contextual": { "include": [ { "id": 3452, "reach": "tier_2" } { "id": 2343, "reach": "tier_3" } ] }, "geoTargets": { "include": [{ "id": 123 }, { "id": 234 } ] }
} }
]'

Sample Request 5: Update Ad Group with Audience Targeting (using Expression Targeting Structure)

curl -X PUT \
'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 ' [ {
"campaignId": 1,
"advertiserId": 1,
"adGroupId": 13,
"name": "Ad group 1",
"startDate": "2023-12-01T12:00:00Z",
"endDate": "2023-12-09T12:00:00Z",
"rateType" : "cpm",
"budgetType" : "daily",
"dailyBudget": 500,
"deliverySpeed" : "evenly",
"creativeRotationMode": "OPTIMIZE_PERFORMANCE"",
"frequencyCapDay" : 1,
"frequencyCapWeek" : 3,
"frequencyCapMonth" : 5,
"baseBid" : 0.1,
"maxBid" : 0.5, "targeting": { "and": [ { "and": [ { "behavioral": [ { "audienceType": "retail", "attribute": "historical", "id": 134 }, { "audienceType": "retail", "attribute": "historical", "id": 243234 } ] }, { "not": [ { "behavioral": [ { "audienceType": "retail" "attribute": "historical", "id": 2432345 } ] } ] } ] }, { "geoTargets": [ { "id": 123 }, { "id": 234 }, { "id": 235 } ] } ]
} }
]'

Sample Request 6: Update Ad Group with Audience Targeting (using Flattened Targeting Structure)

curl -X PUT \
'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 ' [ {
"campaignId": 1,
"advertiserId": 1,
"adGroupId": 13,
"name": "Ad group 1",
"startDate": "2023-12-01T12:00:00Z",
"endDate": "2023-12-09T12:00:00Z",
"rateType" : "cpm",
"budgetType" : "daily",
"dailyBudget": 500,
"deliverySpeed" : "evenly",
"creativeRotationMode": "OPTIMIZE_PERFORMANCE"",
"frequencyCapDay" : 1,
"frequencyCapWeek" : 3,
"frequencyCapMonth" : 5,
"baseBid" : 0.1,
"maxBid" : 0.5, "targeting": { "behavioral": { "include": [ { "audienceType": "retail", "attribute": "historical", "id": 134 }, { "audienceType": "retail", "attribute": "historical", "id": 234 } ], "exclude": [ { "audienceType": "retail", "attribute": "historical", "id": 123 }, { "audienceType": "retail", "attribute": "historical", "id": 111 } ] }, "geoTargets": { "include": [ { "id": 123 }, { "id": 234 } ] } }
}
]'

Sample Request 7: Update Ad Group with ROS Targeting (using Expression Targeting Structure)

curl -X POST \
'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 ' [ {
"campaignId": 1,
"advertiserId": 1,
"adGroupId": 14,
"name": "Ad group 1",
"startDate": "2023-12-01T12:00:00Z",
"endDate": "2023-12-09T12:00:00Z",
"rateType" : "cpm",
"budgetType" : "total",
"totalBudget": 5000,
"deliverySpeed" : "evenly",
"creativeRotationMode": "OPTIMIZE_PERFORMANCE"", "frequencyCapDay" : 1, "frequencyCapWeek" : 3, "frequencyCapMonth" : 5,
"baseBid" : 0.1,
"maxBid" : 0.5, "targeting": { "and": [ { "runOfSite": true }, { "geoTargets": [ { "zipCode": "35004" } ] } ] } }
]'

Sample Request 8: Update Ad Group with ROS Targeting (using Flattened Targeting Structure)


curl -X PUT \
'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 ' [ {
"campaignId": 1,
"advertiserId": 1,
"adGroupId": 14,
"name": "Ad group 1",
"startDate": "2023-12-01T12:00:00Z",
"endDate": "2023-12-09T12:00:00Z",
"rateType" : "cpm",
"budgetType" : "total",
"totalBudget": 5000,
"deliverySpeed" : "evenly",
"creativeRotationMode": "OPTIMIZE_PERFORMANCE"", "frequencyCapDay" : 1, "frequencyCapWeek" : 3, "frequencyCapMonth" : 5,
"baseBid" : 0.1,
"maxBid" : 0.5, "targeting": { "runOfSite": true, "geoTargets": { "include":[{ "zipCode": 35004 },{ "zipCode": 35003 }] } }
}
]'

Sample Request 9 - Update Multiple Ad Groups in a Single Call (Expression Targeting Structure)

curl -X POST \
'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 '[ { "campaignId": 1, "advertiserId": 1, "adGroupId": 11, "name": "Ad group 1", "startDate": "2023-12-01T12:00:00Z", "endDate": "2023-12-09T12:00:00Z", "rateType": "cpm", "budgetType": "daily", "dailyBudget": 500, "deliverySpeed": "evenly", "creativeRotationMode": "OPTIMIZE_PERFORMANCE", "frequencyCapDay": 1, "frequencyCapWeek": 3, "frequencyCapMonth": 5, "baseBid": 0.1, "maxBid": 0.5, "targeting": { "and": [ { "and": [ { "keywords": [ { "keywordText": "test-keyword-1", "matchType": "broad" }, { "keywordText": "test-keyword-2", "matchType": "broad" } ] }, { "not": [ { "keywords": [ { "keywordText": "test-keyword-3", "matchType": "exact" } ] } ] } ] }, { "geoTargets": [ { "id": 123 }, { "id": 234 }, { "id": 235 } ] } ] }
},
{ "campaignId": 1, "advertiserId": 1, "name": "Ad group 2", "adGroupId": 12, "startDate": "2023-12-01T12:00:00Z", "endDate": "2023-12-09T12:00:00Z", "rateType": "cpm", "budgetType": "daily", "dailyBudget": 500, "deliverySpeed": "evenly", "creativeRotationMode": "OPTIMIZE_PERFORMANCE", "frequencyCapDay": 1, "frequencyCapWeek": 3, "frequencyCapMonth": 5, "baseBid": 0.1, "maxBid": 0.5, "targeting": { "and": [ { "contextual": [ { "id": 3452, "reach": "tier_2" }, { "id": 2343, "reach": "tier_3" } ] }, { "geoTargets": [ { "zipCode": "35004" } ] } ] }
} ]'

Sample Request 10 - Update Multiple Ad Groups in a Single Call (Flattened Targeting Structure)

curl -X PUT \
'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 '[ { "campaignId": 1, "advertiserId": 1, "adGroupId": 11, "name": "Ad group 1", "startDate": "2023-12-01T12:00:00Z", "endDate": "2023-12-09T12:00:00Z", "rateType": "cpm", "budgetType": "daily", "dailyBudget": 500, "deliverySpeed": "evenly", "creativeRotationMode": "OPTIMIZE_PERFORMANCE", "frequencyCapDay": 1, "frequencyCapWeek": 3, "frequencyCapMonth": 5, "baseBid": 0.1, "maxBid": 0.5, "targeting": { "keywords": { "include": [ { "matchType": "BROAD", "keywordText": "running shoes" }, { "matchType": "PHRASE", "keywordText": "trail sneakers" } ], "exclude": [ { "matchType": "EXACT", "keywordText": "free shoes" }, { "matchType": "EXACT", "keywordText": "sandals" } ] }, "geoTargets": { "include": [ { "id": 123 }, { "id": 234 } ] } } },
{ "campaignId": 1, "advertiserId": 1, "name": "Ad group 2", "adGroupId": 12, "startDate": "2023-12-01T12:00:00Z", "endDate": "2023-12-09T12:00:00Z", "rateType": "cpm", "budgetType": "daily", "dailyBudget": 500, "deliverySpeed": "evenly", "creativeRotationMode": "OPTIMIZE_PERFORMANCE", "frequencyCapDay": 1, "frequencyCapWeek": 3, "frequencyCapMonth": 5, "baseBid": 0.1, "maxBid": 0.5, "targeting": { "contextual": { "include": [ { "id": 3452, "reach": "tier_2" }, { "id": 3451, "reach": "tier_1" } ] } }, "geoTargets": { "include": [ { "id": 123 }, { "id": 234 } ] } } } ]'

Response

ElementDescriptionType
codeThe response code can have following values:
  • success
  • failure

Click here for more information about Status Codes and Errors
string
detailsDetails will populate success or error message depending upon value of codestring
adGroupIdID of the Ad Group being updatedinteger

Sample Response 1 Success - Update Ad Group with Keyword Targeting (Expression based Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 11 }
]

Sample Response 1 Failure - Update Ad Group with Keyword Targeting (Expression based Targeting Structure)

[ { "code": "failure", "details": "string", "adGroupId": 11 }
]

Sample Response 2 Success - Update Ad Group with Keyword Targeting (using Flattened Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 11 }
]

Sample Response 2 Failure - Update Ad Group with Keyword Targeting (using Flattened Targeting Structure)

[ { "code": "failure", "details": "string", "adGroupId": 11 }
]

Sample Response 3 Success - Update Ad Group with Contextual Targeting (using Expression Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 12 }
]

Sample Response 3 Failure - Update Ad Group with Contextual Targeting (using Expression Targeting Structure)

[ { "code": "failure", "details": "string", "adGroupId": 12 }
]

Sample Response 4 Success - Update Ad Group with Contextual Targeting (using Flattened Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 12 }
]

Sample Response 4 Failure - Update Ad Group with Contextual Targeting (using Flattened Targeting Structure)

[ { "code": "failure", "details": "string", "adGroupId": 12 }
]

Sample Response 5 Success - Update Ad Group with Audience Targeting (using Expression Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 13 }
]

Sample Response 5 Failure - Update Ad Group with Audience Targeting (using Expression Targeting Structure)

[ { "code": "failure", "details": "string", "adGroupId": 13 }
]

Sample Response 6 Success - Update Ad Group with Audience Targeting (using Flattened Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 13 }
]

Sample Response 6 Failure - Update Ad Group with Audience Targeting (using Flattened Targeting Structure)

[ { "code": "failure", "details": "string", "adGroupId": 13 }
]

Sample Response 7 Success - Update Ad Group with ROS Targeting (using Expression Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 14 }
]

Sample Response 7 Failure - Update Ad Group with ROS Targeting (using Expression Targeting Structure)

[ { "code": "failure", "details": "string", "adGroupId": 14 }
]

Sample Response 8 Success - Update Ad Group with ROS Targeting (using Flattened Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 14 }
]

Sample Response 8 Failure - Update Ad Group with ROS Targeting (using Flattened Targeting Structure)

[ { "code": "failure", "details": "string", "adGroupId": 14 }
]

Sample Response 9 Success - Update Multiple Ad Groups in a Single Call (Expression Targeting Structure)


[ { "code": "success", "details": "string", "adGroupId": 11 }, { "code": "success", "details": "string", "adGroupId": 12 } ]

Sample Response 9 Failure - Update Multiple Ad Groups in a Single Call(using Expression Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 11 }, { "code": "failure", "details": ["string"], "adGroupId": 12 } ]

Sample Response 10 Success - Update Multiple Ad Groups in a Single Call (Flattened Targeting Structure)


[ { "code": "success", "details": "string", "adGroupId": 11 }, { "code": "success", "details": "string", "adGroupId": 12 } ]

Sample Response 10 Failure - Update Multiple Ad Groups in a Single Call (Flattened Targeting Structure)

[ { "code": "success", "details": "string", "adGroupId": 11 }, { "code": "failure", "details": ["string"], "adGroupId": 12 } ]