POST /v3/adgroup → adGroupCreate
Overview
| Property |
Value |
| REST endpoint |
POST /v3/adgroup |
| GraphQL operation |
adGroupCreate |
| Input type |
AdGroupCreateInput |
| Output type |
PayloadWithErrorsOfAdGroup (data: AdGroup, userErrors: [UserError!]!) |
Multi-step operations
| REST-only behavior |
GraphQL target |
AssociatedBidLists, NewBidLists on create |
bidListCreate + adGroupAssociateBidList or adGroupAssociateBidListBatch after create |
Full RTBAttributes nested tree (budget flights, audience targeting, dimensional bidding, site quality, etc.) |
Partial overlap (baseBidCPMInAdvertiserCurrency, maxBidCPMInAdvertiserCurrency, roiGoal, nielsenSettings, comscoreSettings, koaOptimizationSettings, cookielessTargetingUserSettingEnabled, supplyVendorDeclaredViewabilityBidType, miaozhenSettings); remaining RTB settings require other GraphQL updates or remain REST-only |
IncludeDefaultsFromCampaign, Availability |
Not currently available in GraphQL |
Input field mapping
Input type: AdGroupCreateInput
| REST field |
GraphQL field |
GraphQL type |
Required |
Notes |
CampaignId |
campaignId |
ID! |
Required |
Required on create |
AdGroupName |
name |
String! |
Required |
N/A |
Description |
description |
String |
Optional |
N/A |
IsEnabled |
isEnabled |
Boolean |
Optional |
Defaults to disabled if omitted on REST; same on GraphQL when omitted |
IsHighFillRate |
N/A |
N/A |
Optional |
High-fill create is indicated by setting programmaticGuaranteedPrivateContractId |
IndustryCategoryId |
industryCategoryId |
Long |
Optional |
Deprecated on REST—use AdGroupCategory.CategoryId |
AdGroupCategory |
industryCategoryId |
Long |
Optional |
Map CategoryId when present |
AdGroupCategory.CategoryId |
industryCategoryId |
Long |
Optional |
Nested category ID |
RTBAttributes |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
RTBAttributes.BaseBidCPM |
baseBidCPMInAdvertiserCurrency |
Decimal |
Optional |
REST money amount maps to advertiser-currency decimal |
RTBAttributes.MaxBidCPM |
maxBidCPMInAdvertiserCurrency |
Decimal |
Optional |
REST money amount maps to advertiser-currency decimal |
RTBAttributes.ROIGoal |
roiGoal |
AdGroupCreateROIGoalInput |
Optional |
GraphQL ROI goal input shape |
RTBAttributes.NielsenSettings |
nielsenSettings |
NielsenSettingsCreateInput |
Optional |
N/A |
RTBAttributes.ComscoreSettings |
comscoreSettings |
ComscoreSettingsInput |
Optional |
N/A |
RTBAttributes.IsUseClicksAsConversionsEnabled |
isUseClicksAsConversionsEnabled |
Boolean |
Optional |
N/A |
RTBAttributes.IsUseSecondaryConversionsEnabled |
isUseSecondaryConversionsEnabled |
Boolean |
Optional |
N/A |
RTBAttributes.KoaOptimizationSettings |
koaOptimizationSettings |
AdGroupCreateKoaOptimizationSettingsInput |
Optional |
N/A |
HighFillAttributes |
programmaticGuaranteedPrivateContractId |
String |
Optional |
Set from HighFillAttributes.GuaranteedPrivateContractId for PG create |
HighFillAttributes.GuaranteedPrivateContractId |
programmaticGuaranteedPrivateContractId |
String |
Optional |
Programmatic guaranteed (high-fill) ad group |
IsBuildInProgress |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
MerchantInformation |
N/A |
N/A |
Optional |
Deprecated on REST |
SmbAttributionInformation |
N/A |
N/A |
Optional |
Deprecated on REST |
UseIdentityAlliance |
N/A |
N/A |
Optional |
Deprecated on REST; use cross-device settings on audience updates |
Availability |
N/A |
N/A |
Optional |
Create: REST allows only Available; no GraphQL input |
AssociatedBidLists |
N/A |
N/A |
Optional |
Use adGroupAssociateBidList / batch after create |
IncludeDefaultsFromCampaign |
N/A |
N/A |
Optional |
Create-only |
NewBidLists |
N/A |
N/A |
Optional |
Use bidListCreate + association mutations |
CustomLabels |
customLabels |
[String!] |
Optional |
GraphQL accepts label names, not full assigned-label objects |
AreFutureKoaFeaturesEnabled |
koaOptimizationSettings.areFutureKoaFeaturesEnabled |
Boolean |
Optional |
Deprecated—no longer actionable |
FunnelLocation |
funnelLocation |
AdGroupFunnelLocationType! |
Required |
Required on GraphQL create |
PredictiveClearingEnabled |
predictiveClearingEnabled |
Boolean |
Optional |
N/A |
BidderServiceId |
bidderServiceId |
String |
Optional |
Custom bidder service ID |
Increments |
increments |
[ID!] |
Optional |
Frequency counter IDs |
NewFrequencyConfigs |
newFrequencyConfigs |
[AdGroupNewFrequencyConfigInput!] |
Optional |
Creates counters and increments them on this ad group; see nested table |
ChannelId |
channel |
AdGroupChannelType! |
Required |
Required on GraphQL create |
EnabledValueAddedProviderIds |
enabledValueAddedProviderIds |
[ID!] |
Optional |
N/A |
MarketplaceOptOut |
marketType |
MarketType |
Optional |
REST opt-out maps to GraphQL marketplace selection (marketType) |
AdBrainHouseholdCrossDeviceEnabled |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
IndustryCategoryTaxonomyId |
N/A |
N/A |
Optional |
Category taxonomy is resolved via industryCategoryId / read-side industryCategory |
IndustryCategoryMapping |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
GraphQL-only input fields (no REST equivalent)
| GraphQL field |
GraphQL type |
Description |
isNewsNavigatorEnabled |
Boolean |
|
isQualityAllianceSuiteEnabled |
Boolean |
|
qualityAllianceViewabilityProfile |
QualityAllianceViewabilityProfileTypeInput |
|
displayViewabilityStandardIntegralType |
ViewabilityStandardTypeInput |
|
videoViewabilityStandardIntegral |
ViewabilityStandardTypeInput |
|
valueAddedProviders |
[ValueAddedProvider!] |
Deprecated—use enabledValueAddedProviderIds |
advertiserId |
ID |
Deprecated—does not do anything |
advertiserDomainOverride |
String |
Advertiser domain address including http:// or https:// |
callerSource |
String |
Leave unset unless you know that you require this |
Output field mapping
Output type: AdGroup (returned as data on PayloadWithErrorsOfAdGroup)
| REST response field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
AdGroupId |
id |
ID! |
Not nullable |
Assigned by the platform on create |
CampaignId |
campaign.id |
ID! |
Not nullable |
N/A |
AdGroupName |
name |
String! |
Not nullable |
N/A |
Description |
description |
String |
Nullable |
N/A |
IsEnabled |
isEnabled |
Boolean! |
Not nullable |
N/A |
IsHighFillRate |
isHighFillRate |
Boolean! |
Not nullable |
Also exposed as isProgrammaticGuaranteed |
IndustryCategoryId |
industryCategoryId |
ID |
Nullable |
N/A |
AdGroupCategory |
industryCategory |
IndustryCategory |
Nullable |
Nested category object |
RTBAttributes |
N/A |
N/A |
N/A |
GraphQL exposes budget, bids, and settings across multiple AdGroup fields—not a single RTBAttributes object |
HighFillAttributes |
N/A |
N/A |
N/A |
PG contract surfaced via isProgrammaticGuaranteed and related fields |
AssociatedBidLists |
associatedBidLists |
AdGroupAssociatedBidListsConnection |
Nullable |
Connection—use nodes { … } |
CreatedAtUTC |
createdAt |
DateTime! |
Not nullable |
Read-only |
IsBuildInProgress |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
ChannelId |
channel |
AdGroupChannelType! |
Not nullable |
N/A |
FunnelLocation |
funnelLocation |
AdGroupFunnelLocationType! |
Not nullable |
N/A |
PredictiveClearingEnabled |
predictiveClearingEnabled |
Boolean! |
Not nullable |
N/A |
CustomLabels |
customLabels |
CustomLabelsConnection |
Nullable |
Connection on AdGroup |
MarketplaceOptOut |
marketType |
MarketType! |
Not nullable |
REST boolean opt-out maps to GraphQL marketplace type |
Availability |
status |
AdGroupStatus! |
Not nullable |
REST Availability enum → status |
LastUpdatedAtUTC |
lastUpdated |
DateTime! |
Not nullable |
Read-only; REST field deprecated |
AvailableRecommendations |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AreFutureKoaFeaturesEnabled |
koaSettings.areFutureFeaturesEnabled |
Boolean! |
Not nullable |
N/A |
UseIdentityAlliance |
N/A |
N/A |
N/A |
Deprecated on REST |
CurrentAndFutureAdditionalFeeCards |
N/A |
N/A |
N/A |
Read-only |
AdBrainHouseholdCrossDeviceEnabled |
N/A |
N/A |
N/A |
Deprecated on REST |
BidderServiceId |
Query.bidderService(id:) |
BidderService |
N/A |
Remodelled in GraphQL |
Increments |
N/A |
N/A |
N/A |
Write-only |
NewFrequencyConfigs |
frequencyConfigs |
AdGroupFrequencyConfigsConnection |
Nullable |
Echoed in create response only when included in request |
EnabledValueAddedProviders |
enabledValueAddedProviders |
[ValueAddedProviderInfo!]! |
Not nullable |
Deprecated on REST |
EnabledValueAddedProviderIds |
enabledValueAddedProviders[].id |
ID! |
Not nullable |
Derive IDs from nested enabledValueAddedProviders |
IndustryCategoryTaxonomyId |
industryCategory.taxonomy.id |
ID! |
Not nullable |
Use industryCategory.taxonomy.id instead |
IndustryCategoryMapping |
N/A |
N/A |
N/A |
Use industryCategory.mappings instead |
MerchantInformation |
N/A |
N/A |
N/A |
Deprecated on REST |
SmbAttributionInformation |
N/A |
N/A |
N/A |
Deprecated on REST |
NewBidLists |
N/A |
N/A |
N/A |
Input-only on create; use bid-list mutations |
Endpoint-specific nested types and enums
AdGroupCreateROIGoalInput (create and update ROI goal)
REST field (under RTBAttributes.ROIGoal) |
GraphQL field |
GraphQL type |
Required |
Notes |
MaximizeReach |
maximizeReach |
Boolean |
Optional |
Mutually exclusive goal metrics—only one property per request |
MaximizeLtvIncrementalReach |
maximizeLtvIncrementalReach |
Boolean |
Optional |
N/A |
CPCInAdvertiserCurrency.Amount |
cpcInAdvertiserCurrency |
Decimal |
Optional |
REST Money amount → decimal |
CTRInPercent |
ctrInPercent |
Decimal |
Optional |
N/A |
NielsenOTPInPercent |
nielsenOTPInPercent |
Decimal |
Optional |
N/A |
CPAInAdvertiserCurrency.Amount |
cpaInAdvertiserCurrency |
Decimal |
Optional |
REST Money amount → decimal |
MaximizeConversionRevenue |
N/A |
N/A |
Optional |
Deprecated on REST—use returnOnAdSpendPercent |
ReturnOnAdSpendPercent |
returnOnAdSpendPercent |
Decimal |
Optional |
N/A |
VCRInPercent |
vcrInPercent |
Decimal |
Optional |
N/A |
ViewabilityInPercent |
viewabilityInPercent |
Decimal |
Optional |
N/A |
VCPMInAdvertiserCurrency.Amount |
vcpmInAdvertiserCurrency |
Decimal |
Optional |
REST Money amount → decimal |
CPCVInAdvertiserCurrency.Amount |
cpcvInAdvertiserCurrency |
Decimal |
Optional |
REST Money amount → decimal |
MiaozhenOTPInPercent |
miaozhenOTPInPercent |
Decimal |
Optional |
N/A |
NewBuyerTargetValue |
newBuyerTargetValue |
Int |
Optional |
REST enum → GraphQL int (0 Featured, 1 Total) |
NielsenSettingsCreateInput (create)
REST field (under RTBAttributes.NielsenSettings) |
GraphQL field |
GraphQL type |
Required |
Notes |
Fee |
N/A |
N/A |
N/A |
Read-only |
NielsenTrackingAttributes |
N/A |
N/A |
Optional |
Parent object on REST |
NielsenTrackingAttributes.Gender |
genderInput |
TargetingGenderInput |
Optional |
N/A |
NielsenTrackingAttributes.StartAge |
startAgeInput |
TargetingStartAgeInput |
Optional |
N/A |
NielsenTrackingAttributes.EndAge |
endAgeInput |
TargetingEndAgeInput |
Optional |
N/A |
NielsenTrackingAttributes.Countries |
countries |
[String!] |
Optional |
N/A |
NielsenTrackingAttributes.EnhancedReportingOption |
enhancedNielsenReportingOptionsInput |
EnhancedNielsenReportingOptionsInput |
Optional |
N/A |
NielsenTrackingAttributes.LinearTvTrackingBrandCode |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
| (enable flag) |
isEnabled |
Boolean! |
Required |
Required when nielsenSettings object is supplied |
NielsenSettingsUpdateInput (update)
REST field (under RTBAttributes.NielsenSettings) |
GraphQL field |
GraphQL type |
Required |
Notes |
Fee |
N/A |
N/A |
N/A |
Create-only |
NielsenTrackingAttributes.Gender |
genderInput |
TargetingGenderInput |
Optional |
N/A |
NielsenTrackingAttributes.StartAge |
startAgeInput |
TargetingStartAgeInput |
Optional |
N/A |
NielsenTrackingAttributes.EndAge |
endAgeInput |
TargetingEndAgeInput |
Optional |
N/A |
NielsenTrackingAttributes.Countries |
countries |
[String!] |
Optional |
N/A |
NielsenTrackingAttributes.EnhancedReportingOption |
enhancedNielsenReportingOptionsInput |
EnhancedNielsenReportingOptionsInput |
Optional |
N/A |
NielsenTrackingAttributes.LinearTvTrackingBrandCode |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
| (enable flag) |
isEnabled |
Boolean |
Optional |
N/A |
ComscoreSettingsInput (create and update)
REST field (under RTBAttributes.ComscoreSettings) |
GraphQL field |
GraphQL type |
Required |
Notes |
Fee |
N/A |
N/A |
N/A |
Read-only |
Enabled |
enableComscoreTracking |
Boolean! |
Required |
Required when comscoreSettings object is supplied |
PopulationId |
populationId |
Int! |
Required |
Required when Comscore tracking is enabled |
DemographicMemberIds |
desktopDemographicMembers |
[Int!]! |
Required |
REST desktop demo IDs |
MobileDemographicMemberIds |
mobileDemographicMembers |
[Int!]! |
Required |
REST mobile demo IDs |
AdGroupCreateKoaOptimizationSettingsInput (create)
REST field (under RTBAttributes.KoaOptimizationSettings) |
GraphQL field |
GraphQL type |
Required |
Notes |
IsEnabled |
isEnabled |
Boolean |
Optional |
N/A |
OptionalDimensions |
optionalDimensions |
[KoaOptionalDimensionDescriptor!] |
Optional |
Solimar optional dimensions (HasAdFormatId, HasGeoSegmentId) |
KoaDimensions |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
KpiOverBudgetEnabled |
kpiOverBudgetEnabled |
Boolean |
Optional |
Requires isEnabled: true when supplied |
IsBiddingUpEnabled |
isBiddingUpEnabled |
Boolean |
Optional |
N/A |
ClickOnlyRoasEnabled |
clickOnlyRoasEnabled |
Boolean |
Optional |
Requires isEnabled: true when supplied |
AreFutureKoaFeaturesEnabled (top-level) |
areFutureKoaFeaturesEnabled |
Boolean |
Optional |
Also available on this nested input; deprecated—no longer actionable |
AdGroupNewFrequencyConfigInput (create)
REST field (under NewFrequencyConfigs[]) |
GraphQL field |
GraphQL type |
Required |
Notes |
CounterName |
counterName |
String! |
Required |
Alphanumeric and whitespace only |
FrequencyCap |
frequencyCap |
Int |
Optional |
Must be greater than 0 when set |
FrequencyGoal |
frequencyGoal |
Int |
Optional |
Must be greater than 0; cannot exceed frequencyCap; requires resetIntervalInMinutes ≥ 1440 |
ResetIntervalInMinutes |
resetIntervalInMinutes |
Int! |
Required |
Must be at least 1 |
CounterId |
N/A |
N/A |
Optional |
Ignored on REST create; GraphQL always creates a new counter |
OwnedByPartner |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
AdGroupMiaozhenSettingsInput (create and update)
REST nests these under MiaozhenSettings.MiaozhenTrackingAttributes. GraphQL flattens them onto miaozhenSettings. China-signed partners with an advertiser corporation ID only. On update, pass null to disable Miaozhen tracking.
REST field (under RTBAttributes.MiaozhenSettings.MiaozhenTrackingAttributes) |
GraphQL field |
GraphQL type |
Required |
Notes |
MiaozhenTrackingEnabled |
miaozhenTrackingEnabled |
Boolean! |
Required |
Required when miaozhenSettings is supplied |
MiaozhenMonitoringProduct |
monitoringProduct |
MiaozhenMonitoringProductInput! |
Required |
N/A |
Gender |
gender |
MiaozhenTargetingGenderInput! |
Required |
N/A |
StartAge |
startAge |
MiaozhenTargetingStartAgeInput! |
Required |
Must not exceed endAge |
EndAge |
endAge |
MiaozhenTargetingEndAgeInput! |
Required |
N/A |
MiaozhenTargetingType |
targetingType |
MiaozhenTargetingTypeInput! |
Required |
N/A |
MiaozhenReportingMarket |
reportingMarket |
MiaozhenReportingMarketInput! |
Required |
N/A |
Fee (on MiaozhenSettings) |
N/A |
N/A |
N/A |
Read-only |
AdGroupUpdateKoaOptimizationSettingsInput (update)
REST field (under RTBAttributes.KoaOptimizationSettings) |
GraphQL field |
GraphQL type |
Required |
Notes |
KoaOptimizationSettings |
koaOptimizationSettings |
AdGroupUpdateKoaOptimizationSettingsInput |
Optional |
Parent on AdGroupUpdateInput |
KoaOptimizationSettings.PredictiveClearingEnabled |
predictiveClearingEnabled |
Boolean |
Optional |
Only field on update Koa input; other Koa settings use top-level update fields |
AdGroupUpdateAudienceInput (update audience)
IMPORTANT: The audience input on adGroupUpdate is in open beta, enabled by default. Clients who opted out must wait for general availability or contact their Technical Account Manager for access.
REST field (under RTBAttributes.AudienceTargeting) |
GraphQL field |
GraphQL type |
Required |
Notes |
AudienceId |
audienceId |
ID |
Optional |
Omit or pass null to target everyone with non-trackable users |
RTBAttributes → direct children (create input)
REST field (under RTBAttributes) |
GraphQL field |
GraphQL type |
Required |
Notes |
BudgetSettings |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
BaseBidCPM |
baseBidCPMInAdvertiserCurrency |
Decimal |
Optional |
REST Money amount → decimal |
MaxBidCPM |
maxBidCPMInAdvertiserCurrency |
Decimal |
Optional |
REST Money amount → decimal |
AudienceTargeting |
N/A |
N/A |
Optional |
Create: no audience input—assign after create via update. Audience updates are in open beta; clients who opted out must wait for general availability or contact their TAM for access. See AdGroupUpdateAudienceInput. |
ROIGoal |
roiGoal |
AdGroupCreateROIGoalInput |
Optional |
See nested table |
FrequencySettings |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
CreativeIds |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
AdFormatAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
GeoSegmentAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
UserTimeTargeting |
N/A |
N/A |
Optional |
Use bid-list mutations |
SiteTargeting |
N/A |
N/A |
Optional |
Use bid-list mutations |
SupplyVendorAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
MobileCarrierAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
BrowserAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
OSFamilyAndVersionAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
DeviceTypeAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
DeviceMakeModelAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
RenderingContextAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
AdsTxtSellerTypeAdjustments |
N/A |
N/A |
Optional |
Use bid-list mutations |
AutoOptimizationSettings |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
IsUseClicksAsConversionsEnabled |
isUseClicksAsConversionsEnabled |
Boolean |
Optional |
N/A |
IsUseSecondaryConversionsEnabled |
isUseSecondaryConversionsEnabled |
Boolean |
Optional |
N/A |
DimensionalBiddingAutoOptimizationSettings |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
KoaOptimizationSettings |
koaOptimizationSettings |
AdGroupCreateKoaOptimizationSettingsInput |
Optional |
See nested table |
KoaOptimizationsVersion |
N/A |
N/A |
N/A |
Read-only |
KoaOptimizationsMinorVersion |
N/A |
N/A |
N/A |
Read-only |
CookielessTargetingUserSettingEnabled |
cookielessTargetingUserSettingEnabled |
Boolean |
Optional |
N/A |
ContractTargeting |
N/A |
N/A |
Optional |
Use bid-list mutations |
VideoTargeting |
N/A |
N/A |
Optional |
Use bid-list mutations |
SiteQualitySettings |
N/A |
N/A |
Optional |
Use bid-list / contextual entity mutations |
NielsenSettings |
nielsenSettings |
NielsenSettingsCreateInput |
Optional |
See nested table |
ComscoreSettings |
comscoreSettings |
ComscoreSettingsInput |
Optional |
See nested table |
LanguageTargeting |
N/A |
N/A |
Optional |
Use bid-list mutations |
LogisticRegressionBidCalculationSettings |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
QualityAllianceViewabilityTargeting |
N/A |
N/A |
Optional |
Use isQualityAllianceSuiteEnabled and bid-list mutations |
QualityAllianceVideoCompletionRateTargeting |
N/A |
N/A |
Optional |
Use bid-list mutations |
SupplyVendorDeclaredViewabilityTargeting |
supplyVendorDeclaredViewabilityBidType |
GuaranteedViewableBidTypeInput |
Optional |
REST nested GuaranteedViewableBidType flattens to this enum |
AdGroupLifetimeFrequencyCap |
N/A |
N/A |
Optional |
Create: not on AdGroupCreateInput; use adGroupUpdate |
MiaozhenSettings |
miaozhenSettings |
AdGroupMiaozhenSettingsInput |
Optional |
See nested table |
QualityAllianceViewabilityProfile |
qualityAllianceViewabilityProfile |
QualityAllianceViewabilityProfileTypeInput |
Optional |
N/A |
DisplayViewabilityStandardIntegral |
displayViewabilityStandardIntegralType |
ViewabilityStandardTypeInput |
Optional |
N/A |
VideoViewabilityStandardIntegral |
videoViewabilityStandardIntegral |
ViewabilityStandardTypeInput |
Optional |
N/A |
HighFillAttributes (create input)
REST field (under HighFillAttributes) |
GraphQL field |
GraphQL type |
Required |
Notes |
GuaranteedPrivateContractId |
programmaticGuaranteedPrivateContractId |
String |
Optional |
Programmatic guaranteed (high-fill) ad group |
BudgetSettings |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
BudgetSettings.Budget.Amount |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
BudgetSettings.BudgetInImpressions |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
BudgetSettings.DailyBudget.Amount |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
BudgetSettings.DailyBudgetInImpressions |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
BudgetSettings.AdGroupFlights[] |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
CreativeIds |
N/A |
N/A |
Optional |
Not currently available in GraphQL |
BaseBidCPM |
N/A |
N/A |
N/A |
Read-only; contract floor price |
MaxBidCPM |
N/A |
N/A |
N/A |
Read-only; contract floor price |
RTBAttributes → response fields (create/update response)
AdGroup flattens RTB data to top-level fields and connections—there is no rTBAttributes parent on the response. See nested tables below for leaf mappings.
AdGroupCategory → industryCategory
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
CategoryId |
industryCategory.id |
ID |
Nullable |
N/A |
CategoryName |
industryCategory.name |
String! |
Not nullable |
N/A |
CategoryTaxonomyId |
industryCategory.taxonomy.id |
ID! |
Not nullable |
N/A |
CategoryTaxonomyName |
industryCategory.taxonomy.name |
String! |
Not nullable |
N/A |
CategoryTaxonomyVersion |
industryCategory.taxonomy.version |
String! |
Not nullable |
N/A |
Mappings |
industryCategory.mappings |
[CategoryMapping!] |
Nullable |
REST Mappings → mappings (categoryId, externalId, taxonomyId). |
RTBAttributes → Budget & pacing
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
BudgetSettings.Budget.Amount |
budgetInAdvertiserCurrency or budget.total |
Decimal! |
Not nullable |
REST Money amount → advertiser-currency budget scalar or AdGroupBudget.total. |
BudgetSettings.BudgetInImpressions |
budgetInImpressions |
Decimal |
Nullable |
N/A |
BudgetSettings.DailyBudget.Amount |
currentFlight.dailyTargetInAdvertiserCurrency |
Decimal |
Nullable |
Daily targets live on the active flight, not a top-level daily-budget object. |
BudgetSettings.DailyBudgetInImpressions |
currentFlight.dailyTargetInImpressions |
Long |
Nullable |
N/A |
BudgetSettings.AdGroupFlights[] |
adGroupFlights |
AdGroupFlightsConnection |
Nullable |
Access via adGroupFlights.nodes. Also see currentFlight / currentOrNextFlight. |
BudgetSettings.AdGroupFlights[].AdGroupId |
adGroupFlights.nodes[].adGroupId |
String! |
Not nullable |
N/A |
BudgetSettings.AdGroupFlights[].CampaignFlightId |
adGroupFlights.nodes[].campaignFlightId |
Long! |
Not nullable |
N/A |
BudgetSettings.AdGroupFlights[].BudgetInAdvertiserCurrency |
adGroupFlights.nodes[].budgetInAdvertiserCurrency |
Decimal! |
Not nullable |
N/A |
BudgetSettings.AdGroupFlights[].BudgetInImpressions |
adGroupFlights.nodes[].budgetInImpressions |
Long |
Nullable |
N/A |
BudgetSettings.AdGroupFlights[].DailyTargetInAdvertiserCurrency |
adGroupFlights.nodes[].dailyTargetInAdvertiserCurrency |
Decimal |
Nullable |
N/A |
BudgetSettings.AdGroupFlights[].DailyTargetInImpressions |
adGroupFlights.nodes[].dailyTargetInImpressions |
Long |
Nullable |
N/A |
BudgetSettings.AdGroupFlights[].AllocationType |
adGroupFlights.nodes[].allocationType |
AdGroupBudgetAllocationType! |
Not nullable |
N/A |
BudgetSettings.PacingMode |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
BudgetSettings.AutoAllocatorPriority |
budget.spendPriority |
Int |
Nullable |
N/A |
BudgetSettings.AllocationType |
adGroupFlights.nodes[].allocationType |
AdGroupBudgetAllocationType! |
Not nullable |
Same field as per-flight allocation type. |
RTBAttributes → Bids
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
BaseBidCPM.Amount |
baseBidCPMInAdvertiserCurrency |
Decimal |
Nullable |
REST Money → advertiser-currency decimal. |
MaxBidCPM.Amount |
maxBidCPMInAdvertiserCurrency |
Decimal |
Nullable |
N/A |
LogisticRegressionBidCalculationSettings |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
RTBAttributes → Audience targeting
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
AudienceTargeting.AudienceId |
audience.id |
String |
Nullable |
N/A |
AudienceTargeting.RecencyExclusionWindowInMinutes |
audienceSettings.recencyExclusionWindowInMinutes |
Int! |
Not nullable |
N/A |
AudienceTargeting.AudienceBoosterEnabled |
dataSettings.audienceBooster.isEnabled |
Boolean! |
Not nullable |
N/A |
AudienceTargeting.AudiencePredictorEnabled |
dataSettings.audienceAssistant.isEnabled |
Boolean! |
Not nullable |
Audience Assistant maps to dataSettings.audienceAssistant.isEnabled. |
AudienceTargeting.AudienceExcluderEnabled |
excludeLowValueUsers |
Boolean! |
Not nullable |
N/A |
AudienceTargeting.AudienceRetargetingEnabled |
audienceSettings.strategy |
AudienceStrategy! |
Not nullable |
Use RETARGETING / AUTOMATED_RETARGETING strategy values. |
AudienceTargeting.TargetTrackableUsersEnabled |
targetHighValueUsers |
Boolean! |
Not nullable |
N/A |
AudienceTargeting.TargetDemographicSettingsEnabled |
audienceSettings.strategy |
AudienceStrategy! |
Not nullable |
Use DEMOGRAPHIC_TARGETING when enabled. |
AudienceTargeting.TargetInterestSettingsEnabled |
audienceSettings.strategy |
AudienceStrategy! |
Not nullable |
Use INTEREST_TARGETING when enabled. |
AudienceTargeting.TargetDemographicSettings |
N/A |
N/A |
N/A |
Detail lives on audience / strategy, not a flat REST-shaped object on read. |
AudienceTargeting.TargetInterestSettings |
N/A |
N/A |
N/A |
Detail lives on audience / strategy, not a flat REST-shaped object on read. |
AudienceTargeting.CrossDeviceVendorListForAudience[] |
dataSettings.crossDevice / dataSettings.crossDeviceV2 |
CrossDeviceDataSetting! |
Not nullable |
Vendor list is modeled as data settings, not a REST-style array on read. |
AudienceTargeting.RecencyAdjustments[] |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
| AudienceTargeting.Fee. |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AudienceTargeting.AudienceRetargetingSettings |
N/A |
N/A |
N/A |
Retargeting detail is on audience / data groups, not a flat REST-shaped object on read. |
AudienceTargeting.AdGroupAudiencePredictorTargetingDataSourceSettings |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AudienceTargeting.UseMcIdAsPrimary |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
RTBAttributes → ROI goal
REST exposes a discriminated ROIGoal object with many optional metric fields. GraphQL models goals uniformly:
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
| ROIGoal (envelope) |
roiGoal / goal |
Goal! |
Not nullable |
Also see campaignPrimaryGoal for the campaign's primary goal. |
ROIGoal.CPCInAdvertiserCurrency.Amount |
roiGoal.type |
ROIGoalType! |
Not nullable |
Select the ROIGoalType matching the REST metric; target holds the goal value. |
ROIGoal.CPCInAdvertiserCurrency.Amount |
roiGoal.target |
Decimal |
Nullable |
Select the ROIGoalType matching the REST metric; target holds the goal value. |
ROIGoal.CTRInPercent |
roiGoal.type |
ROIGoalType! |
Not nullable |
Same pattern as other ROI metrics. |
ROIGoal.CTRInPercent |
roiGoal.target |
Decimal |
Nullable |
Same pattern as other ROI metrics. |
ROIGoal.CPAInAdvertiserCurrency.Amount |
roiGoal.type |
ROIGoalType! |
Not nullable |
N/A |
ROIGoal.CPAInAdvertiserCurrency.Amount |
roiGoal.target |
Decimal |
Nullable |
N/A |
ROIGoal.ReturnOnAdSpendPercent |
roiGoal.type |
ROIGoalType! |
Not nullable |
N/A |
ROIGoal.ReturnOnAdSpendPercent |
roiGoal.target |
Decimal |
Nullable |
N/A |
ROIGoal.ViewabilityInPercent |
roiGoal.type |
ROIGoalType! |
Not nullable |
N/A |
ROIGoal.ViewabilityInPercent |
roiGoal.target |
Decimal |
Nullable |
N/A |
ROIGoal.MaximizeReach |
roiGoal.type |
ROIGoalType! |
Not nullable |
Boolean REST flags become a ROIGoalType enum value. |
ROIGoal.MaximizeLtvIncrementalReach |
roiGoal.type |
ROIGoalType! |
Not nullable |
N/A |
ROIGoal.MaximizeConversionRevenue |
roiGoal.type |
ROIGoalType! |
Not nullable |
N/A |
ROIGoal.NewBuyerTargetValue |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
RTBAttributes → Frequency
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
FrequencySettings.FrequencyCap |
frequencyConfigs / impressionFrequencyCounters |
Connection |
Nullable |
REST inline caps map to frequencyConfigs / impressionFrequencyCounters connections. |
FrequencySettings.FrequencyPeriodInMinutes |
frequencyConfigs / impressionFrequencyCounters |
Connection |
Nullable |
N/A |
FrequencySettings.FrequencyPricingSlopeCPM.Amount |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AdGroupLifetimeFrequencyCap |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
RTBAttributes → Creatives
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
CreativeIds |
creatives |
AdGroupCreativesConnection |
Nullable |
Prefer creatives.nodes[].id or allCreativeIdVersionPairs[].creativeId. |
CreativeIds |
creatives.nodes[].id |
[CreativeIdVersionPair!]! |
Not nullable |
Prefer creatives.nodes[].id or allCreativeIdVersionPairs[].creativeId. |
RTBAttributes → Dimension bid adjustments
REST inlines dimension adjustments (geo, browser, device, video, language, etc.) under RTBAttributes. GraphQL models these through bid lists and bid factors instead of a flat adjustment object on AdGroup.
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
GeoSegmentAdjustments |
bidFactors / associatedBidLists / appliedBidLists |
varies |
Nullable |
Query bid lists and bidFactors(dimensions: [...]) for dimension adjustments. |
BrowserAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
MobileCarrierAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
OSFamilyAndVersionAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
DeviceTypeAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
DeviceMakeModelAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
RenderingContextAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
AdsTxtSellerTypeAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
SupplyVendorAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
| VideoTargeting.*Adjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
| LanguageTargeting.* |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
AdFormatAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
UserTimeTargeting.UserHourOfWeekUnknownAdjustment |
userHourOfWeekUnknownAdjustment |
Decimal! |
Not nullable |
One of the few hour-of-week scalars exposed directly. |
UserTimeTargeting.UserHourOfWeekAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
SiteTargeting.SiteListIds |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
RTBAttributes → Auto-optimization & KOA
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
AutoOptimizationSettings.IsUseClicksAsConversionsEnabled |
autoOptimizationSettings.isUseClicksAsConversionsEnabled |
Boolean! |
Not nullable |
N/A |
AutoOptimizationSettings.IsUseSecondaryConversionsEnabled |
autoOptimizationSettings.isUseSecondaryConversionsEnabled |
Boolean! |
Not nullable |
N/A |
IsUseClicksAsConversionsEnabled |
autoOptimizationSettings.isUseClicksAsConversionsEnabled |
Boolean! |
Not nullable |
Duplicate REST surface; same field on AdGroup. |
IsUseSecondaryConversionsEnabled |
autoOptimizationSettings.isUseSecondaryConversionsEnabled |
Boolean! |
Not nullable |
N/A |
AutoOptimizationSettings.IsBaseBidAutoOptimizationEnabled |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AutoOptimizationSettings.IsAudienceAutoOptimizationEnabled |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AutoOptimizationSettings.IsSiteAutoOptimizationEnabled |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AutoOptimizationSettings.IsCreativeAutoOptimizationEnabled |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AutoOptimizationSettings.IsSupplyVendorAutoOptimizationEnabled |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AutoOptimizationSettings.IsVideoAutoOptimizationEnabled |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
DimensionalBiddingAutoOptimizationSettings |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
KoaOptimizationSettings.IsEnabled |
koaSettings |
AdGroupKoaSettings! |
Not nullable |
See koaSettings child fields for dimensions and versions. |
| KoaOptimizationSettings.KoaDimensions.* |
koaSettings.koaDimensions.* |
Boolean! |
Not nullable |
N/A |
KoaOptimizationSettings.KpiOverBudgetEnabled |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
KoaOptimizationSettings.IsBiddingUpEnabled |
koaSettings.koaDimensions.koaCanBidUp |
Boolean! |
Not nullable |
N/A |
KoaOptimizationSettings.ClickOnlyRoasEnabled |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
KoaOptimizationsVersion |
koaSettings.optimizationsVersion |
KoaOptimizationsVersion! |
Not nullable |
N/A |
KoaOptimizationsMinorVersion |
koaSettings.minorVersion |
String! |
Not nullable |
N/A |
CookielessTargetingUserSettingEnabled |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
RTBAttributes → Contract / private marketplace targeting
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
ContractTargeting.ContractIds |
bidFactors / bid-list connections |
varies |
Nullable |
Contract targeting is bid-list backed on read. |
ContractTargeting.ContractGroupIds |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
ContractTargeting.ContractAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
ContractTargeting.DeliveryProfileAdjustments |
bidFactors / bid-list connections |
varies |
Nullable |
N/A |
ContractTargeting.UseContractFloorPriceAsBaseBid |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
ContractTargeting.ContractFloorPriceAsBaseBidAdjustment |
contractFloorPriceAsBaseBidAdjustment |
Decimal |
Nullable |
N/A |
ContractTargeting.ContractFloorPricePercentageIncrease |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
ContractTargeting.AllowOpenMarketBiddingWhenTargetingContracts |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
RTBAttributes → Viewability
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
QualityAllianceViewabilityProfile |
qualityAllianceViewabilityProfile |
QualityAllianceViewabilityProfileType! |
Not nullable |
N/A |
DisplayViewabilityStandardIntegral |
displayViewabilityStandardIntegral |
ViewabilityStandardType! |
Not nullable |
N/A |
VideoViewabilityStandardIntegral |
videoViewabilityStandardIntegral |
ViewabilityStandardType! |
Not nullable |
N/A |
| QualityAllianceViewabilityTargeting.* |
isQualityAllianceSuiteEnabled / bid-list connections |
varies |
Nullable |
QA suite toggle plus bid-list-backed targeting detail. |
QualityAllianceVideoCompletionRateTargeting |
bidFactors / bid-list connections |
varies |
Nullable |
VCR targeting is bid-list backed on read; REST fee/percentage leaves are not flat AdGroup fields. |
| QualityAllianceVideoCompletionRateTargeting.Fee.* |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
QualityAllianceVideoCompletionRateTargeting.QualityAllianceVideoCompletionRateMinimalPercentage |
bidFactors / bid-list connections |
varies |
Nullable |
Query bid lists for VCR threshold detail. |
SupplyVendorDeclaredViewabilityTargeting |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
RTBAttributes → Site quality providers (Integral / DoubleVerify / Peer39)
REST returns large provider-specific fee and rating trees inline. GraphQL does not mirror those trees on AdGroup; brand-safety, contextual, and viewability provider settings are bid-list and dimension backed.
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
| SiteQualitySettings.* (all provider subtrees) |
bidFactors / bid-list connections |
varies |
Nullable |
Query associated/applied bid lists for provider category dimensions. Individual REST fee/rating leaves are not flat read fields. |
RTBAttributes → Nielsen / Comscore / Miaozhen
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
NielsenSettings.NielsenTrackingAttributes.Gender |
nielsenTrackingAttributes.gender |
TargetingGender! |
Not nullable |
N/A |
NielsenSettings.NielsenTrackingAttributes.StartAge |
nielsenTrackingAttributes.startAge |
TargetingStartAge! |
Not nullable |
N/A |
NielsenSettings.NielsenTrackingAttributes.EndAge |
nielsenTrackingAttributes.endAge |
TargetingEndAge! |
Not nullable |
N/A |
NielsenSettings.NielsenTrackingAttributes.Countries |
nielsenTrackingAttributes.countries |
[String!]! |
Not nullable |
N/A |
NielsenSettings.NielsenTrackingAttributes.EnhancedReportingOption |
nielsenTrackingAttributes.enhancedNielsenReportingOptions |
EnhancedNielsenReportingOptions! |
Not nullable |
N/A |
NielsenSettings.NielsenTrackingAttributes.LinearTvTrackingBrandCode |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
| NielsenSettings.Fee.* |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
ComscoreSettings.Enabled |
analyticsReport.comscoreEnabled |
Boolean! |
Not nullable |
See also get-v3-adgroup-analyticsreport-adgroupid for report metrics. |
| ComscoreSettings.PopulationId / DemographicMemberIds |
analyticsReport.comscoreAnalyticsReport |
ComscoreAnalyticsReport |
Nullable |
Report breakdown fields, not flat ID lists on AdGroup. |
| MiaozhenSettings.MiaozhenTrackingAttributes.* |
analyticsReport.miaozhenAnalyticsReport |
MiaozhenAnalyticsReport |
Nullable |
Tracking attributes are report-shaped on read. |
| ComscoreSettings.Fee.* / MiaozhenSettings.Fee.* |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
AssociatedBidLists
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
BidListId |
associatedBidLists.nodes[].bidList.id |
ID! |
Not nullable |
N/A |
IsEnabled |
associatedBidLists.nodes[].isEnabled |
Boolean! |
Not nullable |
N/A |
IsDefaultForDimension |
associatedBidLists.nodes[].isDefaultForUI |
Boolean! |
Not nullable |
REST name → isDefaultForUI. |
BidListSource |
associatedBidLists.nodes[].bidList.source |
BidListSource! |
Not nullable |
N/A |
BidListAdjustmentType |
associatedBidLists.nodes[].bidList.adjustmentType |
BidListAdjustmentType! |
Not nullable |
N/A |
BidListDimensions |
associatedBidLists.nodes[].bidList.dimensions |
[BidListDimension!]! |
Not nullable |
N/A |
HighFillAttributes (REST-only envelope)
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
GuaranteedPrivateContractId |
N/A |
N/A |
N/A |
Not currently available in GraphQL |
| BudgetSettings.* |
budget / currentFlight / adGroupFlights |
varies |
Nullable |
Same GraphQL budget fields as RTB budget settings. |
CreativeIds |
creatives |
AdGroupCreativesConnection |
Nullable |
N/A |
CreativeIds |
creatives.nodes[].id |
[CreativeIdVersionPair!]! |
Not nullable |
N/A |
| BaseBidCPM.Amount / MaxBidCPM.Amount |
baseBidCPMInAdvertiserCurrency / maxBidCPMInAdvertiserCurrency |
Decimal |
Nullable |
N/A |
Code examples
Example—create ad group (GraphQL subset)
REST example
POST /v3/adgroup HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER
{
"CampaignId": "cmp123",
"AdGroupName": "My RTB Ad Group",
"IsEnabled": false,
"ChannelId": "Display",
"FunnelLocation": "Awareness",
"RTBAttributes": {
"BaseBidCPM": { "Amount": 1.50, "CurrencyCode": "USD" },
"MaxBidCPM": { "Amount": 5.00, "CurrencyCode": "USD" }
}
}
GraphQL example
POST /graphql HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER
mutation CreateAdGroup($input: AdGroupCreateInput!) {
adGroupCreate(input: $input) {
data {
id
name
campaign { id }
isEnabled
channel
funnelLocation
baseBidCPMInAdvertiserCurrency
maxBidCPMInAdvertiserCurrency
}
userErrors {
message
field
}
}
}
Variables:
{
"input": {
"campaignId": "cmp123",
"name": "My RTB Ad Group",
"isEnabled": false,
"channel": "DISPLAY",
"funnelLocation": "AWARENESS",
"baseBidCPMInAdvertiserCurrency": 1.50,
"maxBidCPMInAdvertiserCurrency": 5.00
}
}
The REST example includes RTB budget settings and other nested objects that are not all available on AdGroupCreateInput. Bid lists, campaign defaults, and full RTB targeting still require additional GraphQL mutations or remain REST-only.