PUT /v3/advertiser → advertiserUpdate

Overview

Property Value
REST endpoint PUT /v3/advertiser
GraphQL operation advertiserUpdate
Input type AdvertiserUpdateInput
Output type AdvertiserUpdatePayload (data: Advertiser, errors: [AdvertiserUpdateMutationError!])

Multi-step operations

PUT /v3/advertiser accepts inline bid lists, frequency configs, political profiles, and brands on a single REST body. advertiserUpdate covers core advertiser fields only—not a 1:1 mirror of the REST body.

REST-only or non-inline behavior GraphQL target
advertiserId id (ID!) on AdvertiserUpdateInput
partnerId Not on update input; read via Advertiser.partnerId
currencyCode Create-only
associatedBidLists / defaultBidLists Create-only
increments Writable on AdvertiserUpdateInput.increments ([String!])
newFrequencyConfigs Create-only
useLegacyAdditionalFees Create-only
candidateProfiles, isBallotMeasure, isCandidateElection, isIndependentExpenditure Create-only
brands Create-only
customLabels[].customLabelId customLabels: [String!]—replaces the full label list by name
advertiserCategory / industryCategoryId advertiserCategoryInput.categoryId when updating category
advertiserAudienceSettings Partially covered by dataSettings on update input (different shape)
keywords, logoUrl, DSA fields Create-only

Inside REST associatedBidLists input, do not send read-only response fields: bidListSource, bidListAdjustmentType, bidListDimensions.

Input field mapping

Input type: AdvertiserUpdateInput

REST field GraphQL field GraphQL type Required Notes
AdvertiserId id ID! Required REST AdvertiserId → GraphQL id
PartnerId N/A N/A Optional Create-only
AdvertiserName name String Optional REST AdvertiserName → GraphQL name
Description description String Optional N/A
CurrencyCode N/A N/A Optional Create-only
AttributionClickLookbackWindowInSeconds attributionClickLookbackWindowInSeconds Int Optional N/A
AttributionImpressionLookbackWindowInSeconds attributionImpressionLookbackWindowInSeconds Int Optional N/A
ClickDedupWindowInSeconds clickDedupeWindowInSeconds Int Optional REST ClickDedup → GraphQL clickDedupe
ConversionDedupWindowInSeconds conversionDedupeWindowInSeconds Int Optional REST ConversionDedup → GraphQL conversionDedupe
DefaultRightMediaOfferTypeId defaultRightMediaOfferTypeId Long Optional N/A
IndustryCategoryId N/A N/A Optional Deprecated on REST—use advertiserCategoryInput
AdvertiserCategory advertiserCategoryInput AdvertiserCategoryInput Optional See nested table
AdvertiserCategory.CategoryId advertiserCategoryInput.categoryId Long! Required Required when advertiserCategoryInput is provided
Keywords N/A N/A Optional Create-only
LogoURL N/A N/A Optional Create-only
DomainAddress domainAddress String Optional N/A
CustomLabels customLabels [String!] Optional Replaces entire label list by name
CustomLabels[].CustomLabelId N/A N/A Optional REST label IDs do not map 1:1; supply names in customLabels
AssociatedBidLists N/A N/A Optional Use advertiserAssociateBidList
DefaultBidLists N/A N/A Optional Use advertiserAssociateBidList
IgnoreReferralUrlInConversion N/A N/A Optional Create-only
IsBallotMeasure N/A N/A Optional Create-only
IsCandidateElection N/A N/A Optional Create-only
IsIndependentExpenditure N/A N/A Optional Create-only
CandidateProfiles N/A N/A Optional Not inline on update; see nested table
Increments increments [String!] Optional Replaces complete list; pass empty array or null to remove all incrementors
NewFrequencyConfigs N/A N/A Optional Configure frequency configs separately
IndustryCategoryTaxonomyId N/A N/A Optional Read-only
IndustryCategoryMapping N/A N/A Optional Read-only
AdvertiserNameDsa N/A N/A Optional Create-only
PayerNameDsa N/A N/A Optional Create-only
AdvertiserAudienceSettings dataSettings AdvertiserDataSettingsUpdateInput Optional Different GraphQL shape; partial overlap only
Country country String Optional ISO 3166-1 alpha-2
IsHecAutoExempt isHecAutoExempt Boolean Optional N/A
Availability N/A N/A Optional Create-only
IsDimensionalBiddingModeSupported N/A N/A Optional Read-only; not in input types
VettingStatus N/A N/A Optional Create-only

GraphQL-only input fields (no REST equivalent on `PUT /v3/advertiser`)

GraphQL field GraphQL type Description
audienceUnlimitedSubscription AdvertiserAudienceUnlimitedSubscriptionInput
defaultAttributionSetting AdvertiserAttributionDefaultSettingUpdateInput
defaultOptimizationSettings AdvertiserAttributionDefaultOptimizationUpdateInput
defaultTrackingTags AdvertiserAttributionDefaultTrackingTagUpdateInput

Output field mapping

Output type: Advertiser (returned as data on AdvertiserUpdatePayload)

REST response field GraphQL field GraphQL type Nullable Notes
PartnerId partner.id String! Not nullable N/A
AdvertiserId id ID! Not nullable N/A
AdvertiserName name String! Not nullable N/A
Description description String Nullable N/A
CurrencyCode currency.id ID! Not nullable Nested Currency; id is ISO 4217 code
AttributionClickLookbackWindowInSeconds attributionClickLookbackWindowInSeconds Int Nullable Also under attribution.clickLookbackWindow
AttributionImpressionLookbackWindowInSeconds attributionImpressionLookbackWindowInSeconds Int Nullable Also under attribution.impressionLookbackWindow
ClickDedupWindowInSeconds clickDedupeWindowInSeconds Int! Not nullable N/A
ConversionDedupWindowInSeconds conversionDeDupeWindowInSeconds Int! Not nullable GraphQL spelling DeDupe
DefaultRightMediaOfferTypeId defaultRightMediaOfferTypeId Long Nullable N/A
IndustryCategoryId industryCategory.id ID Nullable Deprecated on REST
AdvertiserCategory industryCategory IndustryCategory! Not nullable N/A
Keywords keywords [String!]! Not nullable N/A
Availability N/A N/A N/A Not currently available in GraphQL
LogoURL logo String! Not nullable N/A
DomainAddress domainAddress String Nullable N/A
CustomLabels customLabels CustomLabelsConnection Nullable Paginated connection
IsDimensionalBiddingModeSupported N/A N/A N/A Not currently available in GraphQL
AssociatedBidLists associatedBidLists AssociatedBidListsConnection Nullable Paginated
DefaultBidLists defaultBidLists DefaultBidListsConnection Nullable Paginated
IgnoreReferralUrlInConversion ignoreReferralUrlInConversion Boolean! Not nullable N/A
IsBallotMeasure political.isBallotMeasure Boolean! Not nullable N/A
IsCandidateElection political.isCandidateElection Boolean! Not nullable N/A
IsIndependentExpenditure political.isIndependentExpenditure Boolean! Not nullable N/A
CandidateProfiles political.candidateProfiles [PoliticalData!]! Not nullable See nested table
VettingStatus vettingStatus AdvertiserVettingStatus! Not nullable Read-only
Increments increments [String!]! Not nullable N/A
NewFrequencyConfigs frequencyConfigs FrequencyConfigsConnection Nullable Connection, not inline list
IndustryCategoryTaxonomyId industryCategory.taxonomy.id ID! Not nullable Read-only
IndustryCategoryMapping industryCategory.mappings [CategoryMapping!] Nullable Read-only
AdvertiserNameDsa nameDSA String Nullable N/A
PayerNameDsa payerNameDSA String Nullable N/A
AdvertiserAudienceSettings audienceSettings AdvertiserAudienceSettings! Not nullable N/A
Country country Country Nullable Object, not ISO string
IsHecAutoExempt isHecAutoExempt Boolean Nullable N/A

Endpoint-specific nested types and enums

AdvertiserCategoryInput

Optional on advertiserUpdate (required categoryId when provided).

REST field GraphQL field GraphQL type Required Notes
AdvertiserCategory.CategoryId categoryId Long! Required Only writable field

CandidateProfile—REST input (no GraphQL inline equivalent)

REST CandidateProfiles[] is writable on PUT /v3/advertiser but is not accepted on AdvertiserUpdateInput.

REST field GraphQL field GraphQL type Required Notes
PoliticalDataId N/A N/A Optional Maps to political.candidateProfiles[].id on read
CandidateName N/A N/A N/A Create-only
ElectionState N/A N/A Optional Create-only
PayingEntityName N/A N/A N/A Create-only
PayingEntityAddress N/A N/A N/A Create-only
PayingEntityEmailAddress N/A N/A Optional Create-only
PayingEntityExecutiveName N/A N/A N/A Create-only
PayingEntityExecutiveTitle N/A N/A N/A Create-only
GeoDescription N/A N/A Optional Create-only
AudienceDescription N/A N/A Optional Create-only
DisclaimerNotice N/A N/A Optional Create-only
IsAdvertiserIEC N/A N/A Optional Create-only
FileLocationInS3 N/A N/A Optional Create-only
FederalVerificationId N/A N/A Optional Create-only
StateVerificationId N/A N/A Optional Create-only
OtherStateElectionId N/A N/A Optional Create-only

CandidateProfile—REST response on `Advertiser`

REST field GraphQL field GraphQL type Nullable Notes
PoliticalDataId political.candidateProfiles[].id ID! Not nullable N/A
CandidateName political.candidateProfiles[].candidateName String! Not nullable N/A
ElectionState political.candidateProfiles[].electionStateName String Nullable REST enum → GraphQL state name
PayingEntityName political.candidateProfiles[].payingEntityName String! Not nullable N/A
PayingEntityAddress political.candidateProfiles[].payingEntityAddress String! Not nullable N/A
PayingEntityExecutiveName political.candidateProfiles[].payingEntityExecutiveName String! Not nullable N/A
PayingEntityExecutiveTitle political.candidateProfiles[].payingEntityExecutiveTitle String! Not nullable N/A
FederalVerificationId political.candidateProfiles[].verificationFormId String Nullable When verificationFormIdType is federal
StateVerificationId political.candidateProfiles[].verificationFormId String Nullable When verificationFormIdType is state/EIN
PayingEntityEmailAddress N/A N/A N/A Not exposed on PoliticalData
GeoDescription N/A N/A N/A Not exposed on PoliticalData
AudienceDescription N/A N/A N/A Not exposed on PoliticalData
DisclaimerNotice N/A N/A N/A Not exposed on PoliticalData
IsAdvertiserIEC N/A N/A N/A Use political.isIndependentExpenditure at advertiser level
FileLocationInS3 N/A N/A N/A Not exposed on PoliticalData
OtherStateElectionId N/A N/A N/A Not exposed on PoliticalData

Brand—REST input (no GraphQL inline equivalent)

REST Brands[] is writable on PUT /v3/advertiser but is not accepted on AdvertiserUpdateInput.

REST field GraphQL field GraphQL type Required Notes
BrandOwner N/A N/A N/A Create-only
BrandName N/A N/A N/A Create-only

Brand—REST response on `Advertiser`

REST field GraphQL field GraphQL type Nullable Notes
BrandOwner assignedBrands[].owner String! Not nullable Also surfaced as brandOwner on advertiser
BrandName assignedBrands[].name String! Not nullable N/A
N/A assignedBrands[].id ID! Not nullable GraphQL-only brand identifier

Code examples

REST example

PUT /v3/advertiser HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER

{
  "AdvertiserId": "adv-999",
  "AdvertiserName": "Updated Advertiser",
  "DomainAddress": "https://updated-example.com"
}

GraphQL example

POST /graphql HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER
mutation UpdateAdvertiser($input: AdvertiserUpdateInput!) {
  advertiserUpdate(input: $input) {
    data {
      id
      name
      domainAddress
    }
    errors {
      ... on AdvertiserValidationError {
        message
        field
      }
    }
  }
}

Variables:

{
  "input": {
    "id": "adv-999",
    "name": "Updated Advertiser",
    "domainAddress": "https://updated-example.com"
  }
}

REST-inline fields such as associatedBidLists, candidateProfiles, and brands are not inputs on AdvertiserUpdateInput. Use advertiserAssociateBidList and other dedicated mutations when REST parity is required.