Skip to main content
PUT
Update ad

Request contract

  • Method and path: PUT /apis/v1/ads/{adId}
  • Availability: enabled
  • Request URL template: https://api.aisa.one/apis/v1/ads/{adId}
  • adId: path; required
  • connectionId: query; required
  • X-Aisa-Confirm: header; optional
  • Runtime facts: fe60122939c67dc98a3a6ac6b97bd5c326b526105150c8959304dd2160d4dd09
Complete OpenAPI definition Effective request and pricing declaration (including authentication and referenced schemas):

Cost and request rules

A request reference price is not currently available; use a request quote where supported. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

X-Aisa-Confirm
enum<string>

Required with the value "spend" when the request can spend money or change spend. Without it the request is refused with 409 confirmation_required, which describes what would happen; nothing is sent to the ad platform.

Available options:
spend

Path Parameters

adId
string
required

Query Parameters

connectionId
string
required

The ads connection (adc_...) the request runs on: one of yours, from GET /apis/v1/ads/connections. On a request with a JSON body it may be sent as a top-level body member instead.

Pattern: ^adc_[0-9A-Za-z]+$

Body

application/json
assetGroup
object

Google Performance Max only. Replaces whole asset roles on the ad's asset group. Returns 422 on any other platform or channel.

budget
object
connectionId
string

The ads connection (adc_...), when not sent as the connectionId query parameter.

Pattern: ^adc_[0-9A-Za-z]+$
creative
object

Replace or patch the ad's creative. Meta, TikTok, and LinkedIn. Meta: patch-style. Pass any subset: omitted fields are preserved from the live creative, including media (image_hash/video_id reused, no re-upload) and url_tags.

demandGen
object

Google Demand Gen only. Returns 422 on any other platform or channel.

descriptions
object[]

Google Search and Display only. Replaces the complete description list. Search takes 2-4, Display 1-5 and rejects pinnedField. No padding or truncation on update.

Required array length: 1 - 5 elements
finalUrls
string<uri>[]

Google Search and Display only. Replaces final URLs. Omitted lists stay unchanged. For Performance Max use assetGroup.finalUrl.

Minimum array length: 1
headlines
object[]

Google Search and Display only. Replaces the complete headline list. Search takes 3-15, Display 1-5 and rejects pinnedField; the count is checked once the ad's channel is known. No padding or truncation on update.

Required array length: 1 - 15 elements
name
string

Rename the ad. Now propagated to Meta (POST /{ad-id}); non-Meta platforms return 501.

Maximum string length: 255
status
enum<string>
Available options:
active,
paused
targeting
object

Targeting update. Meta + TikTok: demographics/interests. Google: keyword and device bid adjustment edits only. LinkedIn: locations, B2B facets, audiences. Pinterest / X: return 501.

Response

Ad updated

ad
object
message
string