Documentation
¶
Overview ¶
Package adcp provides helpers for building AdCP MCP servers in Go.
Generated enum aliases preserve unknown wire values for forward-compatible JSON decoding. Use helpers such as KnownMediaBuyStatusValues, IsKnownMediaBuyStatus, and ParseMediaBuyStatus when a handler needs strict validation against the current schema values.
Index ¶
- Constants
- Variables
- func ActivateSignalResponse(deployments []Deployment, sandbox bool) (*mcp.CallToolResult, any, error)
- func AddTool[In any](server *mcp.Server, name, description string, ...)
- func Bool(v bool) *bool
- func BuildCreativeResponse(manifest map[string]any, sandbox bool) (*mcp.CallToolResult, any, error)
- func CapabilitiesResponse(data *CapabilitiesData) (*mcp.CallToolResult, any, error)
- func CreateCollectionListResponse(list *CollectionList, authToken string) (*mcp.CallToolResult, any, error)
- func CreateMediaBuyErrorResponse(data *CreateMediaBuyError) (*mcp.CallToolResult, any, error)
- func CreateMediaBuySubmittedResponse(taskID, message string) (*mcp.CallToolResult, any, error)
- func CreateMediaBuySuccessResponse(data *CreateMediaBuySuccess) (*mcp.CallToolResult, any, error)
- func CreativeFormatsResponse(formats []CreativeFormat, sandbox bool) (*mcp.CallToolResult, any, error)
- func DefaultADCPVersion() string
- func DeleteCollectionListResponse(listID string) (*mcp.CallToolResult, any, error)
- func DeliveryResponse(data *DeliveryData) (*mcp.CallToolResult, any, error)
- func Error[T any](code string, opts ErrorOptions) (*mcp.CallToolResult, T, error)
- func Errorf(code string, opts ErrorOptions) (*mcp.CallToolResult, any, error)
- func Float64(v float64) *float64
- func GetCollectionListResponse(list *CollectionList, collections []ResolvedCollection, ...) (*mcp.CallToolResult, any, error)
- func GovernanceResponse(accounts []GovernanceResult) (*mcp.CallToolResult, any, error)
- func IsKnownAccountScope(v AccountScope) bool
- func IsKnownAccountStatus(v AccountStatus) bool
- func IsKnownActionNotAllowedReason(v ActionNotAllowedReason) bool
- func IsKnownActionSource(v ActionSource) bool
- func IsKnownAdcpProtocol(v AdcpProtocol) bool
- func IsKnownAdjustmentKind(v AdjustmentKind) bool
- func IsKnownAdvertiserIndustry(v AdvertiserIndustry) bool
- func IsKnownAgeVerificationMethod(v AgeVerificationMethod) bool
- func IsKnownAssessmentStatus(v AssessmentStatus) bool
- func IsKnownAssetContentType(v AssetContentType) bool
- func IsKnownAttestationClaim(v AttestationClaim) bool
- func IsKnownAttributionMethodology(v AttributionMethodology) bool
- func IsKnownAttributionModel(v AttributionModel) bool
- func IsKnownAudienceSource(v AudienceSource) bool
- func IsKnownAudienceStatus(v AudienceStatus) bool
- func IsKnownAudioChannelLayout(v AudioChannelLayout) bool
- func IsKnownAudioDistributionType(v AudioDistributionType) bool
- func IsKnownAuthScheme(v AuthScheme) bool
- func IsKnownAvailableMetric(v AvailableMetric) bool
- func IsKnownBillingParty(v BillingParty) bool
- func IsKnownBinaryVerdict(v BinaryVerdict) bool
- func IsKnownBrandAgentType(v BrandAgentType) bool
- func IsKnownC2PAWatermarkAction(v C2PAWatermarkAction) bool
- func IsKnownCanceledBy(v CanceledBy) bool
- func IsKnownCatalogAction(v CatalogAction) bool
- func IsKnownCatalogItemStatus(v CatalogItemStatus) bool
- func IsKnownCatalogType(v CatalogType) bool
- func IsKnownChannels(v Channels) bool
- func IsKnownCloudStorageProtocol(v CloudStorageProtocol) bool
- func IsKnownCoBrandingRequirement(v CoBrandingRequirement) bool
- func IsKnownCollectionCadence(v CollectionCadence) bool
- func IsKnownCollectionKind(v CollectionKind) bool
- func IsKnownCollectionRelationship(v CollectionRelationship) bool
- func IsKnownCollectionStatus(v CollectionStatus) bool
- func IsKnownCompletionSource(v CompletionSource) bool
- func IsKnownConsentBasis(v ConsentBasis) bool
- func IsKnownContentIDType(v ContentIDType) bool
- func IsKnownContentRatingSystem(v ContentRatingSystem) bool
- func IsKnownCreativeAction(v CreativeAction) bool
- func IsKnownCreativeAgentCapability(v CreativeAgentCapability) bool
- func IsKnownCreativeApprovalStatus(v CreativeApprovalStatus) bool
- func IsKnownCreativeEventReasonCode(v CreativeEventReasonCode) bool
- func IsKnownCreativeIdentifierType(v CreativeIdentifierType) bool
- func IsKnownCreativeQuality(v CreativeQuality) bool
- func IsKnownCreativeSelectionStrategy(v CreativeSelectionStrategy) bool
- func IsKnownCreativeSortField(v CreativeSortField) bool
- func IsKnownCreativeStatus(v CreativeStatus) bool
- func IsKnownDaastTrackingEvent(v DaastTrackingEvent) bool
- func IsKnownDaastVersion(v DaastVersion) bool
- func IsKnownDayOfWeek(v DayOfWeek) bool
- func IsKnownDelegationAuthority(v DelegationAuthority) bool
- func IsKnownDeliveryType(v DeliveryType) bool
- func IsKnownDemographicSystem(v DemographicSystem) bool
- func IsKnownDerivativeType(v DerivativeType) bool
- func IsKnownDevicePlatform(v DevicePlatform) bool
- func IsKnownDeviceType(v DeviceType) bool
- func IsKnownDigitalSourceType(v DigitalSourceType) bool
- func IsKnownDimensionUnit(v DimensionUnit) bool
- func IsKnownDisclosurePersistence(v DisclosurePersistence) bool
- func IsKnownDisclosurePosition(v DisclosurePosition) bool
- func IsKnownDistanceUnit(v DistanceUnit) bool
- func IsKnownDistributionIdentifierType(v DistributionIdentifierType) bool
- func IsKnownEmbeddedProvenanceMethod(v EmbeddedProvenanceMethod) bool
- func IsKnownErrorCode(v ErrorCode) bool
- func IsKnownErrorScope(v ErrorScope) bool
- func IsKnownEscalationSeverity(v EscalationSeverity) bool
- func IsKnownEventType(v EventType) bool
- func IsKnownExclusivity(v Exclusivity) bool
- func IsKnownFeatureCheckStatus(v FeatureCheckStatus) bool
- func IsKnownFeedFormat(v FeedFormat) bool
- func IsKnownFeedbackSource(v FeedbackSource) bool
- func IsKnownForecastMethod(v ForecastMethod) bool
- func IsKnownForecastRangeUnit(v ForecastRangeUnit) bool
- func IsKnownForecastableMetric(v ForecastableMetric) bool
- func IsKnownFormatIDParameter(v FormatIDParameter) bool
- func IsKnownFrameRateType(v FrameRateType) bool
- func IsKnownFrequencyCapScope(v FrequencyCapScope) bool
- func IsKnownGenreTaxonomy(v GenreTaxonomy) bool
- func IsKnownGeoLevel(v GeoLevel) bool
- func IsKnownGopType(v GopType) bool
- func IsKnownGovernanceDecision(v GovernanceDecision) bool
- func IsKnownGovernanceDomain(v GovernanceDomain) bool
- func IsKnownGovernanceMode(v GovernanceMode) bool
- func IsKnownGovernancePhase(v GovernancePhase) bool
- func IsKnownHTTPMethod(v HTTPMethod) bool
- func IsKnownHistoryEntryType(v HistoryEntryType) bool
- func IsKnownIdentifierTypes(v IdentifierTypes) bool
- func IsKnownImpairmentOfflineState(v ImpairmentOfflineState) bool
- func IsKnownImpairmentReasonCode(v ImpairmentReasonCode) bool
- func IsKnownInstallmentStatus(v InstallmentStatus) bool
- func IsKnownJavascriptModuleType(v JavascriptModuleType) bool
- func IsKnownLandingPageRequirement(v LandingPageRequirement) bool
- func IsKnownLegacyPostalSystem(v LegacyPostalSystem) bool
- func IsKnownLiftDimension(v LiftDimension) bool
- func IsKnownLogoSlot(v LogoSlot) bool
- func IsKnownMakegoodRemedy(v MakegoodRemedy) bool
- func IsKnownMarkdownFlavor(v MarkdownFlavor) bool
- func IsKnownMatchIDType(v MatchIDType) bool
- func IsKnownMatchType(v MatchType) bool
- func IsKnownMediaBuyActionMode(v MediaBuyActionMode) bool
- func IsKnownMediaBuyHealth(v MediaBuyHealth) bool
- func IsKnownMediaBuyStatus(v MediaBuyStatus) bool
- func IsKnownMediaBuyValidAction(v MediaBuyValidAction) bool
- func IsKnownMetricScope(v MetricScope) bool
- func IsKnownMetricType(v MetricType) bool
- func IsKnownMetroSystem(v MetroSystem) bool
- func IsKnownMoovAtomPosition(v MoovAtomPosition) bool
- func IsKnownNotificationType(v NotificationType) bool
- func IsKnownOfferingAvailabilityStatus(v OfferingAvailabilityStatus) bool
- func IsKnownOptimizationMetric(v OptimizationMetric) bool
- func IsKnownOutcomeType(v OutcomeType) bool
- func IsKnownPacing(v Pacing) bool
- func IsKnownPaymentTerms(v PaymentTerms) bool
- func IsKnownPerformanceStandardMetric(v PerformanceStandardMetric) bool
- func IsKnownPolicyCategory(v PolicyCategory) bool
- func IsKnownPolicyEnforcement(v PolicyEnforcement) bool
- func IsKnownPostalSystem(v PostalSystem) bool
- func IsKnownPreviewOutputFormat(v PreviewOutputFormat) bool
- func IsKnownPricingModel(v PricingModel) bool
- func IsKnownProductionQuality(v ProductionQuality) bool
- func IsKnownPropertyType(v PropertyType) bool
- func IsKnownProposalStatus(v ProposalStatus) bool
- func IsKnownPublisherIdentifierTypes(v PublisherIdentifierTypes) bool
- func IsKnownPurchaseType(v PurchaseType) bool
- func IsKnownReachUnit(v ReachUnit) bool
- func IsKnownReportingFrequency(v ReportingFrequency) bool
- func IsKnownResponseType(v ResponseType) bool
- func IsKnownRestrictedAttribute(v RestrictedAttribute) bool
- func IsKnownRightType(v RightType) bool
- func IsKnownRightUse(v RightUse) bool
- func IsKnownRightsBillingPeriod(v RightsBillingPeriod) bool
- func IsKnownScanType(v ScanType) bool
- func IsKnownSiSessionStatus(v SiSessionStatus) bool
- func IsKnownSignalCatalogType(v SignalCatalogType) bool
- func IsKnownSignalSource(v SignalSource) bool
- func IsKnownSignalValueType(v SignalValueType) bool
- func IsKnownSnapshotUnavailableReason(v SnapshotUnavailableReason) bool
- func IsKnownSocialPlacementSurface(v SocialPlacementSurface) bool
- func IsKnownSortDirection(v SortDirection) bool
- func IsKnownSortMetric(v SortMetric) bool
- func IsKnownSpecialCategory(v SpecialCategory) bool
- func IsKnownSpecialism(v Specialism) bool
- func IsKnownSponsoredPlacementType(v SponsoredPlacementType) bool
- func IsKnownTalentRole(v TalentRole) bool
- func IsKnownTaskStatus(v TaskStatus) bool
- func IsKnownTaskType(v TaskType) bool
- func IsKnownTransportMode(v TransportMode) bool
- func IsKnownTravelTimeUnit(v TravelTimeUnit) bool
- func IsKnownUIDType(v UIDType) bool
- func IsKnownURLAssetType(v URLAssetType) bool
- func IsKnownUniversalMacro(v UniversalMacro) bool
- func IsKnownUpdateFrequency(v UpdateFrequency) bool
- func IsKnownValidationMode(v ValidationMode) bool
- func IsKnownVastTrackingEvent(v VastTrackingEvent) bool
- func IsKnownVastVersion(v VastVersion) bool
- func IsKnownVideoPlacementType(v VideoPlacementType) bool
- func IsKnownViewabilityStandard(v ViewabilityStandard) bool
- func IsKnownWatermarkMediaType(v WatermarkMediaType) bool
- func IsKnownWcagLevel(v WcagLevel) bool
- func IsKnownWebhookResponseType(v WebhookResponseType) bool
- func IsKnownWebhookSecurityMethod(v WebhookSecurityMethod) bool
- func ListCollectionListsResponse(lists []CollectionList, pagination *PaginationResponse) (*mcp.CallToolResult, any, error)
- func ListCreativesResponse(creatives []map[string]any) (*mcp.CallToolResult, any, error)
- func LogEventResponse(received, processed int, matchQuality float64, sandbox bool) (*mcp.CallToolResult, any, error)
- func MajorFromADCPVersion(version string) (int, bool)
- func MediaBuyResponse(data CreateMediaBuyResponse) (*mcp.CallToolResult, any, error)
- func MediaBuysDataResponse(data *GetMediaBuysResponse) (*mcp.CallToolResult, any, error)
- func MediaBuysResponse(mediaBuys []MediaBuyData, sandbox bool) (*mcp.CallToolResult, any, error)
- func NegotiateADCPVersion(requestedVersion string, requestedMajor int, supported []string) (string, bool)
- func NewError(code string, opts ErrorOptions) error
- func NormalizeADCPVersion(version string) (string, bool)
- func PerformanceFeedbackResponse(sandbox bool) (*mcp.CallToolResult, any, error)
- func PreviewCreativeResponse(creativeID, name, previewURL string, width, height int) (*mcp.CallToolResult, any, error)
- func ProductsResponse(data *ProductsData) (*mcp.CallToolResult, any, error)
- func Ptr[T any](v T) *T
- func Register(server *mcp.Server, cfg Config)
- func RegisterTestController(server *mcp.Server, store *TestControllerStore)
- func Result(data any, summary string) (*mcp.CallToolResult, any, error)
- func Serve(createAgent func() *mcp.Server, opts ...ServeOption) error
- func SignalsResponse(signals []Signal, sandbox bool) (*mcp.CallToolResult, any, error)
- func SupportedADCPVersions() []string
- func SyncAccountsResponse(accounts []AccountResult, sandbox bool) (*mcp.CallToolResult, any, error)
- func SyncCatalogsResponse(catalogs []CatalogResult, sandbox bool) (*mcp.CallToolResult, any, error)
- func SyncCreativesResponse(creatives []CreativeResult, sandbox bool) (*mcp.CallToolResult, any, error)
- func SyncEventSourcesResponse(sources []EventSourceResult, sandbox bool) (*mcp.CallToolResult, any, error)
- func UpdateCollectionListResponse(list *CollectionList) (*mcp.CallToolResult, any, error)
- type ADCPVersion
- type Account
- type AccountAuthorization
- type AccountCapabilities
- type AccountCreditLimit
- type AccountGovernanceAgent
- type AccountInput
- type AccountReference
- type AccountResult
- type AccountScope
- type AccountSetup
- type AccountStatus
- type AccountWithAuthorization
- type ActionNotAllowedReason
- type ActionSource
- type ActivateSignalRequest
- type ActivationKey
- type AdInventoryConfig
- type AdcpError
- type AdcpProtocol
- type AdjustmentKind
- type AdvertiserIndustry
- type AgeRestriction
- type AgeRestrictionCaps
- type AgeVerificationMethod
- type Artifact
- type ArtifactIdentifiers
- type ArtifactMetadata
- type ArtifactWebhookArtifact
- type ArtifactWebhookConfig
- type ArtifactWebhookPagination
- type ArtifactWebhookPayload
- type AssessmentStatus
- type AssetContentType
- type AssetSlot
- type AttestationClaim
- type AttributionMethodology
- type AttributionModel
- type AttributionWindow
- type AttributionWindowOption
- type AudienceConstraints
- type AudienceSelector
- type AudienceSource
- type AudienceStatus
- type AudienceTargetingCaps
- type AudioChannelLayout
- type AudioDistributionType
- type AuditObservation
- type AuditObservationClaimedValue
- type AuditObservationDetails
- type AuthScheme
- type AvailableMetric
- type BankAccount
- type BaseCollectionSource
- type BillingMeasurement
- type BillingParty
- type BinaryVerdict
- type BrandAgentType
- type BrandCapabilities
- type BrandReference
- type BuildCreativeMaxSpend
- type BuildCreativePreviewInput
- type BuildCreativeRequest
- type BuildCreativeResult
- type BuildCreativeSignalCondition
- type BuildCreativeVariantAxis
- type BusinessAddress
- type BusinessContact
- type BusinessEntity
- type C2PAWatermarkAction
- type CanceledBy
- type CancellationFee
- type CancellationPolicy
- type CanonicalProjectionRef
- type CanonicalProjectionSlotOverride
- type CapabilitiesData
- type CapabilitiesWholesaleFeedVersioning
- type CapabilitiesWholesaleFeedWebhooks
- type Catalog
- type CatalogAction
- type CatalogFieldMapping
- type CatalogInput
- type CatalogItemStatus
- type CatalogResult
- type CatalogType
- type Channels
- type CheckGovernanceCondition
- type CheckGovernanceFinding
- type CheckGovernanceRequest
- type CheckGovernanceResponse
- type CloudStorageProtocol
- type CoBrandingRequirement
- type CollectionCadence
- type CollectionChangeSummary
- type CollectionKind
- type CollectionList
- type CollectionListChangedWebhook
- type CollectionListFilters
- type CollectionListRef
- type CollectionPagination
- type CollectionRelationship
- type CollectionRequestPagination
- type CollectionSelector
- type CollectionStatus
- type CommittedMetric
- type CompletionSource
- type ComplianceTestingCapabilities
- type ComplyTestControllerRequest
- type ComplyTestControllerResponse
- type Config
- type ConsentBasis
- type ContentIDType
- type ContentRating
- type ContentRatingSystem
- type ContentStandardsCaps
- type ControllerError
- type ConversionTrackingCaps
- type CreateCollectionListRequest
- type CreateCollectionListResult
- type CreateMediaBuyError
- type CreateMediaBuyRequest
- type CreateMediaBuyResponse
- type CreateMediaBuyResultdeprecated
- type CreateMediaBuySubmitted
- type CreateMediaBuySuccess
- type CreativeAcceptedVerifier
- type CreativeAction
- type CreativeAgentCapability
- type CreativeAgentRef
- type CreativeApprovalStatus
- type CreativeAsset
- type CreativeAssetInput
- type CreativeAssignment
- type CreativeBrief
- type CreativeBriefCompliance
- type CreativeBriefDisclosure
- type CreativeBriefMessaging
- type CreativeCapabilities
- type CreativeConsumption
- type CreativeEventReasonCode
- type CreativeFilters
- type CreativeFormat
- type CreativeFormatAccessibility
- type CreativeFormatCard
- type CreativeFormatCardDetailed
- type CreativeFormatDisclosureCapability
- type CreativeIdentifierType
- type CreativeInput
- type CreativeListItem
- type CreativeManifest
- type CreativeMultiplicityCaps
- type CreativePolicy
- type CreativeProvenanceRequirements
- type CreativeQuality
- type CreativeResult
- type CreativeSelectionStrategy
- type CreativeSortField
- type CreativeSpecsCaps
- type CreativeStatus
- type CreativeSupportedFormat
- type CreativeVariable
- type DaastTrackingEvent
- type DaastVersion
- type DataProviderSignalSelector
- type DataSubjectContestation
- type DateRange
- type DatetimeRange
- type DayOfWeek
- type DaypartTarget
- type DelegationAuthority
- type DeleteCollectionListRequest
- type DeliveryActionSourceMetrics
- type DeliveryAggregatedTotals
- type DeliveryAttributionWindow
- type DeliveryDOOHMetrics
- type DeliveryDOOHVenueBreakdown
- type DeliveryData
- type DeliveryEventTypeMetrics
- type DeliveryForecast
- type DeliveryMetricAggregate
- type DeliveryQuartileData
- type DeliveryReportingDimension
- type DeliveryReportingDimensions
- type DeliveryReportingGeoDimension
- type DeliveryTotals
- type DeliveryType
- type DeliveryViewability
- type DeliveryWindow
- type DeliveryWindowPackage
- type DemographicSystem
- type Deployment
- type DerivativeType
- type Destination
- type DestinationInput
- type DevicePlatform
- type DeviceType
- type DiagnosticIssue
- type DigitalSourceType
- type DimensionUnit
- type DisclosurePersistence
- type DisclosurePosition
- type DistanceUnit
- type DistributionID
- type DistributionIdentifierType
- type Duration
- type EmbeddedProvenanceMethod
- type EmptyInput
- type ErrorCode
- type ErrorOptions
- type ErrorScope
- type EscalationSeverity
- type Event
- type EventContentItem
- type EventCustomData
- type EventSourceInput
- type EventSourceResult
- type EventSourceSetup
- type EventSurface
- type EventType
- type Exclusivity
- type FeatureCheckStatus
- type FeatureRange
- type FeedFormat
- type FeedbackSource
- type FilterExclusionDiagnostic
- type ForcedDirective
- type ForcedDirectiveSuccess
- type ForecastMethod
- type ForecastPoint
- type ForecastPointDimension
- type ForecastRange
- type ForecastRangeUnit
- type ForecastVendorMetricValue
- type ForecastViewability
- type ForecastableMetric
- type FormatIDParameter
- type FormatOptionRef
- type FormatRef
- type FrameRateType
- type FrequencyCap
- type FrequencyCapScope
- type FrequencyCappingCaps
- type GenreTaxonomy
- type GeoBreakdownSupport
- type GeoLevel
- type GeoMetroTarget
- type GeoMetrosCaps
- type GeoPostalAreaTarget
- type GeoPostalAreasCaps
- type GeoProximityCaps
- type GeoProximityGeometry
- type GeoProximityRadius
- type GeoProximityTarget
- type GeoProximityTravelTime
- type GetAdcpCapabilitiesRequest
- type GetAdcpCapabilitiesResponse
- type GetCollectionListRequest
- type GetCollectionListResult
- type GetMediaBuyDeliveryRequest
- type GetMediaBuyDeliveryResponse
- type GetMediaBuysRequest
- type GetMediaBuysResponse
- type GetPlanAuditLogsRequest
- type GetPlanAuditLogsResponse
- type GetProductsFilterDiagnostics
- type GetProductsIncompleteItem
- type GetProductsRefineItem
- type GetProductsRefinementAppliedItem
- type GetProductsRequest
- type GetProductsResponse
- type GetSignalsIncompleteItem
- type GetSignalsRequest
- type GetSignalsResponse
- type GetSignalsResponseSignal
- type GopType
- type GovernanceAccount
- type GovernanceAccountInput
- type GovernanceAgent
- type GovernanceAudienceDistribution
- type GovernanceCapabilities
- type GovernanceDecision
- type GovernanceDeliveryMetrics
- type GovernanceDeliveryReportingPeriod
- type GovernanceDomain
- type GovernanceFeature
- type GovernanceMode
- type GovernancePhase
- type GovernanceResult
- type HTTPMethod
- type HistoryEntryType
- type HumanOverride
- type IOAcceptance
- type IdempotencyCaps
- type IdentifierMatchProof
- type IdentifierTypes
- type IdentityCapabilities
- type IdentityCompromiseNotification
- type IdentityKeyOrigins
- type ImageAsset
- type Impairment
- type ImpairmentOfflineState
- type ImpairmentReasonCode
- type ImpairmentTransition
- type IndustryIdentifier
- type InsertionOrder
- type InsertionOrderBudget
- type InsertionOrderTerms
- type Installment
- type InstallmentDeadlines
- type InstallmentDerivative
- type InstallmentStatus
- type JavascriptModuleType
- type KeywordMatchCaps
- type KeywordTarget
- type KeywordTargetRef
- type KeywordTargetUpdate
- type LandingPageRequirement
- type LegacyPostalSystem
- type LegacyWebhookAuthentication
- type LiftDimension
- type ListAccountsRequest
- type ListAccountsResponse
- type ListCollectionListsRequest
- type ListCollectionListsResult
- type ListCreativeFormatsRequest
- type ListCreativeFormatsResponse
- type ListCreativesRequest
- type ListCreativesSort
- type ListScenariosSuccess
- type LogEventRequest
- type LogEventResult
- type LogoSlot
- type MCPWebhookPayload
- type MakegoodPolicy
- type MakegoodRemedy
- type MarkdownFlavor
- type MatchIDType
- type MatchType
- type MatchingLatencyRange
- type MaterialDeadline
- type MeasurementReadiness
- type MeasurementTerms
- type MeasurementWindow
- type MediaBuyActionMode
- type MediaBuyAvailableAction
- type MediaBuyBudget
- type MediaBuyCapabilities
- type MediaBuyDailyBreakdown
- type MediaBuyData
- type MediaBuyDelivery
- type MediaBuyDeliveryTotals
- type MediaBuyExecution
- type MediaBuyFeatures
- type MediaBuyHealth
- type MediaBuyHistoryEntry
- type MediaBuyListItem
- type MediaBuyStatus
- type MediaBuyStatusFilter
- type MediaBuyValidAction
- type MediaBuyVendorMetricOptimizationCaps
- type MetricQualifier
- type MetricScope
- type MetricType
- type MetroSystem
- type MissingMetric
- type MoovAtomPosition
- type NegativeKeywordTarget
- type NotificationConfig
- type NotificationType
- type OfferingAvailabilityStatus
- type OptimizationGoal
- type OptimizationGoalAttributionWindow
- type OptimizationGoalCostPerTarget
- type OptimizationGoalEventSource
- type OptimizationGoalMaximizeValueTarget
- type OptimizationGoalPerAdSpendTarget
- type OptimizationGoalRawTarget
- type OptimizationGoalTarget
- type OptimizationGoalTargetFrequency
- type OptimizationGoalThresholdRateTarget
- type OptimizationMetric
- type OutcomeMeasurement
- type OutcomeType
- type Pacing
- type Package
- type PackageAudienceDelivery
- type PackageCancellation
- type PackageCatalogItemDelivery
- type PackageCreativeApproval
- type PackageCreativeDelivery
- type PackageDailyBreakdown
- type PackageDelivery
- type PackageDevicePlatformDelivery
- type PackageDeviceTypeDelivery
- type PackageGeoDelivery
- type PackageInput
- type PackageKeywordDelivery
- type PackagePlacementDelivery
- type PackageSignalTargeting
- type PackageSignalTargetingGroup
- type PackageSignalTargetingGroups
- type PackageSnapshot
- type PackageStatus
- type PackageUpdate
- type PaginationRequest
- type PaginationResponse
- type PaymentTerms
- type PerformanceFeedback
- type PerformanceStandard
- type PerformanceStandardMetric
- type Placement
- type PlacementRef
- type Plan
- type PlanAuditBudget
- type PlanAuditChannelAllocation
- type PlanAuditDriftMetrics
- type PlanAuditDriftThresholds
- type PlanAuditEntry
- type PlanAuditEscalation
- type PlanAuditFinding
- type PlanAuditGovernedAction
- type PlanAuditLog
- type PlanAuditStatusCounts
- type PlanAuditSummary
- type PlanBudget
- type PlanBudgetAllocation
- type PlanChannelMixTarget
- type PlanChannels
- type PlanDelegation
- type PlanDelegationBudget
- type PlanFlight
- type PlanPortfolio
- type PlanPortfolioBudgetCap
- type PlanValidationError
- type PlannedDelivery
- type PlannedDeliveryGeo
- type PlatformExtensionRef
- type PolicyCategory
- type PolicyCategoryDefinition
- type PolicyEnforcement
- type PolicyEntry
- type PolicyExemplar
- type PolicyExemplars
- type PolicyRegulatoryFramework
- type PortfolioCaps
- type PostalSystem
- type Preview
- type PreviewCreativeBatchRequest
- type PreviewCreativeInput
- type PreviewCreativeRequest
- type PreviewOutputFormat
- type PreviewRender
- type PreviewResult
- type PriceAdjustment
- type PriceBreakdown
- type PricingModel
- type PricingOption
- type Product
- type ProductAllocation
- type ProductAllowedAction
- type ProductCard
- type ProductCardDetailed
- type ProductCardSpecification
- type ProductCatalogMatch
- type ProductConversionTracking
- type ProductDeliveryMeasurement
- type ProductFilterBudgetRange
- type ProductFilterGeoProximity
- type ProductFilterGeoTargetingRequirement
- type ProductFilterGeometry
- type ProductFilterKeyword
- type ProductFilterMetro
- type ProductFilterPostalArea
- type ProductFilterRadius
- type ProductFilterTravelTime
- type ProductFilterTrustedMatch
- type ProductFilterTrustedMatchProvider
- type ProductFilters
- type ProductFormatDeclaration
- type ProductMaterialSubmission
- type ProductMetricOptimization
- type ProductSignalTargetingOption
- type ProductTrustedMatch
- type ProductTrustedMatchProvider
- type ProductionQuality
- type ProductsData
- type PropertyChangeSummary
- type PropertyListChangedWebhook
- type PropertyListRef
- type PropertyType
- type Proposal
- type ProposalBudgetGuidance
- type ProposalStatus
- type ProtocolEnvelope
- type Provenance
- type ProvenanceAITool
- type ProvenanceAuditObservationsSuccess
- type ProvenanceC2PA
- type ProvenanceDeclaredBy
- type ProvenanceDisclosure
- type ProvenanceDisclosureJurisdiction
- type ProvenanceDisclosureRenderGuidance
- type ProvenanceEmbeddedProvenance
- type ProvenanceVerification
- type ProvenanceVerifyAgent
- type ProvenanceWatermark
- type ProvidePerformanceFeedbackError
- type ProvidePerformanceFeedbackRequest
- type ProvidePerformanceFeedbackResponse
- type ProvidePerformanceFeedbackSuccess
- type PublisherIdentifierTypes
- type PublisherPropertySelector
- type PurchaseType
- type PushNotificationConfig
- type ReachUnit
- type ReachWindow
- type ReferenceAsset
- type Render
- type ReportPlanOutcomeDelivery
- type ReportPlanOutcomeDeliveryReportingPeriod
- type ReportPlanOutcomeError
- type ReportPlanOutcomeFinding
- type ReportPlanOutcomePlanSummary
- type ReportPlanOutcomeRequest
- type ReportPlanOutcomeResponse
- type ReportPlanOutcomeSellerPackage
- type ReportPlanOutcomeSellerResponse
- type ReportedSpend
- type ReportingBucket
- type ReportingCapabilities
- type ReportingFrequency
- type ReportingPeriod
- type ReportingVendorMetric
- type ReportingWebhook
- type RequestSigningCapabilities
- type RequestedCommittedMetric
- type RequiredVendorMetric
- type ResolvedCollection
- type ResponseType
- type RestrictedAttribute
- type RevocationNotification
- type RightType
- type RightUse
- type RightsAgentRef
- type RightsBillingPeriod
- type RightsConstraint
- type SICapabilities
- type SIEndpoint
- type SITransport
- type ScanType
- type SeedSuccess
- type ServeOption
- type SiSessionStatus
- type Signal
- type SignalCatalogType
- type SignalCoverageForecast
- type SignalCoverageForecastScope
- type SignalDataSubjectRights
- type SignalDataSubjectRightsChannel
- type SignalFilters
- type SignalID
- type SignalListing
- type SignalModeling
- type SignalModelingDisclosure
- type SignalModelingDisclosureJurisdiction
- type SignalModelingSeedSource
- type SignalOnboarder
- type SignalPricing
- type SignalRange
- type SignalRef
- type SignalSelectionGroupRule
- type SignalSource
- type SignalTargeting
- type SignalTargetingExpression
- type SignalTargetingRules
- type SignalTaxonomy
- type SignalTaxonomyValue
- type SignalTaxonomyValueMapping
- type SignalValueType
- type SignalsCapabilities
- type SimulateBudgetParams
- type SimulateDeliveryParams
- type SimulationResult
- type SimulationSuccess
- type SlaWindow
- type SnapshotUnavailableReason
- type SocialPlacementSurface
- type SortDirection
- type SortMetric
- type Special
- type SpecialCategory
- type Specialism
- type SponsoredPlacementType
- type StateTransition
- type StateTransitionSuccess
- type SyncAccountsRequest
- type SyncCatalogsRequest
- type SyncCreativeAssignment
- type SyncCreativesRequest
- type SyncEventSourcesRequest
- type SyncGovernanceAccountResult
- type SyncGovernanceAgentResult
- type SyncGovernanceError
- type SyncGovernanceRequest
- type SyncGovernanceResponse
- type SyncGovernanceSuccess
- type SyncPlansPlan
- type SyncPlansPlanCategory
- type SyncPlansRequest
- type SyncPlansResolvedPolicy
- type SyncPlansResponse
- type Talent
- type TalentRole
- type Targeting
- type TargetingCaps
- type TargetingStoreCatchment
- type TaskStatus
- type TaskType
- type TestControllerError
- type TestControllerStore
- type TransportMode
- type TravelTimeUnit
- type TrustedMatchCaps
- type UIDType
- type URLAssetType
- type UniversalMacro
- type UpdateCollectionListRequest
- type UpdateFrequency
- type UpdateMediaBuyRequest
- type UpstreamRecordedCall
- type UpstreamTrafficSuccess
- type UserMatch
- type UserMatchUID
- type ValidationIssue
- type ValidationMode
- type ValidationOption
- type VastTrackingEvent
- type VastVersion
- type VendorMetricOptimization
- type VendorMetricOptimizationSupportedMetric
- type VendorMetricValue
- type VendorPricingOption
- type VersionEnvelope
- type VideoPlacementType
- type ViewabilityStandard
- type WatermarkMediaType
- type WcagLevel
- type WebhookActivityRecord
- type WebhookResponseType
- type WebhookSecurityMethod
- type WebhookSigningCapabilities
- type WholesaleFeedVersioningCaps
- type WholesaleFeedWebhooksCaps
Constants ¶
const ( // ADCPProtocolVersion30 is the 3.0 release-precision wire version. ADCPProtocolVersion30 = "3.0" // ADCPProtocolVersion31 is the 3.1 release-precision wire version. ADCPProtocolVersion31 = "3.1" // ADCPMajorVersion3 is the legacy major-version value for all AdCP 3.x releases. ADCPMajorVersion3 = 3 )
Variables ¶
var AnnexIIIPolicyIDs = []string{
"eu_ai_act_annex_iii",
}
AnnexIIIPolicyIDs are policy IDs whose presence on a plan requires plan.human_review_required = true (EU AI Act Annex III high-risk categories).
var RegulatedHumanReviewCategories = []string{
"fair_housing",
"fair_lending",
"fair_employment",
"pharmaceutical_advertising",
}
RegulatedHumanReviewCategories are policy categories whose presence on a plan requires plan.human_review_required = true under the schema's if/then invariant. These regimes are governed by GDPR Art 22 and EU AI Act Annex III, which prohibit solely automated decisions affecting data subjects.
Functions ¶
func ActivateSignalResponse ¶
func ActivateSignalResponse(deployments []Deployment, sandbox bool) (*mcp.CallToolResult, any, error)
ActivateSignalResponse builds an activate_signal response.
func AddTool ¶
func AddTool[In any](server *mcp.Server, name, description string, handler func(ctx context.Context, req *mcp.CallToolRequest, input In) (*mcp.CallToolResult, any, error))
AddTool registers an MCP tool with typed input and output, using a schema that allows additional properties. This is the recommended way to register AdCP tools — it gives you compile-time type safety on both input and output while accepting protocol-level fields (like adcp_major_version) that the storyboard runner sends.
Usage:
type GetProductsRequest struct {
Brief string `json:"brief,omitempty"`
Account any `json:"account,omitempty"`
}
adcp.AddTool(server, "get_products", "Returns available products",
func(ctx context.Context, req *mcp.CallToolRequest, input GetProductsRequest) (*mcp.CallToolResult, any, error) {
return adcp.ProductsResponse(&adcp.ProductsData{Products: products, Sandbox: true})
})
func BuildCreativeResponse ¶
BuildCreativeResponse builds a build_creative response.
func CapabilitiesResponse ¶
func CapabilitiesResponse(data *CapabilitiesData) (*mcp.CallToolResult, any, error)
CapabilitiesResponse builds a get_adcp_capabilities response.
func CreateCollectionListResponse ¶
func CreateCollectionListResponse(list *CollectionList, authToken string) (*mcp.CallToolResult, any, error)
CreateCollectionListResponse builds a create_collection_list response.
func CreateMediaBuyErrorResponse ¶
func CreateMediaBuyErrorResponse(data *CreateMediaBuyError) (*mcp.CallToolResult, any, error)
CreateMediaBuyErrorResponse builds a create_media_buy schema error-branch response.
func CreateMediaBuySubmittedResponse ¶
func CreateMediaBuySubmittedResponse(taskID, message string) (*mcp.CallToolResult, any, error)
CreateMediaBuySubmittedResponse builds an async create_media_buy submitted response.
func CreateMediaBuySuccessResponse ¶
func CreateMediaBuySuccessResponse(data *CreateMediaBuySuccess) (*mcp.CallToolResult, any, error)
CreateMediaBuySuccessResponse builds a synchronous create_media_buy success response.
func CreativeFormatsResponse ¶
func CreativeFormatsResponse(formats []CreativeFormat, sandbox bool) (*mcp.CallToolResult, any, error)
CreativeFormatsResponse builds a list_creative_formats response.
func DefaultADCPVersion ¶
func DefaultADCPVersion() string
DefaultADCPVersion returns the highest 3.x release-precision version this SDK emits when a request does not pin adcp_version.
func DeleteCollectionListResponse ¶
func DeleteCollectionListResponse(listID string) (*mcp.CallToolResult, any, error)
DeleteCollectionListResponse builds a delete_collection_list response.
func DeliveryResponse ¶
func DeliveryResponse(data *DeliveryData) (*mcp.CallToolResult, any, error)
DeliveryResponse builds a get_media_buy_delivery response.
func Error ¶
func Error[T any](code string, opts ErrorOptions) (*mcp.CallToolResult, T, error)
Error builds an L3-compliant AdCP error response. Returns isError: true + structuredContent.adcp_error.
func Errorf ¶
func Errorf(code string, opts ErrorOptions) (*mcp.CallToolResult, any, error)
Errorf is a convenience wrapper for Error that returns (*mcp.CallToolResult, any, error), matching the adcp.AddTool handler signature without requiring a type parameter.
func GetCollectionListResponse ¶
func GetCollectionListResponse(list *CollectionList, collections []ResolvedCollection, pagination *PaginationResponse) (*mcp.CallToolResult, any, error)
GetCollectionListResponse builds a get_collection_list response.
func GovernanceResponse ¶
func GovernanceResponse(accounts []GovernanceResult) (*mcp.CallToolResult, any, error)
GovernanceResponse builds a sync_governance response.
func IsKnownAccountScope ¶
func IsKnownAccountScope(v AccountScope) bool
IsKnownAccountScope reports whether v is one of the current schema-defined AccountScope values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAccountStatus ¶
func IsKnownAccountStatus(v AccountStatus) bool
IsKnownAccountStatus reports whether v is one of the current schema-defined AccountStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownActionNotAllowedReason ¶
func IsKnownActionNotAllowedReason(v ActionNotAllowedReason) bool
IsKnownActionNotAllowedReason reports whether v is one of the current schema-defined ActionNotAllowedReason values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownActionSource ¶
func IsKnownActionSource(v ActionSource) bool
IsKnownActionSource reports whether v is one of the current schema-defined ActionSource values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAdcpProtocol ¶
func IsKnownAdcpProtocol(v AdcpProtocol) bool
IsKnownAdcpProtocol reports whether v is one of the current schema-defined AdcpProtocol values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAdjustmentKind ¶
func IsKnownAdjustmentKind(v AdjustmentKind) bool
IsKnownAdjustmentKind reports whether v is one of the current schema-defined AdjustmentKind values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAdvertiserIndustry ¶
func IsKnownAdvertiserIndustry(v AdvertiserIndustry) bool
IsKnownAdvertiserIndustry reports whether v is one of the current schema-defined AdvertiserIndustry values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAgeVerificationMethod ¶
func IsKnownAgeVerificationMethod(v AgeVerificationMethod) bool
IsKnownAgeVerificationMethod reports whether v is one of the current schema-defined AgeVerificationMethod values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAssessmentStatus ¶
func IsKnownAssessmentStatus(v AssessmentStatus) bool
IsKnownAssessmentStatus reports whether v is one of the current schema-defined AssessmentStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAssetContentType ¶
func IsKnownAssetContentType(v AssetContentType) bool
IsKnownAssetContentType reports whether v is one of the current schema-defined AssetContentType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAttestationClaim ¶
func IsKnownAttestationClaim(v AttestationClaim) bool
IsKnownAttestationClaim reports whether v is one of the current schema-defined AttestationClaim values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAttributionMethodology ¶
func IsKnownAttributionMethodology(v AttributionMethodology) bool
IsKnownAttributionMethodology reports whether v is one of the current schema-defined AttributionMethodology values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAttributionModel ¶
func IsKnownAttributionModel(v AttributionModel) bool
IsKnownAttributionModel reports whether v is one of the current schema-defined AttributionModel values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAudienceSource ¶
func IsKnownAudienceSource(v AudienceSource) bool
IsKnownAudienceSource reports whether v is one of the current schema-defined AudienceSource values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAudienceStatus ¶
func IsKnownAudienceStatus(v AudienceStatus) bool
IsKnownAudienceStatus reports whether v is one of the current schema-defined AudienceStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAudioChannelLayout ¶
func IsKnownAudioChannelLayout(v AudioChannelLayout) bool
IsKnownAudioChannelLayout reports whether v is one of the current schema-defined AudioChannelLayout values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAudioDistributionType ¶
func IsKnownAudioDistributionType(v AudioDistributionType) bool
IsKnownAudioDistributionType reports whether v is one of the current schema-defined AudioDistributionType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAuthScheme ¶
func IsKnownAuthScheme(v AuthScheme) bool
IsKnownAuthScheme reports whether v is one of the current schema-defined AuthScheme values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownAvailableMetric ¶
func IsKnownAvailableMetric(v AvailableMetric) bool
IsKnownAvailableMetric reports whether v is one of the current schema-defined AvailableMetric values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownBillingParty ¶
func IsKnownBillingParty(v BillingParty) bool
IsKnownBillingParty reports whether v is one of the current schema-defined BillingParty values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownBinaryVerdict ¶
func IsKnownBinaryVerdict(v BinaryVerdict) bool
IsKnownBinaryVerdict reports whether v is one of the current schema-defined BinaryVerdict values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownBrandAgentType ¶
func IsKnownBrandAgentType(v BrandAgentType) bool
IsKnownBrandAgentType reports whether v is one of the current schema-defined BrandAgentType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownC2PAWatermarkAction ¶
func IsKnownC2PAWatermarkAction(v C2PAWatermarkAction) bool
IsKnownC2PAWatermarkAction reports whether v is one of the current schema-defined C2PAWatermarkAction values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCanceledBy ¶
func IsKnownCanceledBy(v CanceledBy) bool
IsKnownCanceledBy reports whether v is one of the current schema-defined CanceledBy values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCatalogAction ¶
func IsKnownCatalogAction(v CatalogAction) bool
IsKnownCatalogAction reports whether v is one of the current schema-defined CatalogAction values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCatalogItemStatus ¶
func IsKnownCatalogItemStatus(v CatalogItemStatus) bool
IsKnownCatalogItemStatus reports whether v is one of the current schema-defined CatalogItemStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCatalogType ¶
func IsKnownCatalogType(v CatalogType) bool
IsKnownCatalogType reports whether v is one of the current schema-defined CatalogType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownChannels ¶
IsKnownChannels reports whether v is one of the current schema-defined Channels values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCloudStorageProtocol ¶
func IsKnownCloudStorageProtocol(v CloudStorageProtocol) bool
IsKnownCloudStorageProtocol reports whether v is one of the current schema-defined CloudStorageProtocol values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCoBrandingRequirement ¶
func IsKnownCoBrandingRequirement(v CoBrandingRequirement) bool
IsKnownCoBrandingRequirement reports whether v is one of the current schema-defined CoBrandingRequirement values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCollectionCadence ¶
func IsKnownCollectionCadence(v CollectionCadence) bool
IsKnownCollectionCadence reports whether v is one of the current schema-defined CollectionCadence values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCollectionKind ¶
func IsKnownCollectionKind(v CollectionKind) bool
IsKnownCollectionKind reports whether v is one of the current schema-defined CollectionKind values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCollectionRelationship ¶
func IsKnownCollectionRelationship(v CollectionRelationship) bool
IsKnownCollectionRelationship reports whether v is one of the current schema-defined CollectionRelationship values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCollectionStatus ¶
func IsKnownCollectionStatus(v CollectionStatus) bool
IsKnownCollectionStatus reports whether v is one of the current schema-defined CollectionStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCompletionSource ¶
func IsKnownCompletionSource(v CompletionSource) bool
IsKnownCompletionSource reports whether v is one of the current schema-defined CompletionSource values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownConsentBasis ¶
func IsKnownConsentBasis(v ConsentBasis) bool
IsKnownConsentBasis reports whether v is one of the current schema-defined ConsentBasis values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownContentIDType ¶
func IsKnownContentIDType(v ContentIDType) bool
IsKnownContentIDType reports whether v is one of the current schema-defined ContentIDType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownContentRatingSystem ¶
func IsKnownContentRatingSystem(v ContentRatingSystem) bool
IsKnownContentRatingSystem reports whether v is one of the current schema-defined ContentRatingSystem values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCreativeAction ¶
func IsKnownCreativeAction(v CreativeAction) bool
IsKnownCreativeAction reports whether v is one of the current schema-defined CreativeAction values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCreativeAgentCapability ¶
func IsKnownCreativeAgentCapability(v CreativeAgentCapability) bool
IsKnownCreativeAgentCapability reports whether v is one of the current schema-defined CreativeAgentCapability values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCreativeApprovalStatus ¶
func IsKnownCreativeApprovalStatus(v CreativeApprovalStatus) bool
IsKnownCreativeApprovalStatus reports whether v is one of the current schema-defined CreativeApprovalStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCreativeEventReasonCode ¶
func IsKnownCreativeEventReasonCode(v CreativeEventReasonCode) bool
IsKnownCreativeEventReasonCode reports whether v is one of the current schema-defined CreativeEventReasonCode values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCreativeIdentifierType ¶
func IsKnownCreativeIdentifierType(v CreativeIdentifierType) bool
IsKnownCreativeIdentifierType reports whether v is one of the current schema-defined CreativeIdentifierType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCreativeQuality ¶
func IsKnownCreativeQuality(v CreativeQuality) bool
IsKnownCreativeQuality reports whether v is one of the current schema-defined CreativeQuality values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCreativeSelectionStrategy ¶
func IsKnownCreativeSelectionStrategy(v CreativeSelectionStrategy) bool
IsKnownCreativeSelectionStrategy reports whether v is one of the current schema-defined CreativeSelectionStrategy values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCreativeSortField ¶
func IsKnownCreativeSortField(v CreativeSortField) bool
IsKnownCreativeSortField reports whether v is one of the current schema-defined CreativeSortField values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownCreativeStatus ¶
func IsKnownCreativeStatus(v CreativeStatus) bool
IsKnownCreativeStatus reports whether v is one of the current schema-defined CreativeStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDaastTrackingEvent ¶
func IsKnownDaastTrackingEvent(v DaastTrackingEvent) bool
IsKnownDaastTrackingEvent reports whether v is one of the current schema-defined DaastTrackingEvent values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDaastVersion ¶
func IsKnownDaastVersion(v DaastVersion) bool
IsKnownDaastVersion reports whether v is one of the current schema-defined DaastVersion values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDayOfWeek ¶
IsKnownDayOfWeek reports whether v is one of the current schema-defined DayOfWeek values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDelegationAuthority ¶
func IsKnownDelegationAuthority(v DelegationAuthority) bool
IsKnownDelegationAuthority reports whether v is one of the current schema-defined DelegationAuthority values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDeliveryType ¶
func IsKnownDeliveryType(v DeliveryType) bool
IsKnownDeliveryType reports whether v is one of the current schema-defined DeliveryType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDemographicSystem ¶
func IsKnownDemographicSystem(v DemographicSystem) bool
IsKnownDemographicSystem reports whether v is one of the current schema-defined DemographicSystem values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDerivativeType ¶
func IsKnownDerivativeType(v DerivativeType) bool
IsKnownDerivativeType reports whether v is one of the current schema-defined DerivativeType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDevicePlatform ¶
func IsKnownDevicePlatform(v DevicePlatform) bool
IsKnownDevicePlatform reports whether v is one of the current schema-defined DevicePlatform values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDeviceType ¶
func IsKnownDeviceType(v DeviceType) bool
IsKnownDeviceType reports whether v is one of the current schema-defined DeviceType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDigitalSourceType ¶
func IsKnownDigitalSourceType(v DigitalSourceType) bool
IsKnownDigitalSourceType reports whether v is one of the current schema-defined DigitalSourceType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDimensionUnit ¶
func IsKnownDimensionUnit(v DimensionUnit) bool
IsKnownDimensionUnit reports whether v is one of the current schema-defined DimensionUnit values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDisclosurePersistence ¶
func IsKnownDisclosurePersistence(v DisclosurePersistence) bool
IsKnownDisclosurePersistence reports whether v is one of the current schema-defined DisclosurePersistence values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDisclosurePosition ¶
func IsKnownDisclosurePosition(v DisclosurePosition) bool
IsKnownDisclosurePosition reports whether v is one of the current schema-defined DisclosurePosition values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDistanceUnit ¶
func IsKnownDistanceUnit(v DistanceUnit) bool
IsKnownDistanceUnit reports whether v is one of the current schema-defined DistanceUnit values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownDistributionIdentifierType ¶
func IsKnownDistributionIdentifierType(v DistributionIdentifierType) bool
IsKnownDistributionIdentifierType reports whether v is one of the current schema-defined DistributionIdentifierType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownEmbeddedProvenanceMethod ¶
func IsKnownEmbeddedProvenanceMethod(v EmbeddedProvenanceMethod) bool
IsKnownEmbeddedProvenanceMethod reports whether v is one of the current schema-defined EmbeddedProvenanceMethod values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownErrorCode ¶
IsKnownErrorCode reports whether v is one of the current schema-defined ErrorCode values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownErrorScope ¶
func IsKnownErrorScope(v ErrorScope) bool
IsKnownErrorScope reports whether v is one of the current schema-defined ErrorScope values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownEscalationSeverity ¶
func IsKnownEscalationSeverity(v EscalationSeverity) bool
IsKnownEscalationSeverity reports whether v is one of the current schema-defined EscalationSeverity values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownEventType ¶
IsKnownEventType reports whether v is one of the current schema-defined EventType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownExclusivity ¶
func IsKnownExclusivity(v Exclusivity) bool
IsKnownExclusivity reports whether v is one of the current schema-defined Exclusivity values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownFeatureCheckStatus ¶
func IsKnownFeatureCheckStatus(v FeatureCheckStatus) bool
IsKnownFeatureCheckStatus reports whether v is one of the current schema-defined FeatureCheckStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownFeedFormat ¶
func IsKnownFeedFormat(v FeedFormat) bool
IsKnownFeedFormat reports whether v is one of the current schema-defined FeedFormat values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownFeedbackSource ¶
func IsKnownFeedbackSource(v FeedbackSource) bool
IsKnownFeedbackSource reports whether v is one of the current schema-defined FeedbackSource values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownForecastMethod ¶
func IsKnownForecastMethod(v ForecastMethod) bool
IsKnownForecastMethod reports whether v is one of the current schema-defined ForecastMethod values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownForecastRangeUnit ¶
func IsKnownForecastRangeUnit(v ForecastRangeUnit) bool
IsKnownForecastRangeUnit reports whether v is one of the current schema-defined ForecastRangeUnit values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownForecastableMetric ¶
func IsKnownForecastableMetric(v ForecastableMetric) bool
IsKnownForecastableMetric reports whether v is one of the current schema-defined ForecastableMetric values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownFormatIDParameter ¶
func IsKnownFormatIDParameter(v FormatIDParameter) bool
IsKnownFormatIDParameter reports whether v is one of the current schema-defined FormatIDParameter values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownFrameRateType ¶
func IsKnownFrameRateType(v FrameRateType) bool
IsKnownFrameRateType reports whether v is one of the current schema-defined FrameRateType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownFrequencyCapScope ¶
func IsKnownFrequencyCapScope(v FrequencyCapScope) bool
IsKnownFrequencyCapScope reports whether v is one of the current schema-defined FrequencyCapScope values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownGenreTaxonomy ¶
func IsKnownGenreTaxonomy(v GenreTaxonomy) bool
IsKnownGenreTaxonomy reports whether v is one of the current schema-defined GenreTaxonomy values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownGeoLevel ¶
IsKnownGeoLevel reports whether v is one of the current schema-defined GeoLevel values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownGopType ¶
IsKnownGopType reports whether v is one of the current schema-defined GopType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownGovernanceDecision ¶
func IsKnownGovernanceDecision(v GovernanceDecision) bool
IsKnownGovernanceDecision reports whether v is one of the current schema-defined GovernanceDecision values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownGovernanceDomain ¶
func IsKnownGovernanceDomain(v GovernanceDomain) bool
IsKnownGovernanceDomain reports whether v is one of the current schema-defined GovernanceDomain values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownGovernanceMode ¶
func IsKnownGovernanceMode(v GovernanceMode) bool
IsKnownGovernanceMode reports whether v is one of the current schema-defined GovernanceMode values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownGovernancePhase ¶
func IsKnownGovernancePhase(v GovernancePhase) bool
IsKnownGovernancePhase reports whether v is one of the current schema-defined GovernancePhase values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownHTTPMethod ¶
func IsKnownHTTPMethod(v HTTPMethod) bool
IsKnownHTTPMethod reports whether v is one of the current schema-defined HTTPMethod values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownHistoryEntryType ¶
func IsKnownHistoryEntryType(v HistoryEntryType) bool
IsKnownHistoryEntryType reports whether v is one of the current schema-defined HistoryEntryType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownIdentifierTypes ¶
func IsKnownIdentifierTypes(v IdentifierTypes) bool
IsKnownIdentifierTypes reports whether v is one of the current schema-defined IdentifierTypes values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownImpairmentOfflineState ¶
func IsKnownImpairmentOfflineState(v ImpairmentOfflineState) bool
IsKnownImpairmentOfflineState reports whether v is one of the current schema-defined ImpairmentOfflineState values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownImpairmentReasonCode ¶
func IsKnownImpairmentReasonCode(v ImpairmentReasonCode) bool
IsKnownImpairmentReasonCode reports whether v is one of the current schema-defined ImpairmentReasonCode values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownInstallmentStatus ¶
func IsKnownInstallmentStatus(v InstallmentStatus) bool
IsKnownInstallmentStatus reports whether v is one of the current schema-defined InstallmentStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownJavascriptModuleType ¶
func IsKnownJavascriptModuleType(v JavascriptModuleType) bool
IsKnownJavascriptModuleType reports whether v is one of the current schema-defined JavascriptModuleType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownLandingPageRequirement ¶
func IsKnownLandingPageRequirement(v LandingPageRequirement) bool
IsKnownLandingPageRequirement reports whether v is one of the current schema-defined LandingPageRequirement values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownLegacyPostalSystem ¶
func IsKnownLegacyPostalSystem(v LegacyPostalSystem) bool
IsKnownLegacyPostalSystem reports whether v is one of the current schema-defined LegacyPostalSystem values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownLiftDimension ¶
func IsKnownLiftDimension(v LiftDimension) bool
IsKnownLiftDimension reports whether v is one of the current schema-defined LiftDimension values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownLogoSlot ¶
IsKnownLogoSlot reports whether v is one of the current schema-defined LogoSlot values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMakegoodRemedy ¶
func IsKnownMakegoodRemedy(v MakegoodRemedy) bool
IsKnownMakegoodRemedy reports whether v is one of the current schema-defined MakegoodRemedy values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMarkdownFlavor ¶
func IsKnownMarkdownFlavor(v MarkdownFlavor) bool
IsKnownMarkdownFlavor reports whether v is one of the current schema-defined MarkdownFlavor values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMatchIDType ¶
func IsKnownMatchIDType(v MatchIDType) bool
IsKnownMatchIDType reports whether v is one of the current schema-defined MatchIDType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMatchType ¶
IsKnownMatchType reports whether v is one of the current schema-defined MatchType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMediaBuyActionMode ¶
func IsKnownMediaBuyActionMode(v MediaBuyActionMode) bool
IsKnownMediaBuyActionMode reports whether v is one of the current schema-defined MediaBuyActionMode values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMediaBuyHealth ¶
func IsKnownMediaBuyHealth(v MediaBuyHealth) bool
IsKnownMediaBuyHealth reports whether v is one of the current schema-defined MediaBuyHealth values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMediaBuyStatus ¶
func IsKnownMediaBuyStatus(v MediaBuyStatus) bool
IsKnownMediaBuyStatus reports whether v is one of the current schema-defined MediaBuyStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMediaBuyValidAction ¶
func IsKnownMediaBuyValidAction(v MediaBuyValidAction) bool
IsKnownMediaBuyValidAction reports whether v is one of the current schema-defined MediaBuyValidAction values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMetricScope ¶
func IsKnownMetricScope(v MetricScope) bool
IsKnownMetricScope reports whether v is one of the current schema-defined MetricScope values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMetricType ¶
func IsKnownMetricType(v MetricType) bool
IsKnownMetricType reports whether v is one of the current schema-defined MetricType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMetroSystem ¶
func IsKnownMetroSystem(v MetroSystem) bool
IsKnownMetroSystem reports whether v is one of the current schema-defined MetroSystem values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownMoovAtomPosition ¶
func IsKnownMoovAtomPosition(v MoovAtomPosition) bool
IsKnownMoovAtomPosition reports whether v is one of the current schema-defined MoovAtomPosition values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownNotificationType ¶
func IsKnownNotificationType(v NotificationType) bool
IsKnownNotificationType reports whether v is one of the current schema-defined NotificationType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownOfferingAvailabilityStatus ¶
func IsKnownOfferingAvailabilityStatus(v OfferingAvailabilityStatus) bool
IsKnownOfferingAvailabilityStatus reports whether v is one of the current schema-defined OfferingAvailabilityStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownOptimizationMetric ¶
func IsKnownOptimizationMetric(v OptimizationMetric) bool
IsKnownOptimizationMetric reports whether v is one of the current schema-defined OptimizationMetric values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownOutcomeType ¶
func IsKnownOutcomeType(v OutcomeType) bool
IsKnownOutcomeType reports whether v is one of the current schema-defined OutcomeType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPacing ¶
IsKnownPacing reports whether v is one of the current schema-defined Pacing values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPaymentTerms ¶
func IsKnownPaymentTerms(v PaymentTerms) bool
IsKnownPaymentTerms reports whether v is one of the current schema-defined PaymentTerms values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPerformanceStandardMetric ¶
func IsKnownPerformanceStandardMetric(v PerformanceStandardMetric) bool
IsKnownPerformanceStandardMetric reports whether v is one of the current schema-defined PerformanceStandardMetric values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPolicyCategory ¶
func IsKnownPolicyCategory(v PolicyCategory) bool
IsKnownPolicyCategory reports whether v is one of the current schema-defined PolicyCategory values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPolicyEnforcement ¶
func IsKnownPolicyEnforcement(v PolicyEnforcement) bool
IsKnownPolicyEnforcement reports whether v is one of the current schema-defined PolicyEnforcement values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPostalSystem ¶
func IsKnownPostalSystem(v PostalSystem) bool
IsKnownPostalSystem reports whether v is one of the current schema-defined PostalSystem values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPreviewOutputFormat ¶
func IsKnownPreviewOutputFormat(v PreviewOutputFormat) bool
IsKnownPreviewOutputFormat reports whether v is one of the current schema-defined PreviewOutputFormat values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPricingModel ¶
func IsKnownPricingModel(v PricingModel) bool
IsKnownPricingModel reports whether v is one of the current schema-defined PricingModel values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownProductionQuality ¶
func IsKnownProductionQuality(v ProductionQuality) bool
IsKnownProductionQuality reports whether v is one of the current schema-defined ProductionQuality values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPropertyType ¶
func IsKnownPropertyType(v PropertyType) bool
IsKnownPropertyType reports whether v is one of the current schema-defined PropertyType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownProposalStatus ¶
func IsKnownProposalStatus(v ProposalStatus) bool
IsKnownProposalStatus reports whether v is one of the current schema-defined ProposalStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPublisherIdentifierTypes ¶
func IsKnownPublisherIdentifierTypes(v PublisherIdentifierTypes) bool
IsKnownPublisherIdentifierTypes reports whether v is one of the current schema-defined PublisherIdentifierTypes values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownPurchaseType ¶
func IsKnownPurchaseType(v PurchaseType) bool
IsKnownPurchaseType reports whether v is one of the current schema-defined PurchaseType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownReachUnit ¶
IsKnownReachUnit reports whether v is one of the current schema-defined ReachUnit values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownReportingFrequency ¶
func IsKnownReportingFrequency(v ReportingFrequency) bool
IsKnownReportingFrequency reports whether v is one of the current schema-defined ReportingFrequency values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownResponseType ¶
func IsKnownResponseType(v ResponseType) bool
IsKnownResponseType reports whether v is one of the current schema-defined ResponseType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownRestrictedAttribute ¶
func IsKnownRestrictedAttribute(v RestrictedAttribute) bool
IsKnownRestrictedAttribute reports whether v is one of the current schema-defined RestrictedAttribute values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownRightType ¶
IsKnownRightType reports whether v is one of the current schema-defined RightType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownRightUse ¶
IsKnownRightUse reports whether v is one of the current schema-defined RightUse values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownRightsBillingPeriod ¶
func IsKnownRightsBillingPeriod(v RightsBillingPeriod) bool
IsKnownRightsBillingPeriod reports whether v is one of the current schema-defined RightsBillingPeriod values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownScanType ¶
IsKnownScanType reports whether v is one of the current schema-defined ScanType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSiSessionStatus ¶
func IsKnownSiSessionStatus(v SiSessionStatus) bool
IsKnownSiSessionStatus reports whether v is one of the current schema-defined SiSessionStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSignalCatalogType ¶
func IsKnownSignalCatalogType(v SignalCatalogType) bool
IsKnownSignalCatalogType reports whether v is one of the current schema-defined SignalCatalogType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSignalSource ¶
func IsKnownSignalSource(v SignalSource) bool
IsKnownSignalSource reports whether v is one of the current schema-defined SignalSource values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSignalValueType ¶
func IsKnownSignalValueType(v SignalValueType) bool
IsKnownSignalValueType reports whether v is one of the current schema-defined SignalValueType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSnapshotUnavailableReason ¶
func IsKnownSnapshotUnavailableReason(v SnapshotUnavailableReason) bool
IsKnownSnapshotUnavailableReason reports whether v is one of the current schema-defined SnapshotUnavailableReason values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSocialPlacementSurface ¶
func IsKnownSocialPlacementSurface(v SocialPlacementSurface) bool
IsKnownSocialPlacementSurface reports whether v is one of the current schema-defined SocialPlacementSurface values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSortDirection ¶
func IsKnownSortDirection(v SortDirection) bool
IsKnownSortDirection reports whether v is one of the current schema-defined SortDirection values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSortMetric ¶
func IsKnownSortMetric(v SortMetric) bool
IsKnownSortMetric reports whether v is one of the current schema-defined SortMetric values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSpecialCategory ¶
func IsKnownSpecialCategory(v SpecialCategory) bool
IsKnownSpecialCategory reports whether v is one of the current schema-defined SpecialCategory values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSpecialism ¶
func IsKnownSpecialism(v Specialism) bool
IsKnownSpecialism reports whether v is one of the current schema-defined Specialism values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownSponsoredPlacementType ¶
func IsKnownSponsoredPlacementType(v SponsoredPlacementType) bool
IsKnownSponsoredPlacementType reports whether v is one of the current schema-defined SponsoredPlacementType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownTalentRole ¶
func IsKnownTalentRole(v TalentRole) bool
IsKnownTalentRole reports whether v is one of the current schema-defined TalentRole values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownTaskStatus ¶
func IsKnownTaskStatus(v TaskStatus) bool
IsKnownTaskStatus reports whether v is one of the current schema-defined TaskStatus values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownTaskType ¶
IsKnownTaskType reports whether v is one of the current schema-defined TaskType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownTransportMode ¶
func IsKnownTransportMode(v TransportMode) bool
IsKnownTransportMode reports whether v is one of the current schema-defined TransportMode values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownTravelTimeUnit ¶
func IsKnownTravelTimeUnit(v TravelTimeUnit) bool
IsKnownTravelTimeUnit reports whether v is one of the current schema-defined TravelTimeUnit values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownUIDType ¶
IsKnownUIDType reports whether v is one of the current schema-defined UIDType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownURLAssetType ¶
func IsKnownURLAssetType(v URLAssetType) bool
IsKnownURLAssetType reports whether v is one of the current schema-defined URLAssetType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownUniversalMacro ¶
func IsKnownUniversalMacro(v UniversalMacro) bool
IsKnownUniversalMacro reports whether v is one of the current schema-defined UniversalMacro values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownUpdateFrequency ¶
func IsKnownUpdateFrequency(v UpdateFrequency) bool
IsKnownUpdateFrequency reports whether v is one of the current schema-defined UpdateFrequency values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownValidationMode ¶
func IsKnownValidationMode(v ValidationMode) bool
IsKnownValidationMode reports whether v is one of the current schema-defined ValidationMode values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownVastTrackingEvent ¶
func IsKnownVastTrackingEvent(v VastTrackingEvent) bool
IsKnownVastTrackingEvent reports whether v is one of the current schema-defined VastTrackingEvent values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownVastVersion ¶
func IsKnownVastVersion(v VastVersion) bool
IsKnownVastVersion reports whether v is one of the current schema-defined VastVersion values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownVideoPlacementType ¶
func IsKnownVideoPlacementType(v VideoPlacementType) bool
IsKnownVideoPlacementType reports whether v is one of the current schema-defined VideoPlacementType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownViewabilityStandard ¶
func IsKnownViewabilityStandard(v ViewabilityStandard) bool
IsKnownViewabilityStandard reports whether v is one of the current schema-defined ViewabilityStandard values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownWatermarkMediaType ¶
func IsKnownWatermarkMediaType(v WatermarkMediaType) bool
IsKnownWatermarkMediaType reports whether v is one of the current schema-defined WatermarkMediaType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownWcagLevel ¶
IsKnownWcagLevel reports whether v is one of the current schema-defined WcagLevel values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownWebhookResponseType ¶
func IsKnownWebhookResponseType(v WebhookResponseType) bool
IsKnownWebhookResponseType reports whether v is one of the current schema-defined WebhookResponseType values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func IsKnownWebhookSecurityMethod ¶
func IsKnownWebhookSecurityMethod(v WebhookSecurityMethod) bool
IsKnownWebhookSecurityMethod reports whether v is one of the current schema-defined WebhookSecurityMethod values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
func ListCollectionListsResponse ¶
func ListCollectionListsResponse(lists []CollectionList, pagination *PaginationResponse) (*mcp.CallToolResult, any, error)
ListCollectionListsResponse builds a list_collection_lists response.
func ListCreativesResponse ¶
ListCreativesResponse builds a list_creatives response with required query_summary and pagination fields.
func LogEventResponse ¶
func LogEventResponse(received, processed int, matchQuality float64, sandbox bool) (*mcp.CallToolResult, any, error)
LogEventResponse builds a log_event response. matchQuality is the attribution match quality score (0.0-1.0). Use 0 to omit.
func MajorFromADCPVersion ¶
MajorFromADCPVersion extracts the major component from an AdCP wire version.
func MediaBuyResponse ¶
func MediaBuyResponse(data CreateMediaBuyResponse) (*mcp.CallToolResult, any, error)
MediaBuyResponse builds a create_media_buy response.
func MediaBuysDataResponse ¶
func MediaBuysDataResponse(data *GetMediaBuysResponse) (*mcp.CallToolResult, any, error)
MediaBuysDataResponse builds a get_media_buys response with the full envelope.
func MediaBuysResponse ¶
func MediaBuysResponse(mediaBuys []MediaBuyData, sandbox bool) (*mcp.CallToolResult, any, error)
MediaBuysResponse builds a get_media_buys response.
func NegotiateADCPVersion ¶
func NegotiateADCPVersion(requestedVersion string, requestedMajor int, supported []string) (string, bool)
NegotiateADCPVersion selects the version a server should serve for a request.
If requestedVersion is present, it must be the buyer's release pin. If only requestedMajor is present, the highest supported release in that major is selected for 3.x backward compatibility. If neither is present, the highest supported release is selected.
func NewError ¶
func NewError(code string, opts ErrorOptions) error
NewError creates an error that Register handlers can return to produce a typed AdCP error response instead of a generic INTERNAL_ERROR.
Usage in a handler:
return nil, adcp.NewError("BUDGET_TOO_LOW", adcp.ErrorOptions{
Message: "Budget $500 is below the $1,000 minimum for video",
Field: "budget",
})
func NormalizeADCPVersion ¶
NormalizeADCPVersion converts full semver bundle/build versions such as "3.1.0-rc.3" into release-precision wire versions such as "3.1-rc.3".
func PerformanceFeedbackResponse ¶
func PerformanceFeedbackResponse(sandbox bool) (*mcp.CallToolResult, any, error)
PerformanceFeedbackResponse builds a provide_performance_feedback response.
func PreviewCreativeResponse ¶
func PreviewCreativeResponse(creativeID, name, previewURL string, width, height int) (*mcp.CallToolResult, any, error)
PreviewCreativeResponse builds a preview_creative response for a single creative.
func ProductsResponse ¶
func ProductsResponse(data *ProductsData) (*mcp.CallToolResult, any, error)
ProductsResponse builds a get_products response.
func Register ¶
Register wires AdCP tool handlers onto an MCP server. Only tools with registered handlers are exposed. supported_protocols is auto-detected.
IdempotencyReplayTTL is required (see Config docs). Register panics at startup if it is unset or out of range — AdCP 3.0 requires sellers to declare adcp.idempotency.replay_ttl_seconds in capabilities.
Account resolution: if ResolveAccount is set, handlers that accept an AccountReference receive the resolved account. If the account is not found, the SDK returns ACCOUNT_NOT_FOUND automatically.
Error handling: handlers can return adcp.NewError("CODE", opts) for typed AdCP errors. Plain errors become INTERNAL_ERROR.
Usage:
adcp.Register(server, adcp.Config{
IdempotencyReplayTTL: 24 * time.Hour,
ResolveAccount: func(ctx context.Context, ref adcp.AccountReference) (any, error) {
return db.FindAccount(ref.Brand.Domain, ref.Operator)
},
GetProducts: func(ctx context.Context, acct any, req *adcp.GetProductsRequest) (*adcp.ProductsData, error) {
return &adcp.ProductsData{Products: catalog.Query(req.Brief)}, nil
},
CreateMediaBuy: func(ctx context.Context, acct any, req *adcp.CreateMediaBuyRequest) (adcp.CreateMediaBuyResponse, error) {
return oms.BookCampaign(req)
},
})
func RegisterTestController ¶
func RegisterTestController(server *mcp.Server, store *TestControllerStore)
RegisterTestController adds the comply_test_controller tool to an MCP server. This tool allows arbitrary state mutations for compliance testing and MUST NOT be registered in production. Gate registration on a sandbox flag in your agent.
func Result ¶
Result builds a generic tool response with StructuredContent. Returns 3 values for use with adcp.AddTool handlers.
func Serve ¶
func Serve(createAgent func() *mcp.Server, opts ...ServeOption) error
Serve starts an HTTP server that serves an AdCP MCP agent.
createAgent is called to get the MCP server instance. The handler uses StreamableHTTPHandler from the Go MCP SDK.
server := mcp.NewServer(...)
// add tools...
adcp.Serve(func() *mcp.Server { return server })
func SignalsResponse ¶
SignalsResponse builds a get_signals response.
func SupportedADCPVersions ¶
func SupportedADCPVersions() []string
SupportedADCPVersions returns the 3.x release-precision versions this SDK supports on the wire. Callers receive a fresh slice.
func SyncAccountsResponse ¶
func SyncAccountsResponse(accounts []AccountResult, sandbox bool) (*mcp.CallToolResult, any, error)
SyncAccountsResponse builds a sync_accounts response.
func SyncCatalogsResponse ¶
func SyncCatalogsResponse(catalogs []CatalogResult, sandbox bool) (*mcp.CallToolResult, any, error)
SyncCatalogsResponse builds a sync_catalogs response.
func SyncCreativesResponse ¶
func SyncCreativesResponse(creatives []CreativeResult, sandbox bool) (*mcp.CallToolResult, any, error)
SyncCreativesResponse builds a sync_creatives response.
func SyncEventSourcesResponse ¶
func SyncEventSourcesResponse(sources []EventSourceResult, sandbox bool) (*mcp.CallToolResult, any, error)
SyncEventSourcesResponse builds a sync_event_sources response.
func UpdateCollectionListResponse ¶
func UpdateCollectionListResponse(list *CollectionList) (*mcp.CallToolResult, any, error)
UpdateCollectionListResponse builds an update_collection_list response.
Types ¶
type ADCPVersion ¶
type ADCPVersion struct {
MajorVersions []int `json:"major_versions"`
SupportedVersions []string `json:"supported_versions,omitempty"`
BuildVersion string `json:"build_version,omitempty"`
Idempotency IdempotencyCaps `json:"idempotency"`
}
type Account ¶
type Account struct {
AccountID string `json:"account_id"` // Unique identifier for this account
Name string `json:"name"` // Human-readable account name (e.g., 'Acme', 'Acme c/o Pinnacle')
Advertiser string `json:"advertiser,omitempty"` // The advertiser whose rates apply to this account
BillingProxy string `json:"billing_proxy,omitempty"` // Optional intermediary who receives invoices on behalf of the advertiser (e.g.
Status AccountStatus `json:"status"` // Account lifecycle status. See the Accounts Protocol overview for the
Brand *BrandReference `json:"brand,omitempty"` // Brand reference identifying the advertiser
Operator string `json:"operator,omitempty"` // Domain of the entity operating this account. When the brand operates directly
Billing BillingParty `json:"billing,omitempty"` // Who is invoiced on this account. See billing_entity for the invoiced party's
BillingEntity *BusinessEntity `json:"billing_entity,omitempty"` // Business entity details for the party responsible for payment. Contains the
RateCard string `json:"rate_card,omitempty"` // Identifier for the rate card applied to this account
PaymentTerms PaymentTerms `json:"payment_terms,omitempty"` // Payment terms agreed for this account. Binding for all invoices when the
CreditLimit *AccountCreditLimit `json:"credit_limit,omitempty"` // Maximum outstanding balance allowed
Setup *AccountSetup `json:"setup,omitempty"` // Present when status is 'pending_approval'. Contains next steps for completing
AccountScope AccountScope `json:"account_scope,omitempty"`
GovernanceAgents []AccountGovernanceAgent `json:"governance_agents,omitempty"` // Governance agent endpoint registered on this account. Exactly one entry per
ReportingBucket *ReportingBucket `json:"reporting_bucket,omitempty"` // Cloud storage bucket where the seller delivers offline reporting files for
Sandbox *bool `json:"sandbox,omitempty"` // When true, this is a sandbox account — no real platform calls, no real spend.
NotificationConfigs []NotificationConfig `json:"notification_configs,omitempty"` // Account-level webhook subscriptions for notifications whose lifecycle outlives
Ext any `json:"ext,omitempty"`
}
Account — A billing account representing the relationship between a buyer and seller. The account determines
type AccountAuthorization ¶
type AccountAuthorization struct {
AllowedTasks []string `json:"allowed_tasks"` // Canonical snake_case task names the caller may invoke against this account
FieldScopes map[string][]string `json:"field_scopes,omitempty"` // Optional per-task allowlist of request fields the caller may set. Keys are
ScopeName any `json:"scope_name,omitempty"` // Optional named scope identifier. When present, callers and the vendor agent
ReadOnly *bool `json:"read_only,omitempty"` // Convenience flag. When true, the caller is permitted only non-mutating tasks.
}
AccountAuthorization — The authenticated caller's grant against a specific account: which tasks are callable, which
type AccountCapabilities ¶
type AccountCapabilities struct {
RequireOperatorAuth *bool `json:"require_operator_auth,omitempty"`
AuthorizationEndpoint string `json:"authorization_endpoint,omitempty"`
SupportedBilling []string `json:"supported_billing"`
RequiredForProducts *bool `json:"required_for_products,omitempty"`
AccountFinancials *bool `json:"account_financials,omitempty"`
Sandbox *bool `json:"sandbox,omitempty"`
}
AccountCapabilities describes how accounts are established and billed. supported_billing is required when present.
type AccountCreditLimit ¶
AccountCreditLimit — Maximum outstanding balance allowed
type AccountGovernanceAgent ¶
type AccountGovernanceAgent struct {
URL string `json:"url"` // Governance agent endpoint URL. Must use HTTPS.
}
type AccountInput ¶
type AccountInput struct {
Brand *BrandReference `json:"brand,omitempty"`
Operator string `json:"operator,omitempty"`
Billing string `json:"billing,omitempty"`
PaymentTerms string `json:"payment_terms,omitempty"`
AccountID string `json:"account_id,omitempty"`
Sandbox bool `json:"sandbox,omitempty"`
}
AccountInput is a single account in a sync_accounts request.
type AccountReference ¶
type AccountReference struct {
AccountID string `json:"account_id,omitempty"`
Brand *BrandReference `json:"brand,omitempty"`
Operator string `json:"operator,omitempty"`
Sandbox bool `json:"sandbox,omitempty"`
}
type AccountResult ¶
type AccountResult struct {
AccountID string `json:"account_id"`
Brand *BrandReference `json:"brand,omitempty"`
Operator string `json:"operator,omitempty"`
Action string `json:"action"`
Status string `json:"status"`
AccountScope string `json:"account_scope,omitempty"`
Setup *AccountSetup `json:"setup,omitempty"`
PaymentTerms string `json:"payment_terms,omitempty"`
Billing string `json:"billing,omitempty"`
}
type AccountScope ¶
type AccountScope = string
AccountScope — How the seller scoped a billing account relative to the operator and brand
const ( AccountScopeOperator AccountScope = "operator" AccountScopeBrand AccountScope = "brand" AccountScopeOperatorBrand AccountScope = "operator_brand" AccountScopeAgent AccountScope = "agent" )
func KnownAccountScopeValues ¶
func KnownAccountScopeValues() []AccountScope
KnownAccountScopeValues returns the current schema-defined values for AccountScope.
func ParseAccountScope ¶
func ParseAccountScope(s string) (AccountScope, error)
ParseAccountScope returns s as AccountScope when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AccountSetup ¶
type AccountStatus ¶
type AccountStatus = string
AccountStatus — Advertiser account status in the account lifecycle
const ( AccountStatusActive AccountStatus = "active" AccountStatusPendingApproval AccountStatus = "pending_approval" AccountStatusRejected AccountStatus = "rejected" AccountStatusPaymentRequired AccountStatus = "payment_required" AccountStatusSuspended AccountStatus = "suspended" AccountStatusClosed AccountStatus = "closed" )
func KnownAccountStatusValues ¶
func KnownAccountStatusValues() []AccountStatus
KnownAccountStatusValues returns the current schema-defined values for AccountStatus.
func ParseAccountStatus ¶
func ParseAccountStatus(s string) (AccountStatus, error)
ParseAccountStatus returns s as AccountStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AccountWithAuthorization ¶
type AccountWithAuthorization struct {
AccountID string `json:"account_id"` // Unique identifier for this account
Name string `json:"name"` // Human-readable account name (e.g., 'Acme', 'Acme c/o Pinnacle')
Advertiser string `json:"advertiser,omitempty"` // The advertiser whose rates apply to this account
BillingProxy string `json:"billing_proxy,omitempty"` // Optional intermediary who receives invoices on behalf of the advertiser (e.g.
Status AccountStatus `json:"status"` // Account lifecycle status. See the Accounts Protocol overview for the
Brand *BrandReference `json:"brand,omitempty"` // Brand reference identifying the advertiser
Operator string `json:"operator,omitempty"` // Domain of the entity operating this account. When the brand operates directly
Billing BillingParty `json:"billing,omitempty"` // Who is invoiced on this account. See billing_entity for the invoiced party's
BillingEntity *BusinessEntity `json:"billing_entity,omitempty"` // Business entity details for the party responsible for payment. Contains the
RateCard string `json:"rate_card,omitempty"` // Identifier for the rate card applied to this account
PaymentTerms PaymentTerms `json:"payment_terms,omitempty"` // Payment terms agreed for this account. Binding for all invoices when the
CreditLimit *AccountCreditLimit `json:"credit_limit,omitempty"` // Maximum outstanding balance allowed
Setup *AccountSetup `json:"setup,omitempty"` // Present when status is 'pending_approval'. Contains next steps for completing
AccountScope AccountScope `json:"account_scope,omitempty"`
GovernanceAgents []AccountGovernanceAgent `json:"governance_agents,omitempty"` // Governance agent endpoint registered on this account. Exactly one entry per
ReportingBucket *ReportingBucket `json:"reporting_bucket,omitempty"` // Cloud storage bucket where the seller delivers offline reporting files for
Sandbox *bool `json:"sandbox,omitempty"` // When true, this is a sandbox account — no real platform calls, no real spend.
NotificationConfigs []NotificationConfig `json:"notification_configs,omitempty"` // Account-level webhook subscriptions for notifications whose lifecycle outlives
Ext any `json:"ext,omitempty"`
Authorization *AccountAuthorization `json:"authorization,omitempty"` // Optional. The caller's scope grant against this account. Vendor agents of any
}
AccountWithAuthorization — List-accounts response item: the full Account object plus optional caller-specific authorization
type ActionNotAllowedReason ¶
type ActionNotAllowedReason = string
ActionNotAllowedReason — Reason a mutation on update_media_buy was rejected with ACTION_NOT_ALLOWED.
const ( ActionNotAllowedReasonWrongStatus ActionNotAllowedReason = "wrong_status" ActionNotAllowedReasonNotSupportedOnProduct ActionNotAllowedReason = "not_supported_on_product" ActionNotAllowedReasonNotSupportedOnBuy ActionNotAllowedReason = "not_supported_on_buy" ActionNotAllowedReasonModeMismatch ActionNotAllowedReason = "mode_mismatch" )
func KnownActionNotAllowedReasonValues ¶
func KnownActionNotAllowedReasonValues() []ActionNotAllowedReason
KnownActionNotAllowedReasonValues returns the current schema-defined values for ActionNotAllowedReason.
func ParseActionNotAllowedReason ¶
func ParseActionNotAllowedReason(s string) (ActionNotAllowedReason, error)
ParseActionNotAllowedReason returns s as ActionNotAllowedReason when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ActionSource ¶
type ActionSource = string
ActionSource — Where the conversion event originated
const ( ActionSourceWebsite ActionSource = "website" ActionSourceApp ActionSource = "app" ActionSourceOffline ActionSource = "offline" ActionSourcePhoneCall ActionSource = "phone_call" ActionSourceChat ActionSource = "chat" ActionSourceEmail ActionSource = "email" ActionSourceInStore ActionSource = "in_store" ActionSourceSystemGenerated ActionSource = "system_generated" ActionSourceOther ActionSource = "other" )
func KnownActionSourceValues ¶
func KnownActionSourceValues() []ActionSource
KnownActionSourceValues returns the current schema-defined values for ActionSource.
func ParseActionSource ¶
func ParseActionSource(s string) (ActionSource, error)
ParseActionSource returns s as ActionSource when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ActivateSignalRequest ¶
type ActivateSignalRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Action string `json:"action,omitempty"` // Whether to activate or deactivate the signal. Deactivating removes the segment
SignalAgentSegmentID string `json:"signal_agent_segment_id"` // Opaque activation handle returned in the signal_agent_segment_id field of each
Destinations []DestinationInput `json:"destinations"` // Target destination(s) for activation. If the authenticated caller matches one
PricingOptionID string `json:"pricing_option_id,omitempty"` // The pricing option selected from the signal's pricing_options in the
Account *AccountReference `json:"account,omitempty"` // Account for this activation. Associates with a commercial relationship
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for this request. Prevents duplicate activations
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ActivateSignalRequest — Request parameters for activating or deactivating a signal on deployment targets
type ActivationKey ¶
type AdInventoryConfig ¶
type AdInventoryConfig struct {
ExpectedBreaks int `json:"expected_breaks"` // Number of planned ad breaks in the installment
TotalAdSeconds int `json:"total_ad_seconds,omitempty"` // Total seconds of ad time across all breaks
MaxAdDurationSeconds int `json:"max_ad_duration_seconds,omitempty"` // Maximum duration in seconds for a single ad within a break. Buyers need this
UnplannedBreaks *bool `json:"unplanned_breaks,omitempty"` // Whether ad breaks are dynamic and driven by live conditions (sports timeouts
SupportedFormats []string `json:"supported_formats,omitempty"` // Ad format types supported in breaks (e.g., 'video', 'audio', 'display')
}
AdInventoryConfig — Break-based ad inventory configuration for an installment. Describes the ad breaks available
type AdcpProtocol ¶
type AdcpProtocol = string
AdcpProtocol — AdCP protocols for task categorization — referenced by tasks-list-request
const ( AdcpProtocolMediaBuy AdcpProtocol = "media-buy" AdcpProtocolSignals AdcpProtocol = "signals" AdcpProtocolGovernance AdcpProtocol = "governance" AdcpProtocolCreative AdcpProtocol = "creative" AdcpProtocolBrand AdcpProtocol = "brand" AdcpProtocolSponsoredIntelligence AdcpProtocol = "sponsored-intelligence" AdcpProtocolMeasurement AdcpProtocol = "measurement" )
func KnownAdcpProtocolValues ¶
func KnownAdcpProtocolValues() []AdcpProtocol
KnownAdcpProtocolValues returns the current schema-defined values for AdcpProtocol.
func ParseAdcpProtocol ¶
func ParseAdcpProtocol(s string) (AdcpProtocol, error)
ParseAdcpProtocol returns s as AdcpProtocol when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AdjustmentKind ¶
type AdjustmentKind = string
AdjustmentKind — Categorizes how a price adjustment affects the transaction
const ( AdjustmentKindFee AdjustmentKind = "fee" AdjustmentKindDiscount AdjustmentKind = "discount" AdjustmentKindCommission AdjustmentKind = "commission" AdjustmentKindSettlement AdjustmentKind = "settlement" )
func KnownAdjustmentKindValues ¶
func KnownAdjustmentKindValues() []AdjustmentKind
KnownAdjustmentKindValues returns the current schema-defined values for AdjustmentKind.
func ParseAdjustmentKind ¶
func ParseAdjustmentKind(s string) (AdjustmentKind, error)
ParseAdjustmentKind returns s as AdjustmentKind when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AdvertiserIndustry ¶
type AdvertiserIndustry = string
AdvertiserIndustry — Standardized advertiser industry classification. Top-level categories classify
const ( AdvertiserIndustryAutomotive AdvertiserIndustry = "automotive" AdvertiserIndustryAutomotiveElectricVehicles AdvertiserIndustry = "automotive.electric_vehicles" AdvertiserIndustryAutomotivePartsAccessories AdvertiserIndustry = "automotive.parts_accessories" AdvertiserIndustryAutomotiveLuxury AdvertiserIndustry = "automotive.luxury" AdvertiserIndustryBeautyCosmetics AdvertiserIndustry = "beauty_cosmetics" AdvertiserIndustryBeautyCosmeticsSkincare AdvertiserIndustry = "beauty_cosmetics.skincare" AdvertiserIndustryBeautyCosmeticsFragrance AdvertiserIndustry = "beauty_cosmetics.fragrance" AdvertiserIndustryBeautyCosmeticsHaircare AdvertiserIndustry = "beauty_cosmetics.haircare" AdvertiserIndustryCannabis AdvertiserIndustry = "cannabis" AdvertiserIndustryCpg AdvertiserIndustry = "cpg" AdvertiserIndustryCpgPersonalCare AdvertiserIndustry = "cpg.personal_care" AdvertiserIndustryCpgHousehold AdvertiserIndustry = "cpg.household" AdvertiserIndustryDating AdvertiserIndustry = "dating" AdvertiserIndustryEducation AdvertiserIndustry = "education" AdvertiserIndustryEducationHigherEducation AdvertiserIndustry = "education.higher_education" AdvertiserIndustryEducationOnlineLearning AdvertiserIndustry = "education.online_learning" AdvertiserIndustryEducationK12 AdvertiserIndustry = "education.k12" AdvertiserIndustryEnergyUtilities AdvertiserIndustry = "energy_utilities" AdvertiserIndustryEnergyUtilitiesRenewable AdvertiserIndustry = "energy_utilities.renewable" AdvertiserIndustryFashionApparel AdvertiserIndustry = "fashion_apparel" AdvertiserIndustryFashionApparelLuxury AdvertiserIndustry = "fashion_apparel.luxury" AdvertiserIndustryFashionApparelSportswear AdvertiserIndustry = "fashion_apparel.sportswear" AdvertiserIndustryFinance AdvertiserIndustry = "finance" AdvertiserIndustryFinanceBanking AdvertiserIndustry = "finance.banking" AdvertiserIndustryFinanceInsurance AdvertiserIndustry = "finance.insurance" AdvertiserIndustryFinanceInvestment AdvertiserIndustry = "finance.investment" AdvertiserIndustryFinanceCryptocurrency AdvertiserIndustry = "finance.cryptocurrency" AdvertiserIndustryFoodBeverage AdvertiserIndustry = "food_beverage" AdvertiserIndustryFoodBeverageAlcohol AdvertiserIndustry = "food_beverage.alcohol" AdvertiserIndustryFoodBeverageRestaurants AdvertiserIndustry = "food_beverage.restaurants" AdvertiserIndustryFoodBeveragePackagedGoods AdvertiserIndustry = "food_beverage.packaged_goods" AdvertiserIndustryGamblingBetting AdvertiserIndustry = "gambling_betting" AdvertiserIndustryGamblingBettingSportsBetting AdvertiserIndustry = "gambling_betting.sports_betting" AdvertiserIndustryGamblingBettingCasino AdvertiserIndustry = "gambling_betting.casino" AdvertiserIndustryGaming AdvertiserIndustry = "gaming" AdvertiserIndustryGamingMobile AdvertiserIndustry = "gaming.mobile" AdvertiserIndustryGamingConsolePc AdvertiserIndustry = "gaming.console_pc" AdvertiserIndustryGamingEsports AdvertiserIndustry = "gaming.esports" AdvertiserIndustryGovernmentNonprofit AdvertiserIndustry = "government_nonprofit" AdvertiserIndustryGovernmentNonprofitPolitical AdvertiserIndustry = "government_nonprofit.political" AdvertiserIndustryGovernmentNonprofitCharity AdvertiserIndustry = "government_nonprofit.charity" AdvertiserIndustryHealthcare AdvertiserIndustry = "healthcare" AdvertiserIndustryHealthcarePharmaceutical AdvertiserIndustry = "healthcare.pharmaceutical" AdvertiserIndustryHealthcareMedicalDevices AdvertiserIndustry = "healthcare.medical_devices" AdvertiserIndustryHealthcareWellness AdvertiserIndustry = "healthcare.wellness" AdvertiserIndustryHomeGarden AdvertiserIndustry = "home_garden" AdvertiserIndustryHomeGardenFurniture AdvertiserIndustry = "home_garden.furniture" AdvertiserIndustryHomeGardenHomeImprovement AdvertiserIndustry = "home_garden.home_improvement" AdvertiserIndustryMediaEntertainment AdvertiserIndustry = "media_entertainment" AdvertiserIndustryMediaEntertainmentPodcasts AdvertiserIndustry = "media_entertainment.podcasts" AdvertiserIndustryMediaEntertainmentMusic AdvertiserIndustry = "media_entertainment.music" AdvertiserIndustryMediaEntertainmentFilmTv AdvertiserIndustry = "media_entertainment.film_tv" AdvertiserIndustryMediaEntertainmentPublishing AdvertiserIndustry = "media_entertainment.publishing" AdvertiserIndustryMediaEntertainmentLiveEvents AdvertiserIndustry = "media_entertainment.live_events" AdvertiserIndustryPets AdvertiserIndustry = "pets" AdvertiserIndustryProfessionalServices AdvertiserIndustry = "professional_services" AdvertiserIndustryProfessionalServicesLegal AdvertiserIndustry = "professional_services.legal" AdvertiserIndustryProfessionalServicesConsulting AdvertiserIndustry = "professional_services.consulting" AdvertiserIndustryRealEstate AdvertiserIndustry = "real_estate" AdvertiserIndustryRealEstateResidential AdvertiserIndustry = "real_estate.residential" AdvertiserIndustryRealEstateCommercial AdvertiserIndustry = "real_estate.commercial" AdvertiserIndustryRecruitmentHr AdvertiserIndustry = "recruitment_hr" AdvertiserIndustryRetail AdvertiserIndustry = "retail" AdvertiserIndustryRetailEcommerce AdvertiserIndustry = "retail.ecommerce" AdvertiserIndustryRetailDepartmentStores AdvertiserIndustry = "retail.department_stores" AdvertiserIndustrySportsFitness AdvertiserIndustry = "sports_fitness" AdvertiserIndustrySportsFitnessEquipment AdvertiserIndustry = "sports_fitness.equipment" AdvertiserIndustrySportsFitnessTeamsLeagues AdvertiserIndustry = "sports_fitness.teams_leagues" AdvertiserIndustryTechnology AdvertiserIndustry = "technology" AdvertiserIndustryTechnologySoftware AdvertiserIndustry = "technology.software" AdvertiserIndustryTechnologyHardware AdvertiserIndustry = "technology.hardware" AdvertiserIndustryTechnologyAIMl AdvertiserIndustry = "technology.ai_ml" AdvertiserIndustryTelecom AdvertiserIndustry = "telecom" AdvertiserIndustryTelecomMobileCarriers AdvertiserIndustry = "telecom.mobile_carriers" AdvertiserIndustryTelecomInternetProviders AdvertiserIndustry = "telecom.internet_providers" AdvertiserIndustryTransportationLogistics AdvertiserIndustry = "transportation_logistics" AdvertiserIndustryTravelHospitality AdvertiserIndustry = "travel_hospitality" AdvertiserIndustryTravelHospitalityAirlines AdvertiserIndustry = "travel_hospitality.airlines" AdvertiserIndustryTravelHospitalityHotels AdvertiserIndustry = "travel_hospitality.hotels" AdvertiserIndustryTravelHospitalityCruise AdvertiserIndustry = "travel_hospitality.cruise" AdvertiserIndustryTravelHospitalityTourism AdvertiserIndustry = "travel_hospitality.tourism" )
func KnownAdvertiserIndustryValues ¶
func KnownAdvertiserIndustryValues() []AdvertiserIndustry
KnownAdvertiserIndustryValues returns the current schema-defined values for AdvertiserIndustry.
func ParseAdvertiserIndustry ¶
func ParseAdvertiserIndustry(s string) (AdvertiserIndustry, error)
ParseAdvertiserIndustry returns s as AdvertiserIndustry when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AgeRestriction ¶
type AgeRestriction struct {
Min int `json:"min"` // Minimum age required
VerificationRequired *bool `json:"verification_required,omitempty"` // Whether verified age (not inferred) is required for compliance
AcceptedMethods []AgeVerificationMethod `json:"accepted_methods,omitempty"` // Accepted verification methods. If omitted, any method the platform supports is
}
AgeRestriction — Age restriction for compliance. Use for legal requirements (alcohol, gambling), not audience
type AgeRestrictionCaps ¶
type AgeVerificationMethod ¶
type AgeVerificationMethod = string
AgeVerificationMethod — Methods for verifying user age for compliance. Does not include 'inferred' as
const ( AgeVerificationMethodFacialAgeEstimation AgeVerificationMethod = "facial_age_estimation" AgeVerificationMethodIDDocument AgeVerificationMethod = "id_document" AgeVerificationMethodDigitalID AgeVerificationMethod = "digital_id" AgeVerificationMethodCreditCard AgeVerificationMethod = "credit_card" AgeVerificationMethodWorldID AgeVerificationMethod = "world_id" )
func KnownAgeVerificationMethodValues ¶
func KnownAgeVerificationMethodValues() []AgeVerificationMethod
KnownAgeVerificationMethodValues returns the current schema-defined values for AgeVerificationMethod.
func ParseAgeVerificationMethod ¶
func ParseAgeVerificationMethod(s string) (AgeVerificationMethod, error)
ParseAgeVerificationMethod returns s as AgeVerificationMethod when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Artifact ¶
type Artifact struct {
PropertyRID string `json:"property_rid"` // Stable property identifier from the property catalog. Globally unique across
ArtifactID string `json:"artifact_id"` // Identifier for this artifact within the property. The property owner defines
VariantID string `json:"variant_id,omitempty"` // Identifies a specific variant of this artifact. Use for A/B tests
FormatID *FormatRef `json:"format_id,omitempty"` // Always a structured object {agent_url, id} — never a plain string. Optional
URL string `json:"url,omitempty"` // Optional URL for this artifact (web page, podcast feed, video page). Not all
PublishedTime string `json:"published_time,omitempty"` // When the artifact was published (ISO 8601 format)
LastUpdateTime string `json:"last_update_time,omitempty"` // When the artifact was last modified (ISO 8601 format)
Assets []any `json:"assets"` // Artifact assets in document flow order - text blocks, images, video, audio
Metadata *ArtifactMetadata `json:"metadata,omitempty"` // Rich metadata extracted from the artifact
Provenance *Provenance `json:"provenance,omitempty"` // Provenance metadata for this artifact. Serves as the default provenance for
Identifiers *ArtifactIdentifiers `json:"identifiers,omitempty"` // Platform-specific identifiers for this artifact
}
Artifact — Content artifact for safety and suitability evaluation. An artifact represents content adjacent to
type ArtifactIdentifiers ¶
type ArtifactIdentifiers struct {
ApplePodcastID string `json:"apple_podcast_id,omitempty"` // Apple Podcasts ID
SpotifyCollectionID string `json:"spotify_collection_id,omitempty"` // Spotify collection ID
PodcastGuid string `json:"podcast_guid,omitempty"` // Podcast GUID (from RSS feed)
YoutubeVideoID string `json:"youtube_video_id,omitempty"` // YouTube video ID
RssURL string `json:"rss_url,omitempty"` // RSS feed URL
}
ArtifactIdentifiers — Platform-specific identifiers for this artifact
type ArtifactMetadata ¶
type ArtifactMetadata struct {
Canonical string `json:"canonical,omitempty"` // Canonical URL
Author string `json:"author,omitempty"` // Artifact author name
Keywords string `json:"keywords,omitempty"` // Artifact keywords
OpenGraph map[string]any `json:"open_graph,omitempty"` // Open Graph protocol metadata
TwitterCard map[string]any `json:"twitter_card,omitempty"` // Twitter Card metadata
JSONLd []map[string]any `json:"json_ld,omitempty"` // JSON-LD structured data (schema.org)
}
ArtifactMetadata — Rich metadata extracted from the artifact
type ArtifactWebhookArtifact ¶
type ArtifactWebhookArtifact struct {
Artifact Artifact `json:"artifact"` // The content artifact
DeliveredAt string `json:"delivered_at"` // When the impression was delivered (ISO 8601)
ImpressionID string `json:"impression_id,omitempty"` // Optional impression identifier for correlation with delivery reports
PackageID string `json:"package_id,omitempty"` // Package within the media buy this artifact relates to
}
type ArtifactWebhookConfig ¶
type ArtifactWebhookConfig struct {
URL string `json:"url"` // Webhook endpoint URL for artifact delivery
Token string `json:"token,omitempty"` // Optional client-provided token for webhook validation. Echoed back in webhook
Authentication LegacyWebhookAuthentication `json:"authentication"` // Legacy authentication configuration for webhook delivery (A2A-compatible).
DeliveryMode string `json:"delivery_mode"` // How artifacts are delivered. 'realtime' pushes artifacts as impressions occur.
BatchFrequency string `json:"batch_frequency,omitempty"` // For batched delivery, how often to push artifacts. Required when delivery_mode
SamplingRate *float64 `json:"sampling_rate,omitempty"` // Fraction of impressions to include (0-1). 1.0 = all impressions, 0.1 = 10%
}
ArtifactWebhookConfig — Optional webhook configuration for content artifact delivery. Used by governance agents to
type ArtifactWebhookPagination ¶
type ArtifactWebhookPagination struct {
TotalArtifacts int `json:"total_artifacts,omitempty"` // Total artifacts in the delivery period
BatchNumber int `json:"batch_number,omitempty"` // Current batch number (1-indexed)
TotalBatches int `json:"total_batches,omitempty"` // Total batches for this delivery period
}
ArtifactWebhookPagination — Pagination info when batching large artifact sets
type ArtifactWebhookPayload ¶
type ArtifactWebhookPayload struct {
IdempotencyKey string `json:"idempotency_key"` // Sender-generated key stable across retries of the same webhook event. Sales
MediaBuyID string `json:"media_buy_id"` // Media buy identifier these artifacts belong to
BatchID string `json:"batch_id"` // Unique identifier for this batch of artifacts. Use for deduplication and
Timestamp string `json:"timestamp"` // When this batch was generated (ISO 8601)
Artifacts []ArtifactWebhookArtifact `json:"artifacts"` // Content artifacts from delivered impressions
Pagination *ArtifactWebhookPagination `json:"pagination,omitempty"` // Pagination info when batching large artifact sets
Ext any `json:"ext,omitempty"`
}
ArtifactWebhookPayload — Payload sent by sales agents to orchestrators when pushing content artifacts for governance
func (*ArtifactWebhookPayload) IdempotencyKeyPtr ¶
func (p *ArtifactWebhookPayload) IdempotencyKeyPtr() *string
type AssessmentStatus ¶
type AssessmentStatus = string
AssessmentStatus — Standardized quality level for health and readiness assessments. Comparable
const ( AssessmentStatusInsufficient AssessmentStatus = "insufficient" AssessmentStatusMinimum AssessmentStatus = "minimum" AssessmentStatusGood AssessmentStatus = "good" AssessmentStatusExcellent AssessmentStatus = "excellent" )
func KnownAssessmentStatusValues ¶
func KnownAssessmentStatusValues() []AssessmentStatus
KnownAssessmentStatusValues returns the current schema-defined values for AssessmentStatus.
func ParseAssessmentStatus ¶
func ParseAssessmentStatus(s string) (AssessmentStatus, error)
ParseAssessmentStatus returns s as AssessmentStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AssetContentType ¶
type AssetContentType = string
AssetContentType — Types of content that can be used as creative assets. Describes what KIND of
const ( AssetContentTypeImage AssetContentType = "image" AssetContentTypeVideo AssetContentType = "video" AssetContentTypeAudio AssetContentType = "audio" AssetContentTypeText AssetContentType = "text" AssetContentTypeMarkdown AssetContentType = "markdown" AssetContentTypeHTML AssetContentType = "html" AssetContentTypeCSS AssetContentType = "css" AssetContentTypeJavascript AssetContentType = "javascript" AssetContentTypeVast AssetContentType = "vast" AssetContentTypeDaast AssetContentType = "daast" AssetContentTypeURL AssetContentType = "url" AssetContentTypeWebhook AssetContentType = "webhook" AssetContentTypeBrief AssetContentType = "brief" AssetContentTypeCatalog AssetContentType = "catalog" AssetContentTypePublishedPost AssetContentType = "published_post" )
func KnownAssetContentTypeValues ¶
func KnownAssetContentTypeValues() []AssetContentType
KnownAssetContentTypeValues returns the current schema-defined values for AssetContentType.
func ParseAssetContentType ¶
func ParseAssetContentType(s string) (AssetContentType, error)
ParseAssetContentType returns s as AssetContentType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AttestationClaim ¶
type AttestationClaim = string
AttestationClaim — A claim a verified identity attestation can establish about a user. Personhood
const ( AttestationClaimUniqueHuman AttestationClaim = "unique_human" AttestationClaimAgeOver13 AttestationClaim = "age_over_13" AttestationClaimAgeOver16 AttestationClaim = "age_over_16" AttestationClaimAgeOver18 AttestationClaim = "age_over_18" AttestationClaimAgeOver21 AttestationClaim = "age_over_21" )
func KnownAttestationClaimValues ¶
func KnownAttestationClaimValues() []AttestationClaim
KnownAttestationClaimValues returns the current schema-defined values for AttestationClaim.
func ParseAttestationClaim ¶
func ParseAttestationClaim(s string) (AttestationClaim, error)
ParseAttestationClaim returns s as AttestationClaim when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AttributionMethodology ¶
type AttributionMethodology = string
AttributionMethodology — How attribution between ad exposure and outcome events was computed. Used as a
const ( AttributionMethodologyDeterministicPurchase AttributionMethodology = "deterministic_purchase" AttributionMethodologyProbabilistic AttributionMethodology = "probabilistic" AttributionMethodologyPanelBased AttributionMethodology = "panel_based" AttributionMethodologyModeled AttributionMethodology = "modeled" )
func KnownAttributionMethodologyValues ¶
func KnownAttributionMethodologyValues() []AttributionMethodology
KnownAttributionMethodologyValues returns the current schema-defined values for AttributionMethodology.
func ParseAttributionMethodology ¶
func ParseAttributionMethodology(s string) (AttributionMethodology, error)
ParseAttributionMethodology returns s as AttributionMethodology when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AttributionModel ¶
type AttributionModel = string
AttributionModel — Attribution model used for conversion measurement
const ( AttributionModelLastTouch AttributionModel = "last_touch" AttributionModelFirstTouch AttributionModel = "first_touch" AttributionModelLinear AttributionModel = "linear" AttributionModelTimeDecay AttributionModel = "time_decay" AttributionModelDataDriven AttributionModel = "data_driven" )
func KnownAttributionModelValues ¶
func KnownAttributionModelValues() []AttributionModel
KnownAttributionModelValues returns the current schema-defined values for AttributionModel.
func ParseAttributionModel ¶
func ParseAttributionModel(s string) (AttributionModel, error)
ParseAttributionModel returns s as AttributionModel when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AttributionWindow ¶
type AttributionWindow struct {
PostClick *Duration `json:"post_click,omitempty"`
PostView *Duration `json:"post_view,omitempty"`
Model string `json:"model"`
}
AttributionWindow is the singular attribution config applied to a specific optimization goal or delivery response. Mirrors core/attribution-window.json and is distinct from AttributionWindowOption (plural capability options).
type AttributionWindowOption ¶
type AttributionWindowOption struct {
EventType string `json:"event_type,omitempty"`
PostClick []Duration `json:"post_click"`
PostView []Duration `json:"post_view,omitempty"`
}
AttributionWindowOption describes one attribution-window configuration a buyer can pick. post_click is required when present.
type AudienceConstraints ¶
type AudienceConstraints struct {
Include []AudienceSelector `json:"include,omitempty"` // Desired audience criteria. The seller's targeting should align with these.
Exclude []AudienceSelector `json:"exclude,omitempty"` // Excluded audience criteria. The seller's targeting must not overlap with
}
AudienceConstraints — Buyer-defined audience targeting constraints for a campaign plan. Specifies who the campaign
type AudienceSelector ¶
type AudienceSelector struct {
Type string `json:"type,omitempty"` // Discriminator for description-based selectors
SignalRef *SignalRef `json:"signal_ref,omitempty"` // The signal to target. New selectors SHOULD use signal_ref.
// Deprecated: DEPRECATED.
SignalID *SignalID `json:"signal_id,omitempty"` // DEPRECATED. Use signal_ref instead. Legacy SignalId retained for compatibility
ValueType string `json:"value_type,omitempty"` // Discriminator for numeric signals
Value *bool `json:"value,omitempty"` // Whether to include (true) or exclude (false) users matching this signal
Values []string `json:"values,omitempty"` // Values to target. Users with any of these values will be included.
MinValue *float64 `json:"min_value,omitempty"` // Minimum value (inclusive). Omit for no minimum. Must be <= max_value when both
MaxValue *float64 `json:"max_value,omitempty"` // Maximum value (inclusive). Omit for no maximum. Must be >= min_value when both
Description string `json:"description,omitempty"` // Natural language description of the audience (e.g., 'likely EV buyers', 'high
Category string `json:"category,omitempty"` // Optional grouping hint for the governance agent (e.g., 'demographic'
}
AudienceSelector — Selects an audience by signal reference or natural language description. Uses 'type' as the
func (AudienceSelector) Validate ¶
func (s AudienceSelector) Validate(opts ...ValidationOption) []ValidationIssue
Validate checks AudienceSelector's current-schema oneOf invariants. It is intentionally opt-in and forward-compatible: unknown type/value_type values are ignored unless WithStrictEnums is supplied.
type AudienceSource ¶
type AudienceSource = string
AudienceSource — Origin of an audience segment in delivery reporting breakdowns. Only 'synced'
const ( AudienceSourceSynced AudienceSource = "synced" AudienceSourcePlatform AudienceSource = "platform" AudienceSourceThirdParty AudienceSource = "third_party" AudienceSourceLookalike AudienceSource = "lookalike" AudienceSourceRetargeting AudienceSource = "retargeting" AudienceSourceUnknown AudienceSource = "unknown" )
func KnownAudienceSourceValues ¶
func KnownAudienceSourceValues() []AudienceSource
KnownAudienceSourceValues returns the current schema-defined values for AudienceSource.
func ParseAudienceSource ¶
func ParseAudienceSource(s string) (AudienceSource, error)
ParseAudienceSource returns s as AudienceSource when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AudienceStatus ¶
type AudienceStatus = string
AudienceStatus — Matching status of a synced audience on a seller platform. Present when the
const ( AudienceStatusProcessing AudienceStatus = "processing" AudienceStatusReady AudienceStatus = "ready" AudienceStatusTooSmall AudienceStatus = "too_small" AudienceStatusSuspended AudienceStatus = "suspended" )
func KnownAudienceStatusValues ¶
func KnownAudienceStatusValues() []AudienceStatus
KnownAudienceStatusValues returns the current schema-defined values for AudienceStatus.
func ParseAudienceStatus ¶
func ParseAudienceStatus(s string) (AudienceStatus, error)
ParseAudienceStatus returns s as AudienceStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AudienceTargetingCaps ¶
type AudienceTargetingCaps struct {
SupportedIdentifierTypes []string `json:"supported_identifier_types"`
SupportsPlatformCustomerID *bool `json:"supports_platform_customer_id,omitempty"`
SupportedUIDTypes []string `json:"supported_uid_types,omitempty"`
MinimumAudienceSize int `json:"minimum_audience_size"`
MatchingLatencyHours *MatchingLatencyRange `json:"matching_latency_hours,omitempty"`
}
AudienceTargetingCaps describes audience matching capabilities. supported_identifier_types and minimum_audience_size are required when present.
type AudioChannelLayout ¶
type AudioChannelLayout = string
AudioChannelLayout — Audio channel configuration for audio and video assets
const ( AudioChannelLayoutMono AudioChannelLayout = "mono" AudioChannelLayoutStereo AudioChannelLayout = "stereo" AudioChannelLayout51 AudioChannelLayout = "5.1" AudioChannelLayout71 AudioChannelLayout = "7.1" )
func KnownAudioChannelLayoutValues ¶
func KnownAudioChannelLayoutValues() []AudioChannelLayout
KnownAudioChannelLayoutValues returns the current schema-defined values for AudioChannelLayout.
func ParseAudioChannelLayout ¶
func ParseAudioChannelLayout(s string) (AudioChannelLayout, error)
ParseAudioChannelLayout returns s as AudioChannelLayout when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AudioDistributionType ¶
type AudioDistributionType = string
AudioDistributionType — Declared audio distribution classification for radio, streaming-audio
const ( AudioDistributionTypeMusicStreamingService AudioDistributionType = "music_streaming_service" AudioDistributionTypeFmAmBroadcast AudioDistributionType = "fm_am_broadcast" AudioDistributionTypePodcast AudioDistributionType = "podcast" AudioDistributionTypeCatchUpRadio AudioDistributionType = "catch_up_radio" AudioDistributionTypeWebRadio AudioDistributionType = "web_radio" AudioDistributionTypeVideoGame AudioDistributionType = "video_game" AudioDistributionTypeTextToSpeech AudioDistributionType = "text_to_speech" )
func KnownAudioDistributionTypeValues ¶
func KnownAudioDistributionTypeValues() []AudioDistributionType
KnownAudioDistributionTypeValues returns the current schema-defined values for AudioDistributionType.
func ParseAudioDistributionType ¶
func ParseAudioDistributionType(s string) (AudioDistributionType, error)
ParseAudioDistributionType returns s as AudioDistributionType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AuditObservation ¶
type AuditObservation struct {
Code string `json:"code"` // Machine-readable observation code. `OVERSIGHT_DISCLOSURE_CARVEOUT_CLAIMED`
Severity string `json:"severity"` // Routing severity. `audit-worthy` means the observation should be retained and
Recovery string `json:"recovery"` // Caller recovery category for audit observations, distinct from the canonical
Field string `json:"field"` // Resolved creative manifest path for the risky claim side of the observation
Message string `json:"message"` // Human-readable summary suitable for an audit queue. Do not include PII
Details *AuditObservationDetails `json:"details"` // Audit-safe structured details. Mirrors the safe allowlist keys used for
Ext any `json:"ext,omitempty"`
}
AuditObservation — Non-blocking observation emitted by a creative governance agent. Audit observations surface claims
type AuditObservationClaimedValue ¶
type AuditObservationClaimedValue struct {
HumanOversight string `json:"human_oversight"` // Human oversight level declared by the creative provenance.
DisclosureRequired bool `json:"disclosure_required"` // Disclosure-required claim declared by the creative provenance.
}
AuditObservationClaimedValue — Compact object of claimed provenance values that triggered the observation.
type AuditObservationDetails ¶
type AuditObservationDetails struct {
AgentURL string `json:"agent_url"` // Governance agent URL that produced the observation.
FeatureID string `json:"feature_id,omitempty"` // Feature or policy check that produced the observation.
ClaimedValue AuditObservationClaimedValue `json:"claimed_value"` // Compact object of claimed provenance values that triggered the observation.
ObservedValue any `json:"observed_value,omitempty"` // Verifier observation relevant to the claim, when applicable.
Confidence float64 `json:"confidence,omitempty"` // Confidence score for the observation, when applicable.
SubstitutedFor string `json:"substituted_for,omitempty"` // Buyer-nominated verifier URL when the seller or orchestrator used a different
}
AuditObservationDetails — Audit-safe structured details. Mirrors the safe allowlist keys used for
type AuthScheme ¶
type AuthScheme = string
AuthScheme — Legacy authentication schemes for the webhook auth block. Bearer: token sent
const ( AuthSchemeBearer AuthScheme = "Bearer" AuthSchemeHMACSHA256 AuthScheme = "HMAC-SHA256" )
func KnownAuthSchemeValues ¶
func KnownAuthSchemeValues() []AuthScheme
KnownAuthSchemeValues returns the current schema-defined values for AuthScheme.
func ParseAuthScheme ¶
func ParseAuthScheme(s string) (AuthScheme, error)
ParseAuthScheme returns s as AuthScheme when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type AvailableMetric ¶
type AvailableMetric = string
AvailableMetric — Standard delivery and performance metrics available for reporting
const ( AvailableMetricImpressions AvailableMetric = "impressions" AvailableMetricSpend AvailableMetric = "spend" AvailableMetricClicks AvailableMetric = "clicks" AvailableMetricCtr AvailableMetric = "ctr" AvailableMetricViews AvailableMetric = "views" AvailableMetricCompletedViews AvailableMetric = "completed_views" AvailableMetricCompletionRate AvailableMetric = "completion_rate" AvailableMetricConversions AvailableMetric = "conversions" AvailableMetricConversionValue AvailableMetric = "conversion_value" AvailableMetricRoas AvailableMetric = "roas" AvailableMetricCostPerAcquisition AvailableMetric = "cost_per_acquisition" AvailableMetricNewToBrandRate AvailableMetric = "new_to_brand_rate" AvailableMetricLeads AvailableMetric = "leads" AvailableMetricReach AvailableMetric = "reach" AvailableMetricFrequency AvailableMetric = "frequency" AvailableMetricGrps AvailableMetric = "grps" AvailableMetricEngagements AvailableMetric = "engagements" AvailableMetricEngagementRate AvailableMetric = "engagement_rate" AvailableMetricFollows AvailableMetric = "follows" AvailableMetricSaves AvailableMetric = "saves" AvailableMetricProfileVisits AvailableMetric = "profile_visits" AvailableMetricViewability AvailableMetric = "viewability" AvailableMetricQuartileData AvailableMetric = "quartile_data" AvailableMetricDoohMetrics AvailableMetric = "dooh_metrics" AvailableMetricCostPerClick AvailableMetric = "cost_per_click" AvailableMetricCostPerCompletedView AvailableMetric = "cost_per_completed_view" AvailableMetricCPM AvailableMetric = "cpm" AvailableMetricDownloads AvailableMetric = "downloads" AvailableMetricUnitsSold AvailableMetric = "units_sold" AvailableMetricNewToBrandUnits AvailableMetric = "new_to_brand_units" AvailableMetricPlays AvailableMetric = "plays" AvailableMetricIncrementalSalesLift AvailableMetric = "incremental_sales_lift" AvailableMetricBrandLift AvailableMetric = "brand_lift" AvailableMetricFootTraffic AvailableMetric = "foot_traffic" AvailableMetricConversionLift AvailableMetric = "conversion_lift" AvailableMetricBrandSearchLift AvailableMetric = "brand_search_lift" )
func KnownAvailableMetricValues ¶
func KnownAvailableMetricValues() []AvailableMetric
KnownAvailableMetricValues returns the current schema-defined values for AvailableMetric.
func ParseAvailableMetric ¶
func ParseAvailableMetric(s string) (AvailableMetric, error)
ParseAvailableMetric returns s as AvailableMetric when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type BankAccount ¶
type BankAccount struct {
AccountHolder string `json:"account_holder"` // Name on the bank account
Iban string `json:"iban,omitempty"` // International Bank Account Number (SEPA markets)
Bic string `json:"bic,omitempty"` // Bank Identifier Code / SWIFT code (SEPA markets)
RoutingNumber string `json:"routing_number,omitempty"` // Bank routing number for non-SEPA markets (e.g., US ABA routing number
AccountNumber string `json:"account_number,omitempty"` // Bank account number for non-SEPA markets
}
BankAccount — Bank account details for payment processing. Write-only: included in requests to provide payment
type BaseCollectionSource ¶
type BaseCollectionSource struct {
SelectionType string `json:"selection_type"`
Identifiers []DistributionID `json:"identifiers,omitempty"`
PublisherDomain string `json:"publisher_domain,omitempty"`
CollectionIDs []string `json:"collection_ids,omitempty"`
Genres []string `json:"genres,omitempty"`
GenreTaxonomy string `json:"genre_taxonomy,omitempty"`
}
BaseCollectionSource selects collections for a collection list. Use one of the constructor functions: ByDistributionIDs, ByPublisherCollections, ByPublisherGenres.
func ByDistributionIDs ¶
func ByDistributionIDs(ids []DistributionID) BaseCollectionSource
ByDistributionIDs creates a source that selects collections by platform-independent identifiers.
func ByPublisherCollections ¶
func ByPublisherCollections(domain string, collectionIDs []string) BaseCollectionSource
ByPublisherCollections creates a source that selects specific collections within a publisher.
func ByPublisherGenres ¶
func ByPublisherGenres(domain string, genres []string, taxonomy string) BaseCollectionSource
ByPublisherGenres creates a source that selects collections from a publisher by genre.
type BillingMeasurement ¶
type BillingMeasurement struct {
Vendor *BrandReference `json:"vendor"`
MaxVariancePercent float64 `json:"max_variance_percent,omitempty"`
MeasurementWindow string `json:"measurement_window,omitempty"`
}
BillingMeasurement identifies the vendor whose measurement is authoritative for invoicing.
type BillingParty ¶
type BillingParty = string
BillingParty — Which party the seller invoices for an account. Determines the billing entity
const ( BillingPartyOperator BillingParty = "operator" BillingPartyAgent BillingParty = "agent" BillingPartyAdvertiser BillingParty = "advertiser" )
func KnownBillingPartyValues ¶
func KnownBillingPartyValues() []BillingParty
KnownBillingPartyValues returns the current schema-defined values for BillingParty.
func ParseBillingParty ¶
func ParseBillingParty(s string) (BillingParty, error)
ParseBillingParty returns s as BillingParty when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type BinaryVerdict ¶
type BinaryVerdict = string
BinaryVerdict — Strictly two-outcome evaluation result used for overall record-level verdicts
const ( BinaryVerdictPass BinaryVerdict = "pass" BinaryVerdictFail BinaryVerdict = "fail" )
func KnownBinaryVerdictValues ¶
func KnownBinaryVerdictValues() []BinaryVerdict
KnownBinaryVerdictValues returns the current schema-defined values for BinaryVerdict.
func ParseBinaryVerdict ¶
func ParseBinaryVerdict(s string) (BinaryVerdict, error)
ParseBinaryVerdict returns s as BinaryVerdict when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type BrandAgentType ¶
type BrandAgentType = string
BrandAgentType — Functional roles for agents declared in brand.json. Each type represents a
const ( BrandAgentTypeBrand BrandAgentType = "brand" BrandAgentTypeRights BrandAgentType = "rights" BrandAgentTypeMeasurement BrandAgentType = "measurement" BrandAgentTypeGovernance BrandAgentType = "governance" BrandAgentTypeCreative BrandAgentType = "creative" BrandAgentTypeSales BrandAgentType = "sales" BrandAgentTypeBuying BrandAgentType = "buying" BrandAgentTypeSignals BrandAgentType = "signals" )
func KnownBrandAgentTypeValues ¶
func KnownBrandAgentTypeValues() []BrandAgentType
KnownBrandAgentTypeValues returns the current schema-defined values for BrandAgentType.
func ParseBrandAgentType ¶
func ParseBrandAgentType(s string) (BrandAgentType, error)
ParseBrandAgentType returns s as BrandAgentType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type BrandCapabilities ¶
type BrandCapabilities struct {
Rights *bool `json:"rights,omitempty"`
RightTypes []string `json:"right_types,omitempty"`
AvailableUses []string `json:"available_uses,omitempty"`
GenerationProviders []string `json:"generation_providers,omitempty"`
Description string `json:"description,omitempty"`
}
BrandCapabilities is the brand protocol capability block.
type BrandReference ¶
type BrandReference struct {
Domain string `json:"domain"`
BrandID string `json:"brand_id,omitempty"`
Industries []string `json:"industries,omitempty"`
DataSubjectContestation *DataSubjectContestation `json:"data_subject_contestation,omitempty"`
}
BrandReference identifies a brand by domain, optionally scoped to a specific brand within a house portfolio. Industries and DataSubjectContestation are inline overrides for callers that cannot modify the brand's canonical brand.json — used by governance to resolve Annex III vertical detection and GDPR Art 22(3) contestation contacts when brand.json is out of reach.
type BuildCreativeMaxSpend ¶
type BuildCreativeMaxSpend struct {
Amount float64 `json:"amount"` // Maximum aggregate vendor_cost to incur on this call, in `currency`.
Currency string `json:"currency"` // ISO 4217 currency; MUST match the rate card.
}
BuildCreativeMaxSpend — Hard per-call spend ceiling. The agent produces leaves until the NEXT leaf would push the run's
type BuildCreativePreviewInput ¶
type BuildCreativePreviewInput struct {
Name string `json:"name"` // Human-readable name for this input set (e.g., 'Sunny morning on mobile'
Macros map[string]string `json:"macros,omitempty"` // Macro values to use for this preview variant
ContextDescription string `json:"context_description,omitempty"` // Natural language description of the context for AI-generated content
}
type BuildCreativeRequest ¶
type BuildCreativeRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Message string `json:"message,omitempty"` // Natural language instructions for the transformation or generation. For pure
CreativeManifest *CreativeManifest `json:"creative_manifest,omitempty"` // Creative manifest to transform or generate from. For pure generation, this
CreativeID string `json:"creative_id,omitempty"` // Reference to a creative in the agent's library. The creative agent resolves
ConceptID string `json:"concept_id,omitempty"` // Creative concept containing the creative. Creative agents SHOULD assign
MediaBuyID string `json:"media_buy_id,omitempty"` // Media buy identifier for tag generation context. When the creative agent is
PackageID string `json:"package_id,omitempty"` // Package identifier within the media buy. Used with media_buy_id when the
TargetFormatID *FormatRef `json:"target_format_id,omitempty"` // Single format ID to generate. Mutually exclusive with target_format_ids. The
TargetFormatIDs []FormatRef `json:"target_format_ids,omitempty"` // Array of format IDs to generate in a single call. Mutually exclusive with
TransformerID string `json:"transformer_id,omitempty"` // Selects an account-scoped transformer (discovered via list_transformers) to
Config map[string]any `json:"config,omitempty"` // Typed render configuration for the selected transformer, keyed by each param's
RefineFromBuildVariantID string `json:"refine_from_build_variant_id,omitempty"` // Refine a previously produced variant: re-build from the referenced
Mode string `json:"mode,omitempty"` // `execute` (default) produces and bills the creative(s). `estimate` is a DRY
MaxSpend *BuildCreativeMaxSpend `json:"max_spend,omitempty"` // Hard per-call spend ceiling. The agent produces leaves until the NEXT leaf
MaxCreatives int `json:"max_creatives,omitempty"` // Caps how many DISTINCT creatives to produce along the catalog/item fan-out
SignalConditions []BuildCreativeSignalCondition `json:"signal_conditions,omitempty"` // Advisory keep-all PRODUCTION axis: produce one distinct creative group per
MaxVariants int `json:"max_variants,omitempty"` // Caps how many ALTERNATIVES to produce per creative (different voices, themes
VariantAxis *BuildCreativeVariantAxis `json:"variant_axis,omitempty"` // Declares the dimension along which variants differ. When `values` is provided
KeepMode string `json:"keep_mode,omitempty"` // Advisory hint for how the buyer intends to use the variants. `keep_one`
SelectionStrategy CreativeSelectionStrategy `json:"selection_strategy,omitempty"` // Governs HOW the agent samples when max_creatives < items_total (folds #5262).
Account *AccountReference `json:"account,omitempty"` // Account reference for pricing and billing. When present, the creative agent
Brand *BrandReference `json:"brand,omitempty"` // Brand reference for creative generation. Resolved to full brand identity
Quality CreativeQuality `json:"quality,omitempty"` // Quality tier for generation. 'draft' produces fast, lower-fidelity output for
Evaluator any `json:"evaluator,omitempty"` // Optional advisory evaluator (buyer-attached pointer, #5280) declaring how
ItemLimit int `json:"item_limit,omitempty"` // Maximum number of catalog items a SINGLE creative consumes when generating
IncludePreview *bool `json:"include_preview,omitempty"` // When true, requests the creative agent to include preview renders in the
PreviewInputs []BuildCreativePreviewInput `json:"preview_inputs,omitempty"` // Input sets for preview generation when include_preview is true. Each input set
PreviewQuality CreativeQuality `json:"preview_quality,omitempty"` // Render quality for inline preview when include_preview is true. 'draft'
PreviewOutputFormat PreviewOutputFormat `json:"preview_output_format,omitempty"` // Output format for preview renders when include_preview is true. 'url' returns
MacroValues map[string]string `json:"macro_values,omitempty"` // Macro values to pre-substitute into the output manifest's assets. Keys are
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for this request. Prevents duplicate creative
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Optional webhook configuration for async terminal completion/failure
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
BuildCreativeRequest — Request to transform, generate, refine, or retrieve a creative manifest. Supports four modes: (1)
type BuildCreativeResult ¶
type BuildCreativeSignalCondition ¶
type BuildCreativeSignalCondition struct {
SignalRef *SignalRef `json:"signal_ref,omitempty"` // The signal to target. New targeting constraints SHOULD use signal_ref.
// Deprecated: DEPRECATED.
SignalID *SignalID `json:"signal_id,omitempty"` // DEPRECATED. Use signal_ref instead. Legacy SignalId retained for compatibility
ValueType string `json:"value_type,omitempty"` // Discriminator for numeric signals
Value *bool `json:"value,omitempty"` // Whether to include (true) or exclude (false) users matching this signal
Values []string `json:"values,omitempty"` // Values to target. Users with any of these values will be included.
MinValue *float64 `json:"min_value,omitempty"` // Minimum value (inclusive). Omit for no minimum. Must be <= max_value when both
MaxValue *float64 `json:"max_value,omitempty"` // Maximum value (inclusive). Omit for no maximum. Must be >= min_value when both
SignalAgentSegmentID string `json:"signal_agent_segment_id,omitempty"` // Optional opaque resolved-segment handle for this fan-out condition — the
}
type BuildCreativeVariantAxis ¶
type BuildCreativeVariantAxis struct {
Dimension string `json:"dimension"` // What varies across variants. `transformer_config` varies a named config param
Field string `json:"field,omitempty"` // The transformer `config` param `field` this axis sweeps. REQUIRED when
Values []any `json:"values,omitempty"` // Caller-fixed set of values for the axis (e.g. ["isaac", "sara"] for dimension
Label string `json:"label,omitempty"` // Human-readable description of the axis, especially for `custom`.
}
BuildCreativeVariantAxis — Declares the dimension along which variants differ. When `values` is provided, the agent produces
type BusinessAddress ¶
type BusinessAddress struct {
Street string `json:"street"` // Street address including building number
City string `json:"city"`
PostalCode string `json:"postal_code"`
Region string `json:"region,omitempty"` // State, province, or region
Country string `json:"country"` // ISO 3166-1 alpha-2 country code
}
BusinessAddress — Postal address for invoicing and legal correspondence
type BusinessContact ¶
type BusinessEntity ¶
type BusinessEntity struct {
LegalName string `json:"legal_name"` // Registered legal name of the business entity
VatID string `json:"vat_id,omitempty"` // VAT identification number (e.g., DE123456789 for Germany, FR12345678901 for
TaxID string `json:"tax_id,omitempty"` // Tax identification number for jurisdictions that do not use VAT (e.g., US EIN)
RegistrationNumber string `json:"registration_number,omitempty"` // Company registration number (e.g., HRB 12345 for German Handelsregister)
Address *BusinessAddress `json:"address,omitempty"` // Postal address for invoicing and legal correspondence
Contacts []BusinessContact `json:"contacts,omitempty"` // Contacts for billing, legal, and operational matters. Contains personal data
Bank *BankAccount `json:"bank,omitempty"` // Bank account details for payment processing. Write-only: included in requests
Ext any `json:"ext,omitempty"`
}
BusinessEntity — Structured business identity for B2B invoicing and contracts. Contains the legal, tax, and payment
type C2PAWatermarkAction ¶
type C2PAWatermarkAction = string
C2PAWatermarkAction — C2PA action classification for a content watermark. Distinguishes watermarks
const ( C2PAWatermarkActionC2PAWatermarkedBound C2PAWatermarkAction = "c2pa.watermarked.bound" C2PAWatermarkActionC2PAWatermarkedUnbound C2PAWatermarkAction = "c2pa.watermarked.unbound" )
func KnownC2PAWatermarkActionValues ¶
func KnownC2PAWatermarkActionValues() []C2PAWatermarkAction
KnownC2PAWatermarkActionValues returns the current schema-defined values for C2PAWatermarkAction.
func ParseC2PAWatermarkAction ¶
func ParseC2PAWatermarkAction(s string) (C2PAWatermarkAction, error)
ParseC2PAWatermarkAction returns s as C2PAWatermarkAction when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CanceledBy ¶
type CanceledBy = string
CanceledBy — Identifies which party initiated a cancellation.
const ( CanceledByBuyer CanceledBy = "buyer" CanceledBySeller CanceledBy = "seller" )
func KnownCanceledByValues ¶
func KnownCanceledByValues() []CanceledBy
KnownCanceledByValues returns the current schema-defined values for CanceledBy.
func ParseCanceledBy ¶
func ParseCanceledBy(s string) (CanceledBy, error)
ParseCanceledBy returns s as CanceledBy when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CancellationFee ¶
type CancellationFee struct {
Type string `json:"type"` // "percent_remaining", "full_commitment", "fixed_fee", "none"
Rate float64 `json:"rate,omitempty"`
Amount float64 `json:"amount,omitempty"`
}
CancellationFee describes the fee charged for insufficient cancellation notice.
type CancellationPolicy ¶
type CancellationPolicy struct {
NoticePeriod Duration `json:"notice_period"`
CancellationFee CancellationFee `json:"cancellation_fee"`
}
CancellationPolicy declares cancellation terms for a product.
type CanonicalProjectionRef ¶
type CanonicalProjectionRef struct {
Kind string `json:"kind"` // The v2 canonical-format-kind this v1 format projects to (`image`, `html5`
AssetSource string `json:"asset_source,omitempty"` // Where the rendered asset bytes come from on the projected v2 declaration.
SlotsOverride []CanonicalProjectionSlotOverride `json:"slots_override,omitempty"` // When the v1 named format's slot shape differs from the canonical's default
}
CanonicalProjectionRef — Authoritative v1 → v2 projection annotation on a v1 named format. Tells SDKs which
type CanonicalProjectionSlotOverride ¶
type CanonicalProjectionSlotOverride struct {
AssetGroupID string `json:"asset_group_id"` // Asset group identifier from `asset-group-vocabulary.json` (e.g.
AssetType string `json:"asset_type"` // Asset type — `image`, `video`, `audio`, `text`, `html`, `javascript`, `url`
Required *bool `json:"required,omitempty"` // Whether the slot is required in the projected declaration.
MaxChars int `json:"max_chars,omitempty"` // Max character count for text slots.
ConsumedForProduction *bool `json:"consumed_for_production,omitempty"` // When false, slot is for moderation/review only and is NOT consumed by the
}
CanonicalProjectionSlotOverride — A single slot override used when projecting a legacy named format to a v2 canonical
type CapabilitiesData ¶
type CapabilitiesData struct {
AdcpVersion string `json:"adcp_version,omitempty"`
AdcpMajorVersion int `json:"adcp_major_version,omitempty"`
ContextID string `json:"context_id,omitempty"`
TaskID string `json:"task_id,omitempty"`
Status string `json:"status"`
Message string `json:"message,omitempty"`
Timestamp string `json:"timestamp,omitempty"`
Replayed *bool `json:"replayed,omitempty"`
AdcpError AdcpError `json:"adcp_error,omitempty"`
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"`
GovernanceContext string `json:"governance_context,omitempty"`
Payload map[string]any `json:"payload,omitempty"`
ADCP *ADCPVersion `json:"adcp"`
SupportedProtocols []string `json:"supported_protocols"`
Account *AccountCapabilities `json:"account,omitempty"`
MediaBuy *MediaBuyCapabilities `json:"media_buy,omitempty"`
Signals *SignalsCapabilities `json:"signals,omitempty"`
Governance *GovernanceCapabilities `json:"governance,omitempty"`
SponsoredIntelligence *SICapabilities `json:"sponsored_intelligence,omitempty"`
Brand *BrandCapabilities `json:"brand,omitempty"`
Creative *CreativeCapabilities `json:"creative,omitempty"`
RequestSigning *RequestSigningCapabilities `json:"request_signing,omitempty"`
WebhookSigning *WebhookSigningCapabilities `json:"webhook_signing,omitempty"`
Identity *IdentityCapabilities `json:"identity,omitempty"`
Measurement any `json:"measurement,omitempty"`
ComplianceTesting *ComplianceTestingCapabilities `json:"compliance_testing,omitempty"`
Specialisms []string `json:"specialisms,omitempty"`
ExtensionsSupported []string `json:"extensions_supported,omitempty"`
ExperimentalFeatures []string `json:"experimental_features,omitempty"`
WholesaleFeedVersioning *WholesaleFeedVersioningCaps `json:"wholesale_feed_versioning,omitempty"`
LastUpdated string `json:"last_updated,omitempty"`
Errors []AdcpError `json:"errors,omitempty"`
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
WholesaleFeedWebhooks *WholesaleFeedWebhooksCaps `json:"wholesale_feed_webhooks,omitempty"`
}
CapabilitiesData is the typed get_adcp_capabilities response. Per the 3.0 schema, adcp (with idempotency) and supported_protocols are required; all other blocks are optional and set only when the relevant protocol is supported.
type CapabilitiesWholesaleFeedVersioning ¶
type CapabilitiesWholesaleFeedVersioning struct {
Supported bool `json:"supported"` // Whether the agent returns wholesale_feed_version on responses and honors
PricingVersionSeparate *bool `json:"pricing_version_separate,omitempty"` // Whether the agent tracks pricing_version independently of
CacheScopeAccount *bool `json:"cache_scope_account,omitempty"` // Whether the agent ever returns cache_scope: 'account' (i.e., publishes
}
CapabilitiesWholesaleFeedVersioning — Conditional-fetch token capabilities for get_products and get_signals. Independent of wholesale
type CapabilitiesWholesaleFeedWebhooks ¶
type CapabilitiesWholesaleFeedWebhooks struct {
Supported bool `json:"supported"` // Whether this agent can push wholesale feed change payloads through
EventTypes []string `json:"event_types,omitempty"` // Wholesale feed webhook event types this agent can emit. Sales agents emit
}
CapabilitiesWholesaleFeedWebhooks — Per-agent wholesale product-feed and wholesale signals-feed webhook capabilities. Declared by
type Catalog ¶
type Catalog struct {
CatalogID string `json:"catalog_id,omitempty"` // Buyer's identifier for this catalog. Required when syncing via sync_catalogs.
Name string `json:"name,omitempty"` // Human-readable name for this catalog (e.g., 'Summer Products 2025', 'Amsterdam
Type CatalogType `json:"type"` // Catalog type. Structural types: 'offering' (AdCP Offering objects), 'product'
URL string `json:"url,omitempty"` // URL to an external catalog feed. The platform fetches and resolves items from
FeedFormat FeedFormat `json:"feed_format,omitempty"` // Format of the external feed at url. Required when url points to a non-AdCP
UpdateFrequency UpdateFrequency `json:"update_frequency,omitempty"` // How often the platform should re-fetch the feed from url. Only applicable when
Items []map[string]any `json:"items,omitempty"` // Inline catalog data. The item schema depends on the catalog type: Offering
IDs []string `json:"ids,omitempty"` // Filter catalog to specific item IDs. For offering-type catalogs, these are
Gtins []string `json:"gtins,omitempty"` // Filter product-type catalogs by GTIN identifiers for cross-retailer catalog
Tags []string `json:"tags,omitempty"` // Filter catalog to items with these tags. Tags are matched using OR logic —
Category string `json:"category,omitempty"` // Filter catalog to items in this category (e.g., 'beverages/soft-drinks'
Query string `json:"query,omitempty"` // Natural language filter for catalog items (e.g., 'all pasta sauces under $5'
ConversionEvents []EventType `json:"conversion_events,omitempty"` // Event types that represent conversions for items in this catalog. Declares
ContentIDType ContentIDType `json:"content_id_type,omitempty"` // Identifier type that the event's content_ids field should be matched against
FeedFieldMappings []CatalogFieldMapping `json:"feed_field_mappings,omitempty"` // Declarative normalization rules for external feeds. Maps non-standard feed
}
Catalog — A typed data feed. Catalogs carry the items, locations, stock levels, or pricing that publishers
type CatalogAction ¶
type CatalogAction = string
CatalogAction — Action taken on a catalog during sync operation
const ( CatalogActionCreated CatalogAction = "created" CatalogActionUpdated CatalogAction = "updated" CatalogActionUnchanged CatalogAction = "unchanged" CatalogActionFailed CatalogAction = "failed" CatalogActionDeleted CatalogAction = "deleted" )
func KnownCatalogActionValues ¶
func KnownCatalogActionValues() []CatalogAction
KnownCatalogActionValues returns the current schema-defined values for CatalogAction.
func ParseCatalogAction ¶
func ParseCatalogAction(s string) (CatalogAction, error)
ParseCatalogAction returns s as CatalogAction when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CatalogFieldMapping ¶
type CatalogFieldMapping struct {
FeedField string `json:"feed_field,omitempty"` // Field name in the external feed record. Omit when injecting a static literal
CatalogField string `json:"catalog_field,omitempty"` // Target field on the catalog item schema, using dot notation for nested fields
AssetGroupID string `json:"asset_group_id,omitempty"` // Places the feed field value (a URL) into a typed asset pool on the catalog
Value any `json:"value,omitempty"` // Static literal value to inject into catalog_field for every item, regardless
Transform string `json:"transform,omitempty"` // Named transform to apply to the feed field value before writing to the catalog
Format string `json:"format,omitempty"` // For transform 'date': the input date format string (e.g., 'YYYYMMDD'
Timezone string `json:"timezone,omitempty"` // For transform 'date': the timezone of the input value. IANA timezone
By float64 `json:"by,omitempty"` // For transform 'divide': the divisor to apply (e.g., 100 to convert integer
Separator string `json:"separator,omitempty"` // For transform 'split': the separator character or string to split on. Defaults
Default any `json:"default,omitempty"` // Fallback value to use when feed_field is absent, null, or empty. Applied after
Ext any `json:"ext,omitempty"`
}
CatalogFieldMapping — Declares how a field in an external feed maps to the AdCP catalog item schema. Used in
type CatalogInput ¶
type CatalogInput struct {
CatalogID string `json:"catalog_id"`
Items []map[string]any `json:"items,omitempty"`
}
CatalogInput is a single catalog in a sync_catalogs request.
type CatalogItemStatus ¶
type CatalogItemStatus = string
CatalogItemStatus — Approval status of an individual item within a synced catalog. Platforms
const ( CatalogItemStatusApproved CatalogItemStatus = "approved" CatalogItemStatusPending CatalogItemStatus = "pending" CatalogItemStatusRejected CatalogItemStatus = "rejected" CatalogItemStatusWarning CatalogItemStatus = "warning" CatalogItemStatusWithdrawn CatalogItemStatus = "withdrawn" )
func KnownCatalogItemStatusValues ¶
func KnownCatalogItemStatusValues() []CatalogItemStatus
KnownCatalogItemStatusValues returns the current schema-defined values for CatalogItemStatus.
func ParseCatalogItemStatus ¶
func ParseCatalogItemStatus(s string) (CatalogItemStatus, error)
ParseCatalogItemStatus returns s as CatalogItemStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CatalogResult ¶
type CatalogType ¶
type CatalogType = string
CatalogType — The type of catalog feed. Determines the item schema and how the platform
const ( CatalogTypeOffering CatalogType = "offering" CatalogTypeProduct CatalogType = "product" CatalogTypeInventory CatalogType = "inventory" CatalogTypeStore CatalogType = "store" CatalogTypePromotion CatalogType = "promotion" CatalogTypeHotel CatalogType = "hotel" CatalogTypeFlight CatalogType = "flight" CatalogTypeJob CatalogType = "job" CatalogTypeVehicle CatalogType = "vehicle" CatalogTypeRealEstate CatalogType = "real_estate" CatalogTypeEducation CatalogType = "education" CatalogTypeDestination CatalogType = "destination" CatalogTypeApp CatalogType = "app" )
func KnownCatalogTypeValues ¶
func KnownCatalogTypeValues() []CatalogType
KnownCatalogTypeValues returns the current schema-defined values for CatalogType.
func ParseCatalogType ¶
func ParseCatalogType(s string) (CatalogType, error)
ParseCatalogType returns s as CatalogType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Channels ¶
type Channels = string
Channels — Standardized advertising media channels describing how buyers allocate budget.
const ( ChannelsDisplay Channels = "display" ChannelsOlv Channels = "olv" ChannelsSocial Channels = "social" ChannelsSearch Channels = "search" ChannelsCtv Channels = "ctv" ChannelsLinearTv Channels = "linear_tv" ChannelsRadio Channels = "radio" ChannelsStreamingAudio Channels = "streaming_audio" ChannelsPodcast Channels = "podcast" ChannelsDooh Channels = "dooh" ChannelsOoh Channels = "ooh" ChannelsPrint Channels = "print" ChannelsCinema Channels = "cinema" ChannelsEmail Channels = "email" ChannelsGaming Channels = "gaming" ChannelsRetailMedia Channels = "retail_media" ChannelsInfluencer Channels = "influencer" ChannelsAffiliate Channels = "affiliate" ChannelsProductPlacement Channels = "product_placement" ChannelsSponsoredIntelligence Channels = "sponsored_intelligence" )
func KnownChannelsValues ¶
func KnownChannelsValues() []Channels
KnownChannelsValues returns the current schema-defined values for Channels.
func ParseChannels ¶
ParseChannels returns s as Channels when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CheckGovernanceCondition ¶
type CheckGovernanceCondition struct {
Field string `json:"field"`
// RequiredValue is emitted only when HasRequiredValue is true. Decode
// numeric JSON values as float64, following encoding/json's any behavior.
RequiredValue any `json:"-"`
// HasRequiredValue distinguishes absent required_value from explicit
// required_value, including JSON null. Set it true whenever RequiredValue
// should be present on the wire.
HasRequiredValue bool `json:"-"`
Reason string `json:"reason"`
}
CheckGovernanceCondition is a typed condition item returned by check_governance. RequiredValue is intentionally dynamic because a condition can require any JSON literal or object. HasRequiredValue distinguishes an absent advisory value from an explicit required_value, including JSON null.
func (CheckGovernanceCondition) MarshalJSON ¶
func (c CheckGovernanceCondition) MarshalJSON() ([]byte, error)
func (*CheckGovernanceCondition) UnmarshalJSON ¶
func (c *CheckGovernanceCondition) UnmarshalJSON(data []byte) error
type CheckGovernanceFinding ¶
type CheckGovernanceFinding struct {
CategoryID string `json:"category_id"` // Validation category that flagged the issue (e.g., 'budget_compliance'
PolicyID string `json:"policy_id,omitempty"` // ID of the policy that triggered this finding. May reference a registry policy
SourcePlanID string `json:"source_plan_id,omitempty"` // For portfolio or aggregated evaluations where findings draw on bespoke
Severity EscalationSeverity `json:"severity"`
Explanation string `json:"explanation"` // Human-readable description of the issue.
Details map[string]any `json:"details,omitempty"` // Structured details for programmatic consumption.
Confidence *float64 `json:"confidence,omitempty"` // Confidence score (0-1) in this finding. Distinguishes 'this definitely
UncertaintyReason string `json:"uncertainty_reason,omitempty"` // Explanation of why confidence is below 1.0 (e.g., 'Targeting includes regions
}
type CheckGovernanceRequest ¶
type CheckGovernanceRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
PlanID string `json:"plan_id"` // Campaign governance plan identifier. The plan uniquely scopes the account and
Caller string `json:"caller"` // URL of the agent making the request.
PurchaseType PurchaseType `json:"purchase_type,omitempty"` // The type of financial commitment being checked. Determines which budget
Tool string `json:"tool,omitempty"` // The AdCP tool being checked (e.g., 'create_media_buy', 'acquire_rights'
Payload map[string]any `json:"payload,omitempty"` // The full tool arguments as they would be sent to the seller. Present on intent
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token from a prior check_governance response. Pass this on
Phase GovernancePhase `json:"phase,omitempty"` // The phase of the governed action's lifecycle. 'purchase': initial commitment
PlannedDelivery *PlannedDelivery `json:"planned_delivery,omitempty"` // What the seller will actually deliver. Present on execution checks.
DeliveryMetrics *GovernanceDeliveryMetrics `json:"delivery_metrics,omitempty"` // Actual delivery performance data. MUST be present for 'delivery' phase. The
ModificationSummary string `json:"modification_summary,omitempty"` // Human-readable summary of what changed. SHOULD be present for 'modification'
InvoiceRecipient *BusinessEntity `json:"invoice_recipient,omitempty"` // Invoice recipient from the purchase request. MUST be present when the tool
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
CheckGovernanceRequest — Universal governance check for campaign actions. The governance agent infers the check type from
type CheckGovernanceResponse ¶
type CheckGovernanceResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
CheckID string `json:"check_id"` // Unique identifier for this governance check record. Use in report_plan_outcome
Verdict GovernanceDecision `json:"verdict"` // Governance verdict: approved | denied | conditions. Renamed from `status` in
PlanID string `json:"plan_id"` // Echoed from request.
Explanation string `json:"explanation"` // Human-readable explanation of the governance decision.
Findings []CheckGovernanceFinding `json:"findings,omitempty"` // Specific issues found during the governance check. Present when verdict is
Conditions []CheckGovernanceCondition `json:"conditions,omitempty"` // Present when verdict is 'conditions'. Specific adjustments the caller must
ExpiresAt string `json:"expires_at,omitempty"` // When this approval expires. Present when verdict is 'approved' or
NextCheck string `json:"next_check,omitempty"` // When the seller should next call check_governance with delivery metrics.
CategoriesEvaluated []string `json:"categories_evaluated,omitempty"` // Governance categories evaluated during this check. Each value is an
PoliciesEvaluated []string `json:"policies_evaluated,omitempty"` // Policy IDs evaluated during this check. Includes registry policy IDs (resolved
Mode GovernanceMode `json:"mode,omitempty"` // Governance enforcement mode active when this check was evaluated. Allows
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token for this governed action. The buyer MUST attach this
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
CheckGovernanceResponse — Governance agent's response to a check request. Returns whether the action is approved under the
type CloudStorageProtocol ¶
type CloudStorageProtocol = string
CloudStorageProtocol — Cloud storage protocols supported for offline file delivery
const ( CloudStorageProtocolS3 CloudStorageProtocol = "s3" CloudStorageProtocolGcs CloudStorageProtocol = "gcs" CloudStorageProtocolAzureBlob CloudStorageProtocol = "azure_blob" )
func KnownCloudStorageProtocolValues ¶
func KnownCloudStorageProtocolValues() []CloudStorageProtocol
KnownCloudStorageProtocolValues returns the current schema-defined values for CloudStorageProtocol.
func ParseCloudStorageProtocol ¶
func ParseCloudStorageProtocol(s string) (CloudStorageProtocol, error)
ParseCloudStorageProtocol returns s as CloudStorageProtocol when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CoBrandingRequirement ¶
type CoBrandingRequirement = string
CoBrandingRequirement — Co-branding policy for creatives (retailer/publisher brand inclusion)
const ( CoBrandingRequirementRequired CoBrandingRequirement = "required" CoBrandingRequirementOptional CoBrandingRequirement = "optional" CoBrandingRequirementNone CoBrandingRequirement = "none" )
func KnownCoBrandingRequirementValues ¶
func KnownCoBrandingRequirementValues() []CoBrandingRequirement
KnownCoBrandingRequirementValues returns the current schema-defined values for CoBrandingRequirement.
func ParseCoBrandingRequirement ¶
func ParseCoBrandingRequirement(s string) (CoBrandingRequirement, error)
ParseCoBrandingRequirement returns s as CoBrandingRequirement when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CollectionCadence ¶
type CollectionCadence = string
CollectionCadence — How frequently a collection releases new installments
const ( CollectionCadenceDaily CollectionCadence = "daily" CollectionCadenceWeekly CollectionCadence = "weekly" CollectionCadenceMonthly CollectionCadence = "monthly" CollectionCadenceSeasonal CollectionCadence = "seasonal" CollectionCadenceEvent CollectionCadence = "event" CollectionCadenceIrregular CollectionCadence = "irregular" )
func KnownCollectionCadenceValues ¶
func KnownCollectionCadenceValues() []CollectionCadence
KnownCollectionCadenceValues returns the current schema-defined values for CollectionCadence.
func ParseCollectionCadence ¶
func ParseCollectionCadence(s string) (CollectionCadence, error)
ParseCollectionCadence returns s as CollectionCadence when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CollectionChangeSummary ¶
type CollectionChangeSummary struct {
CollectionsAdded int `json:"collections_added,omitempty"` // Number of collections added since last resolution
CollectionsRemoved int `json:"collections_removed,omitempty"` // Number of collections removed since last resolution
TotalCollections int `json:"total_collections,omitempty"` // Total collections in the resolved list
}
CollectionChangeSummary — Summary of changes to the resolved list
type CollectionKind ¶
type CollectionKind = string
CollectionKind — What kind of content program a collection represents. Determines how
const ( CollectionKindSeries CollectionKind = "series" CollectionKindPublication CollectionKind = "publication" CollectionKindEventSeries CollectionKind = "event_series" CollectionKindRotation CollectionKind = "rotation" )
func KnownCollectionKindValues ¶
func KnownCollectionKindValues() []CollectionKind
KnownCollectionKindValues returns the current schema-defined values for CollectionKind.
func ParseCollectionKind ¶
func ParseCollectionKind(s string) (CollectionKind, error)
ParseCollectionKind returns s as CollectionKind when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CollectionList ¶
type CollectionList struct {
ListID string `json:"list_id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Principal string `json:"principal,omitempty"`
BaseCollections []BaseCollectionSource `json:"base_collections,omitempty"`
Filters *CollectionListFilters `json:"filters,omitempty"`
Brand *BrandReference `json:"brand,omitempty"`
WebhookURL string `json:"webhook_url,omitempty"`
CacheDurationHours int `json:"cache_duration_hours,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
UpdatedAt string `json:"updated_at,omitempty"`
CollectionCount int `json:"collection_count,omitempty"`
}
CollectionList is a managed collection list with optional dynamic filters.
type CollectionListChangedWebhook ¶
type CollectionListChangedWebhook struct {
IdempotencyKey string `json:"idempotency_key"` // Sender-generated key stable across retries of the same webhook event.
Event string `json:"event"` // The event type
ListID string `json:"list_id"` // ID of the collection list that changed
ListName string `json:"list_name,omitempty"` // Name of the collection list
ChangeSummary *CollectionChangeSummary `json:"change_summary,omitempty"` // Summary of changes to the resolved list
ResolvedAt string `json:"resolved_at"` // When the list was re-resolved
CacheValidUntil string `json:"cache_valid_until,omitempty"` // When the consumer should refresh from the governance agent
Signature string `json:"signature"` // HMAC-SHA256 webhook signature over {unix_timestamp}.{raw_http_body_bytes}
Ext any `json:"ext,omitempty"`
}
CollectionListChangedWebhook — Webhook notification sent when a collection list's resolved collections change. Contains a summary
func (*CollectionListChangedWebhook) IdempotencyKeyPtr ¶
func (p *CollectionListChangedWebhook) IdempotencyKeyPtr() *string
type CollectionListFilters ¶
type CollectionListFilters struct {
ContentRatingsExclude []ContentRating `json:"content_ratings_exclude,omitempty"`
ContentRatingsInclude []ContentRating `json:"content_ratings_include,omitempty"`
GenresExclude []string `json:"genres_exclude,omitempty"`
GenresInclude []string `json:"genres_include,omitempty"`
GenreTaxonomy string `json:"genre_taxonomy,omitempty"`
Kinds []string `json:"kinds,omitempty"`
ExcludeDistributionIDs []DistributionID `json:"exclude_distribution_ids,omitempty"`
ProductionQuality []string `json:"production_quality,omitempty"`
}
CollectionListFilters dynamically modify a collection list when resolved. Include filters are allowlists; exclude filters are blocklists. When both are present, include is applied first, then exclude narrows further.
type CollectionListRef ¶
type CollectionListRef struct {
AgentURL string `json:"agent_url"`
ListID string `json:"list_id"`
AuthToken string `json:"auth_token,omitempty"`
}
CollectionListRef references an externally managed collection list.
type CollectionPagination ¶
type CollectionPagination struct {
MaxResults int `json:"max_results,omitempty"` // 1-10000, default 1000
Cursor string `json:"cursor,omitempty"`
}
CollectionPagination has higher limits than standard pagination because collection lists can contain thousands of entries.
type CollectionRelationship ¶
type CollectionRelationship = string
CollectionRelationship — How two collections are related. References are scoped to the same
const ( CollectionRelationshipSpinoff CollectionRelationship = "spinoff" CollectionRelationshipCompanion CollectionRelationship = "companion" CollectionRelationshipSequel CollectionRelationship = "sequel" CollectionRelationshipPrequel CollectionRelationship = "prequel" CollectionRelationshipCrossover CollectionRelationship = "crossover" )
func KnownCollectionRelationshipValues ¶
func KnownCollectionRelationshipValues() []CollectionRelationship
KnownCollectionRelationshipValues returns the current schema-defined values for CollectionRelationship.
func ParseCollectionRelationship ¶
func ParseCollectionRelationship(s string) (CollectionRelationship, error)
ParseCollectionRelationship returns s as CollectionRelationship when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CollectionRequestPagination ¶
type CollectionRequestPagination struct {
MaxResults int `json:"max_results,omitempty"` // Maximum number of collections to return per page
Cursor string `json:"cursor,omitempty"` // Opaque cursor from a previous response to fetch the next page
}
CollectionRequestPagination — Pagination parameters. Uses higher limits than standard pagination because collection lists can
type CollectionSelector ¶
type CollectionSelector struct {
PublisherDomain string `json:"publisher_domain"` // Domain where the adagents.json declaring these collections is hosted (e.g.
CollectionIDs []string `json:"collection_ids"` // Collection IDs from the adagents.json collections array. Each ID must match a
}
CollectionSelector — References collections declared in an adagents.json. Buyers resolve full collection objects by
type CollectionStatus ¶
type CollectionStatus = string
CollectionStatus — Lifecycle status of a collection
const ( CollectionStatusActive CollectionStatus = "active" CollectionStatusHiatus CollectionStatus = "hiatus" CollectionStatusEnded CollectionStatus = "ended" CollectionStatusUpcoming CollectionStatus = "upcoming" )
func KnownCollectionStatusValues ¶
func KnownCollectionStatusValues() []CollectionStatus
KnownCollectionStatusValues returns the current schema-defined values for CollectionStatus.
func ParseCollectionStatus ¶
func ParseCollectionStatus(s string) (CollectionStatus, error)
ParseCollectionStatus returns s as CollectionStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CommittedMetric ¶
type CommittedMetric struct {
Scope string `json:"scope,omitempty"` // Vendor-defined metric, identified by the tuple `(vendor, metric_id)`.
MetricID string `json:"metric_id,omitempty"` // Identifier for the metric within the vendor's vocabulary.
Qualifier *MetricQualifier `json:"qualifier,omitempty"` // Disambiguates metrics whose definition varies by qualifier. Today carries five
CommittedAt string `json:"committed_at,omitempty"` // ISO 8601 timestamp when this vendor metric became part of the contract.
Vendor *BrandReference `json:"vendor,omitempty"` // Vendor that defines and computes this metric. The vendor's `brand.json`
}
CommittedMetric — One metric in a package's binding reporting contract. Each entry uses `scope` as the discriminator
type CompletionSource ¶
type CompletionSource = string
CompletionSource — Trust-source disambiguator for `completion_rate` — *who* attested to the
const ( CompletionSourceSellerAttested CompletionSource = "seller_attested" CompletionSourceVendorAttested CompletionSource = "vendor_attested" )
func KnownCompletionSourceValues ¶
func KnownCompletionSourceValues() []CompletionSource
KnownCompletionSourceValues returns the current schema-defined values for CompletionSource.
func ParseCompletionSource ¶
func ParseCompletionSource(s string) (CompletionSource, error)
ParseCompletionSource returns s as CompletionSource when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ComplianceTestingCapabilities ¶
type ComplianceTestingCapabilities struct {
Scenarios []string `json:"scenarios"`
}
ComplianceTestingCapabilities declares supported comply_test_controller scenarios. scenarios is required when the block is present.
type ComplyTestControllerRequest ¶
type ComplyTestControllerRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Scenario string `json:"scenario"` // Test scenario to execute. 'list_scenarios' discovers supported scenarios.
Params map[string]any `json:"params,omitempty"` // Scenario-specific parameters. Required for all scenarios except list_scenarios.
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
Account any `json:"account"` // Sandbox account assertion. The runner MUST set sandbox: true on every
}
ComplyTestControllerRequest — Request payload for the comply_test_controller tool. Triggers seller-side state transitions for
type ComplyTestControllerResponse ¶
type ComplyTestControllerResponse interface {
// contains filtered or unexported methods
}
ComplyTestControllerResponse is a discriminated union — use one of the generated variant structs.
type Config ¶
type Config struct {
// Sandbox marks all responses as sandbox/test data.
Sandbox bool
// IdempotencyReplayTTL is how long this agent retains a canonical response
// for an idempotency_key. Required by AdCP 3.0 — sellers MUST declare their
// replay window. Must be in [1h, 7d]; 24h is recommended. Register panics
// if this is zero or outside the valid range.
IdempotencyReplayTTL time.Duration
// Capabilities, if set, declares the full typed capabilities response.
// supported_protocols and adcp.idempotency are filled in automatically if
// left empty. Use this to declare account / media_buy / signals / etc.
// blocks. If nil, a minimal response with just adcp + supported_protocols
// is built from the registered handlers.
Capabilities *CapabilitiesData
// ResolveAccount converts an AccountReference (brand + operator) to your
// internal account object. Called automatically before handlers that receive
// an account field. Return nil for unknown accounts (SDK sends ACCOUNT_NOT_FOUND).
ResolveAccount func(ctx context.Context, ref AccountReference) (any, error)
// --- Media buy ---
SyncAccounts func(ctx context.Context, req *SyncAccountsRequest) ([]AccountResult, error)
SyncGovernance func(ctx context.Context, req *SyncGovernanceRequest) ([]GovernanceResult, error)
GetProducts func(ctx context.Context, acct any, req *GetProductsRequest) (*ProductsData, error)
CreateMediaBuy func(ctx context.Context, acct any, req *CreateMediaBuyRequest) (CreateMediaBuyResponse, error)
GetMediaBuys func(ctx context.Context, acct any, req *GetMediaBuysRequest) (*GetMediaBuysResponse, error)
GetDelivery func(ctx context.Context, acct any, req *GetMediaBuyDeliveryRequest) (*DeliveryData, error)
// --- Creative ---
ListCreativeFormats func(ctx context.Context, req *ListCreativeFormatsRequest) ([]CreativeFormat, error)
SyncCreatives func(ctx context.Context, req *SyncCreativesRequest) ([]CreativeResult, error)
// --- Signals ---
GetSignals func(ctx context.Context, req *GetSignalsRequest) ([]Signal, error)
ActivateSignal func(ctx context.Context, req *ActivateSignalRequest) ([]Deployment, error)
// --- Collection ---
CreateCollectionList func(ctx context.Context, req *CreateCollectionListRequest) (*CreateCollectionListResult, error)
GetCollectionList func(ctx context.Context, req *GetCollectionListRequest) (*GetCollectionListResult, error)
UpdateCollectionList func(ctx context.Context, req *UpdateCollectionListRequest) (*CollectionList, error)
DeleteCollectionList func(ctx context.Context, req *DeleteCollectionListRequest) error
ListCollectionLists func(ctx context.Context, req *ListCollectionListsRequest) (*ListCollectionListsResult, error)
}
Config declares which AdCP tools your agent supports. Set only the handlers you implement — unset handlers mean the tool isn't registered.
Handlers can return adcp.NewError for typed AdCP errors, or plain errors (which become INTERNAL_ERROR).
type ConsentBasis ¶
type ConsentBasis = string
ConsentBasis — Common GDPR lawful bases relevant to advertising. Covers the Article 6(1)
const ( ConsentBasisConsent ConsentBasis = "consent" ConsentBasisLegitimateInterest ConsentBasis = "legitimate_interest" ConsentBasisContract ConsentBasis = "contract" ConsentBasisLegalObligation ConsentBasis = "legal_obligation" )
func KnownConsentBasisValues ¶
func KnownConsentBasisValues() []ConsentBasis
KnownConsentBasisValues returns the current schema-defined values for ConsentBasis.
func ParseConsentBasis ¶
func ParseConsentBasis(s string) (ConsentBasis, error)
ParseConsentBasis returns s as ConsentBasis when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ContentIDType ¶
type ContentIDType = string
ContentIDType — Identifier type used in content_ids on conversion events to match back to
const ( ContentIDTypeSku ContentIDType = "sku" ContentIDTypeGtin ContentIDType = "gtin" ContentIDTypeOfferingID ContentIDType = "offering_id" ContentIDTypeJobID ContentIDType = "job_id" ContentIDTypeHotelID ContentIDType = "hotel_id" ContentIDTypeFlightID ContentIDType = "flight_id" ContentIDTypeVehicleID ContentIDType = "vehicle_id" ContentIDTypeListingID ContentIDType = "listing_id" ContentIDTypeStoreID ContentIDType = "store_id" ContentIDTypeProgramID ContentIDType = "program_id" ContentIDTypeDestinationID ContentIDType = "destination_id" ContentIDTypeAppID ContentIDType = "app_id" )
func KnownContentIDTypeValues ¶
func KnownContentIDTypeValues() []ContentIDType
KnownContentIDTypeValues returns the current schema-defined values for ContentIDType.
func ParseContentIDType ¶
func ParseContentIDType(s string) (ContentIDType, error)
ParseContentIDType returns s as ContentIDType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ContentRating ¶
ContentRating is a content advisory rating using a specified rating system.
type ContentRatingSystem ¶
type ContentRatingSystem = string
ContentRatingSystem — Rating systems for content advisory classifications
const ( ContentRatingSystemTvParental ContentRatingSystem = "tv_parental" ContentRatingSystemMpaa ContentRatingSystem = "mpaa" ContentRatingSystemPodcast ContentRatingSystem = "podcast" ContentRatingSystemEsrb ContentRatingSystem = "esrb" ContentRatingSystemBbfc ContentRatingSystem = "bbfc" ContentRatingSystemFsk ContentRatingSystem = "fsk" ContentRatingSystemAcb ContentRatingSystem = "acb" ContentRatingSystemChvrs ContentRatingSystem = "chvrs" ContentRatingSystemCsa ContentRatingSystem = "csa" ContentRatingSystemPegi ContentRatingSystem = "pegi" ContentRatingSystemCustom ContentRatingSystem = "custom" )
func KnownContentRatingSystemValues ¶
func KnownContentRatingSystemValues() []ContentRatingSystem
KnownContentRatingSystemValues returns the current schema-defined values for ContentRatingSystem.
func ParseContentRatingSystem ¶
func ParseContentRatingSystem(s string) (ContentRatingSystem, error)
ParseContentRatingSystem returns s as ContentRatingSystem when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ContentStandardsCaps ¶
type ContentStandardsCaps struct {
SupportsLocalEvaluation *bool `json:"supports_local_evaluation,omitempty"`
SupportedChannels []string `json:"supported_channels,omitempty"`
SupportsWebhookDelivery *bool `json:"supports_webhook_delivery,omitempty"`
}
ContentStandardsCaps describes content-standards evaluation and delivery.
type ControllerError ¶
type ControllerError struct {
Success bool `json:"success"`
Error string `json:"error"` // Structured error code. `JCS_NON_FINITE_NUMBER` is reserved for digest-mode
ErrorDetail string `json:"error_detail,omitempty"` // Human-readable explanation of the failure
CurrentState *string `json:"current_state,omitempty"` // Current state of the entity, or null if not found
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ControllerError — The scenario failed or could not produce a conformant response — invalid transition, unknown
type ConversionTrackingCaps ¶
type ConversionTrackingCaps struct {
MultiSourceEventDedup *bool `json:"multi_source_event_dedup,omitempty"`
PerCreativeAttribution *bool `json:"per_creative_attribution,omitempty"`
SupportedEventTypes []string `json:"supported_event_types,omitempty"`
SupportedTargets []string `json:"supported_targets,omitempty"`
SupportedUIDTypes []string `json:"supported_uid_types,omitempty"`
SupportedHashedIdentifiers []string `json:"supported_hashed_identifiers,omitempty"`
SupportedActionSources []string `json:"supported_action_sources,omitempty"`
AttributionWindows []AttributionWindowOption `json:"attribution_windows,omitempty"`
}
ConversionTrackingCaps describes seller-level conversion event capabilities. AttributionWindows (plural) lists window options a buyer can choose from — distinct from the singular AttributionWindow in core/attribution-window.json used on an optimization goal.
type CreateCollectionListRequest ¶
type CreateCollectionListRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Account *AccountReference `json:"account,omitempty"` // Account that will own the list. Pass a natural key (brand, operator, optional
Name string `json:"name"` // Human-readable name for the list
Description string `json:"description,omitempty"` // Description of the list's purpose
BaseCollections []BaseCollectionSource `json:"base_collections,omitempty"` // Array of collection sources to evaluate. Each entry is a discriminated union
Filters *CollectionListFilters `json:"filters,omitempty"` // Dynamic filters to apply when resolving the list
Brand *BrandReference `json:"brand,omitempty"` // Brand reference. When provided, the agent automatically applies appropriate
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for this request. Prevents duplicate collection
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
CreateCollectionListRequest — Request parameters for creating a new collection list
type CreateCollectionListResult ¶
type CreateCollectionListResult struct {
List *CollectionList
AuthToken string
}
CreateCollectionListResult is the return type for Config.CreateCollectionList.
type CreateMediaBuyError ¶
type CreateMediaBuyError struct {
Errors []AdcpError `json:"errors"` // Array of errors explaining why the operation failed
Context any `json:"context,omitempty"` // Opaque media-buy-level correlation data echoed unchanged from the
Ext any `json:"ext,omitempty"`
}
CreateMediaBuyError — Error response - operation failed, no media buy created
type CreateMediaBuyRequest ¶
type CreateMediaBuyRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for this request. If a request with the same
PlanID string `json:"plan_id,omitempty"` // Campaign governance plan identifier. Required when the account has
Account AccountReference `json:"account"` // Account to bill for this media buy. Pass a natural key (brand, operator
ProposalID string `json:"proposal_id,omitempty"` // ID of a committed proposal from get_products to execute. When provided with
TotalBudget *MediaBuyBudget `json:"total_budget,omitempty"` // Total budget for the media buy when executing a proposal. The publisher
Packages []PackageInput `json:"packages,omitempty"` // Array of package configurations. Required when not using proposal_id. When
Brand BrandReference `json:"brand"` // Brand reference for this media buy. Resolved to full brand identity at
AdvertiserIndustry AdvertiserIndustry `json:"advertiser_industry,omitempty"` // Industry classification for this specific campaign. A brand may operate across
InvoiceRecipient *BusinessEntity `json:"invoice_recipient,omitempty"` // Override the account's default billing entity for this specific buy. When
IoAcceptance *IOAcceptance `json:"io_acceptance,omitempty"` // Acceptance of an insertion order from a committed proposal. Required when the
PoNumber string `json:"po_number,omitempty"` // Purchase order number for tracking
AgencyEstimateNumber string `json:"agency_estimate_number,omitempty"` // Agency estimate or authorization number. Primary financial reference for
StartTime string `json:"start_time"`
EndTime string `json:"end_time"` // Campaign end date/time in ISO 8601 format
Paused *bool `json:"paused,omitempty"` // Create the media buy in a paused delivery state. When true, and the buy would
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Optional webhook configuration for async task status notifications. Publisher
ReportingWebhook *ReportingWebhook `json:"reporting_webhook,omitempty"` // Optional webhook configuration for automated reporting delivery
ArtifactWebhook *ArtifactWebhookConfig `json:"artifact_webhook,omitempty"` // Optional webhook configuration for content artifact delivery. Used by
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
CreateMediaBuyRequest — Request parameters for creating a media buy. Supports two modes: (1) Manual mode - provide
type CreateMediaBuyResponse ¶
type CreateMediaBuyResponse interface {
// contains filtered or unexported methods
}
CreateMediaBuyResponse is a discriminated union — use one of the generated variant structs.
type CreateMediaBuyResult
deprecated
type CreateMediaBuyResult = CreateMediaBuyResponse
CreateMediaBuyResult is an alias for the generated create_media_buy response union.
Deprecated: use CreateMediaBuyResponse.
type CreateMediaBuySubmitted ¶
type CreateMediaBuySubmitted struct {
Status string `json:"status"` // Task-level status literal. Discriminates this async envelope from the
TaskID string `json:"task_id"` // Task handle the buyer uses with tasks/get, and that the seller references on
Message string `json:"message,omitempty"` // Optional human-readable explanation of why the task is submitted — e.g.
Errors []AdcpError `json:"errors,omitempty"` // Optional advisory errors accompanying the submitted envelope. Use only for
Context any `json:"context,omitempty"` // Opaque media-buy-level correlation data echoed unchanged from the
Ext any `json:"ext,omitempty"`
}
CreateMediaBuySubmitted — Async task envelope returned when the media buy cannot be confirmed before the response is emitted
type CreateMediaBuySuccess ¶
type CreateMediaBuySuccess struct {
MediaBuyID string `json:"media_buy_id"` // Seller's unique identifier for the created media buy
Account *Account `json:"account,omitempty"` // Account billed for this media buy. Includes advertiser, billing proxy (if
InvoiceRecipient *BusinessEntity `json:"invoice_recipient,omitempty"` // Per-buy invoice recipient, echoed from the request when provided. Confirms the
MediaBuyStatus MediaBuyStatus `json:"media_buy_status,omitempty"` // Initial media buy status. Either 'pending_creatives' (awaiting creative
// Deprecated: DEPRECATED in 3.1, removed in 3.2 (#4906).
Status MediaBuyStatus `json:"status,omitempty"` // DEPRECATED in 3.1, removed in 3.2 (#4906). Use `media_buy_status` instead.
ConfirmedAt *string `json:"confirmed_at"` // ISO 8601 timestamp when this media buy was committed by the seller. Stable
CreativeDeadline string `json:"creative_deadline,omitempty"` // ISO 8601 timestamp for creative upload deadline
Revision int `json:"revision"` // Initial revision number for this media buy. Use in subsequent update_media_buy
Currency string `json:"currency,omitempty"` // ISO 4217 currency code (e.g., USD, EUR, GBP) for monetary values at this media
TotalBudget float64 `json:"total_budget,omitempty"` // Total budget amount across all packages, denominated in currency. Note: the
ValidActions []MediaBuyValidAction `json:"valid_actions,omitempty"` // Flat-vocabulary actions the buyer can perform on this media buy after
AvailableActions []MediaBuyAvailableAction `json:"available_actions,omitempty"` // Structured per-buy resolution of actions available immediately after creation.
Packages []Package `json:"packages"` // Array of created packages with complete state information
PlannedDelivery *PlannedDelivery `json:"planned_delivery,omitempty"` // The seller's interpreted delivery parameters. Describes what the seller will
Sandbox *bool `json:"sandbox,omitempty"` // When true, this response contains simulated data from sandbox mode.
Context any `json:"context,omitempty"` // Opaque media-buy-level correlation data echoed unchanged from the
Ext any `json:"ext,omitempty"`
}
CreateMediaBuySuccess — Success response - media buy created successfully
type CreativeAcceptedVerifier ¶
type CreativeAcceptedVerifier struct {
AgentURL string `json:"agent_url"` // URL of the governance agent. MUST use the `https://` scheme. The seller calls
FeatureID string `json:"feature_id,omitempty"` // Optional canonical `feature_id` the seller will request against this agent
Providers []string `json:"providers,omitempty"` // Optional `provider` labels this agent verifies (e.g., `['Encypher'
}
type CreativeAction ¶
type CreativeAction = string
CreativeAction — Action taken on a creative during sync operation
const ( CreativeActionCreated CreativeAction = "created" CreativeActionUpdated CreativeAction = "updated" CreativeActionUnchanged CreativeAction = "unchanged" CreativeActionFailed CreativeAction = "failed" CreativeActionDeleted CreativeAction = "deleted" )
func KnownCreativeActionValues ¶
func KnownCreativeActionValues() []CreativeAction
KnownCreativeActionValues returns the current schema-defined values for CreativeAction.
func ParseCreativeAction ¶
func ParseCreativeAction(s string) (CreativeAction, error)
ParseCreativeAction returns s as CreativeAction when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CreativeAgentCapability ¶
type CreativeAgentCapability = string
CreativeAgentCapability — Capabilities supported by creative agents for format handling
const ( CreativeAgentCapabilityValidation CreativeAgentCapability = "validation" CreativeAgentCapabilityAssembly CreativeAgentCapability = "assembly" CreativeAgentCapabilityGeneration CreativeAgentCapability = "generation" CreativeAgentCapabilityPreview CreativeAgentCapability = "preview" CreativeAgentCapabilityDelivery CreativeAgentCapability = "delivery" )
func KnownCreativeAgentCapabilityValues ¶
func KnownCreativeAgentCapabilityValues() []CreativeAgentCapability
KnownCreativeAgentCapabilityValues returns the current schema-defined values for CreativeAgentCapability.
func ParseCreativeAgentCapability ¶
func ParseCreativeAgentCapability(s string) (CreativeAgentCapability, error)
ParseCreativeAgentCapability returns s as CreativeAgentCapability when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CreativeAgentRef ¶
type CreativeAgentRef struct {
AgentURL string `json:"agent_url"` // Base URL for the creative agent (e.g., 'https://reference.example.com'
AgentName string `json:"agent_name,omitempty"` // Human-readable name for the creative agent
Capabilities []CreativeAgentCapability `json:"capabilities,omitempty"` // Capabilities this creative agent provides
}
type CreativeApprovalStatus ¶
type CreativeApprovalStatus = string
CreativeApprovalStatus — Approval state of a creative on a specific package
const ( CreativeApprovalStatusPendingReview CreativeApprovalStatus = "pending_review" CreativeApprovalStatusApproved CreativeApprovalStatus = "approved" CreativeApprovalStatusRejected CreativeApprovalStatus = "rejected" )
func KnownCreativeApprovalStatusValues ¶
func KnownCreativeApprovalStatusValues() []CreativeApprovalStatus
KnownCreativeApprovalStatusValues returns the current schema-defined values for CreativeApprovalStatus.
func ParseCreativeApprovalStatus ¶
func ParseCreativeApprovalStatus(s string) (CreativeApprovalStatus, error)
ParseCreativeApprovalStatus returns s as CreativeApprovalStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CreativeAsset ¶
type CreativeAsset struct {
CreativeID string `json:"creative_id"` // Unique identifier for the creative. Stable across legacy named-format and 3.1+
Name string `json:"name"` // Human-readable creative name
FormatID *FormatRef `json:"format_id,omitempty"` // Legacy named-format path. Always a structured object {agent_url, id} — never a
FormatKind string `json:"format_kind,omitempty"` // 3.1+ canonical-format path. The canonical format name this creative targets
FormatOptionRef *FormatOptionRef `json:"format_option_ref,omitempty"` // 3.1+ format-option path, optional. Structured format option reference matching
Assets map[string]any `json:"assets"` // Assets required by the format, keyed by asset_id or canonical asset_group_id.
Inputs []CreativeAssetInput `json:"inputs,omitempty"` // Preview contexts for generative formats - defines what scenarios to generate
Tags []string `json:"tags,omitempty"` // User-defined tags for organization and searchability
Status CreativeStatus `json:"status,omitempty"` // For generative creatives: set to 'approved' to finalize, 'rejected' to request
Weight *float64 `json:"weight,omitempty"` // Optional delivery weight for creative rotation when uploading via
PlacementRefs []PlacementRef `json:"placement_refs,omitempty"` // Optional structured placement references where this uploaded creative should
PlacementIDs []string `json:"placement_ids,omitempty"` // Legacy shorthand array of placement IDs where this creative should run when
IndustryIdentifiers []IndustryIdentifier `json:"industry_identifiers,omitempty"` // Industry-standard or market-specific identifiers for this creative (e.g.
Provenance *Provenance `json:"provenance,omitempty"` // Provenance metadata for this creative. Serves as the default provenance for
}
CreativeAsset — Creative asset for upload to library — supports static assets, generative formats, and third-party
type CreativeAssetInput ¶
type CreativeAssetInput struct {
Name string `json:"name"` // Human-readable name for this preview variant
Macros map[string]string `json:"macros,omitempty"` // Macro values to apply for this preview
ContextDescription string `json:"context_description,omitempty"` // Natural language description of the context for AI-generated content
}
type CreativeAssignment ¶
type CreativeAssignment struct {
CreativeID string `json:"creative_id"`
Weight *float64 `json:"weight,omitempty"`
PlacementRefs []PlacementRef `json:"placement_refs,omitempty"`
PlacementIDs []string `json:"placement_ids,omitempty"`
Extra map[string]any `json:"-"`
}
CreativeAssignment assigns an existing creative to a package.
func (CreativeAssignment) MarshalJSON ¶
func (a CreativeAssignment) MarshalJSON() ([]byte, error)
MarshalJSON preserves schema-allowed vendor fields while keeping typed fields authoritative when keys collide.
func (*CreativeAssignment) UnmarshalJSON ¶
func (a *CreativeAssignment) UnmarshalJSON(data []byte) error
UnmarshalJSON captures schema-allowed vendor fields so agents can round-trip platform-specific assignment metadata.
type CreativeBrief ¶
type CreativeBrief struct {
Name string `json:"name"` // Campaign or flight name for identification
Objective string `json:"objective,omitempty"` // Campaign objective that guides creative tone and call-to-action strategy
Tone string `json:"tone,omitempty"` // Desired tone for this campaign, modulating the brand's base tone (e.g.
Audience string `json:"audience,omitempty"` // Target audience description for this campaign
Territory string `json:"territory,omitempty"` // Creative territory or positioning the campaign should occupy
Messaging *CreativeBriefMessaging `json:"messaging,omitempty"` // Messaging framework for the campaign
ReferenceAssets []ReferenceAsset `json:"reference_assets,omitempty"` // Visual and strategic reference materials such as mood boards, product shots
Compliance *CreativeBriefCompliance `json:"compliance,omitempty"` // Regulatory and legal compliance requirements for this campaign.
}
CreativeBrief — Campaign-level creative context for AI-powered creative generation. Provides the layer between
type CreativeBriefCompliance ¶
type CreativeBriefCompliance struct {
RequiredDisclosures []CreativeBriefDisclosure `json:"required_disclosures,omitempty"` // Disclosures that must appear in creatives for this campaign. Each disclosure
ProhibitedClaims []string `json:"prohibited_claims,omitempty"` // Claims that must not appear in creatives for this campaign. Creative agents
}
CreativeBriefCompliance — Regulatory and legal compliance requirements for this campaign. Campaign-specific, regional, and
type CreativeBriefDisclosure ¶
type CreativeBriefDisclosure struct {
Text string `json:"text"` // The disclosure text that must appear in the creative
Position DisclosurePosition `json:"position,omitempty"` // Where the disclosure should appear within the creative. prominent: clearly
Jurisdictions []string `json:"jurisdictions,omitempty"` // Jurisdictions where this disclosure is required. ISO 3166-1 alpha-2 country
Regulation string `json:"regulation,omitempty"` // The regulation or legal authority requiring this disclosure (e.g., 'SEC Rule
MinDurationMs int `json:"min_duration_ms,omitempty"` // Minimum display duration in milliseconds. For video/audio disclosures, how
Language string `json:"language,omitempty"` // Language of the disclosure text as a BCP 47 language tag (e.g., 'en', 'fr-CA'
Persistence DisclosurePersistence `json:"persistence,omitempty"` // How long the disclosure must persist during content playback or display. When
}
type CreativeBriefMessaging ¶
type CreativeBriefMessaging struct {
Headline string `json:"headline,omitempty"` // Primary headline
Tagline string `json:"tagline,omitempty"` // Supporting tagline or sub-headline
CTA string `json:"cta,omitempty"` // Call-to-action text
KeyMessages []string `json:"key_messages,omitempty"` // Key messages to communicate in priority order
}
CreativeBriefMessaging — Messaging framework for the campaign
type CreativeCapabilities ¶
type CreativeCapabilities struct {
SupportsCompliance *bool `json:"supports_compliance,omitempty"`
HasCreativeLibrary *bool `json:"has_creative_library,omitempty"`
SupportsGeneration *bool `json:"supports_generation,omitempty"`
SupportsTransformation *bool `json:"supports_transformation,omitempty"`
SupportsTransformers *bool `json:"supports_transformers,omitempty"`
SupportsRefinement *bool `json:"supports_refinement,omitempty"`
SupportsEvaluator *bool `json:"supports_evaluator,omitempty"`
SupportsSpendControls *bool `json:"supports_spend_controls,omitempty"`
RefinableRetentionSeconds *int `json:"refinable_retention_seconds,omitempty"`
Multiplicity *CreativeMultiplicityCaps `json:"multiplicity,omitempty"`
SupportedFormats []CreativeSupportedFormat `json:"supported_formats,omitempty"`
BillsThroughAdcp *bool `json:"bills_through_adcp,omitempty"`
CanonicalCatalogVersion string `json:"canonical_catalog_version,omitempty"`
}
CreativeCapabilities is the creative protocol capability block.
type CreativeConsumption ¶
type CreativeConsumption struct {
Tokens int `json:"tokens,omitempty"`
ImagesGenerated int `json:"images_generated,omitempty"`
Renders int `json:"renders,omitempty"`
DurationSeconds float64 `json:"duration_seconds,omitempty"`
}
CreativeConsumption reports consumption metrics from paid creative generation.
type CreativeEventReasonCode ¶
type CreativeEventReasonCode = string
CreativeEventReasonCode — Categorical reason carried on creative lifecycle webhooks
const ( CreativeEventReasonCodeReviewPassed CreativeEventReasonCode = "review_passed" CreativeEventReasonCodeReviewFailure CreativeEventReasonCode = "review_failure" CreativeEventReasonCodeProcessingFailure CreativeEventReasonCode = "processing_failure" CreativeEventReasonCodeSellerRereview CreativeEventReasonCode = "seller_rereview" CreativeEventReasonCodePolicyRevocation CreativeEventReasonCode = "policy_revocation" CreativeEventReasonCodeContentDrift CreativeEventReasonCode = "content_drift" CreativeEventReasonCodeIdentityAuthorizationRevoked CreativeEventReasonCode = "identity_authorization_revoked" CreativeEventReasonCodeIdentityAuthorizationExpired CreativeEventReasonCode = "identity_authorization_expired" CreativeEventReasonCodeSourcePrivate CreativeEventReasonCode = "source_private" CreativeEventReasonCodeSourceDeleted CreativeEventReasonCode = "source_deleted" CreativeEventReasonCodeTakedownRequest CreativeEventReasonCode = "takedown_request" CreativeEventReasonCodeAdvertiserRequest CreativeEventReasonCode = "advertiser_request" CreativeEventReasonCodeSellerArchive CreativeEventReasonCode = "seller_archive" CreativeEventReasonCodeAccountClosed CreativeEventReasonCode = "account_closed" CreativeEventReasonCodeAccountSuspended CreativeEventReasonCode = "account_suspended" CreativeEventReasonCodeRetentionExpired CreativeEventReasonCode = "retention_expired" CreativeEventReasonCodeLegalErasure CreativeEventReasonCode = "legal_erasure" )
func KnownCreativeEventReasonCodeValues ¶
func KnownCreativeEventReasonCodeValues() []CreativeEventReasonCode
KnownCreativeEventReasonCodeValues returns the current schema-defined values for CreativeEventReasonCode.
func ParseCreativeEventReasonCode ¶
func ParseCreativeEventReasonCode(s string) (CreativeEventReasonCode, error)
ParseCreativeEventReasonCode returns s as CreativeEventReasonCode when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CreativeFilters ¶
type CreativeFilters struct {
CreativeIDs []string `json:"creative_ids,omitempty"`
FormatIDs []FormatRef `json:"format_ids,omitempty"`
}
CreativeFilters contains filters for list_creatives.
type CreativeFormat ¶
type CreativeFormat struct {
FormatID FormatRef `json:"format_id"` // This format's own identifier — a structured object {agent_url, id}, not a
Name string `json:"name"` // Human-readable format name
Description string `json:"description,omitempty"` // Plain text explanation of what this format does and what assets it requires
ExampleURL string `json:"example_url,omitempty"` // Optional URL to showcase page with examples and interactive demos of this format
AcceptsParameters []FormatIDParameter `json:"accepts_parameters,omitempty"` // List of parameters this format accepts in format_id. Template formats define
Renders []Render `json:"renders,omitempty"` // Specification of rendered pieces for this format. Most formats produce a
Assets []AssetSlot `json:"assets,omitempty"` // Array of all assets supported for this format. Each asset is identified by its
Delivery map[string]any `json:"delivery,omitempty"` // Delivery method specifications (e.g., hosted, VAST, third-party tags)
SupportedMacros []string `json:"supported_macros,omitempty"` // List of universal macros supported by this format (e.g., MEDIA_BUY_ID
// Deprecated: **DEPRECATED in 3.1.
InputFormatIDs []FormatRef `json:"input_format_ids,omitempty"` // **DEPRECATED in 3.1. Removed at 4.0.** Use `list_transformers` instead — a
// Deprecated: **DEPRECATED in 3.1.
OutputFormatIDs []FormatRef `json:"output_format_ids,omitempty"` // **DEPRECATED in 3.1. Removed at 4.0.** Use `list_transformers` instead — a
FormatCard *CreativeFormatCard `json:"format_card,omitempty"` // Optional standard visual card (300x400px) for displaying this format in user
Accessibility *CreativeFormatAccessibility `json:"accessibility,omitempty"` // Accessibility posture of this format. Declares the WCAG conformance level that
SupportedDisclosurePositions []DisclosurePosition `json:"supported_disclosure_positions,omitempty"` // Disclosure positions this format can render. Buyers use this to determine
DisclosureCapabilities []CreativeFormatDisclosureCapability `json:"disclosure_capabilities,omitempty"` // Structured disclosure capabilities per position with persistence modes.
FormatCardDetailed *CreativeFormatCardDetailed `json:"format_card_detailed,omitempty"` // Optional detailed card with carousel and full specifications. Provides rich
ReportedMetrics []AvailableMetric `json:"reported_metrics,omitempty"` // Metrics this format can produce in delivery reporting. Buyers receive the
// Deprecated: **DEPRECATED in 3.1.
PricingOptions []VendorPricingOption `json:"pricing_options,omitempty"` // **DEPRECATED in 3.1. Removed at 4.0.** Use `transformer.pricing_options` (via
Canonical *CanonicalProjectionRef `json:"canonical,omitempty"` // Optional v2 canonical-projection annotation. Always an object — bare-string
// Deprecated: **DEPRECATED in 3.1.
CanonicalParameters *ProductFormatDeclaration `json:"canonical_parameters,omitempty"` // **DEPRECATED in 3.1. Removed at 4.0.** Use `v1_format_ref` on the v2
}
CreativeFormat — Represents a creative format with its requirements
type CreativeFormatAccessibility ¶
type CreativeFormatAccessibility struct {
WcagLevel WcagLevel `json:"wcag_level"` // WCAG conformance level that this format achieves. For format-rendered
RequiresAccessibleAssets *bool `json:"requires_accessible_assets,omitempty"` // When true, all assets with x-accessibility fields must include those fields.
}
CreativeFormatAccessibility — Accessibility posture of this format. Declares the WCAG conformance level that creatives produced
type CreativeFormatCard ¶
type CreativeFormatCard struct {
FormatID FormatRef `json:"format_id"` // Creative format defining the card layout (typically format_card_standard)
Manifest map[string]any `json:"manifest"` // Asset manifest for rendering the card, structure defined by the format
}
CreativeFormatCard — Optional standard visual card (300x400px) for displaying this format in user interfaces. Can be
type CreativeFormatCardDetailed ¶
type CreativeFormatCardDetailed struct {
FormatID FormatRef `json:"format_id"` // Creative format defining the detailed card layout (typically
Manifest map[string]any `json:"manifest"` // Asset manifest for rendering the detailed card, structure defined by the format
}
CreativeFormatCardDetailed — Optional detailed card with carousel and full specifications. Provides rich format documentation
type CreativeFormatDisclosureCapability ¶
type CreativeFormatDisclosureCapability struct {
Position DisclosurePosition `json:"position"` // The disclosure position
Persistence []DisclosurePersistence `json:"persistence"` // Persistence modes this position supports
}
type CreativeIdentifierType ¶
type CreativeIdentifierType = string
CreativeIdentifierType — Industry-standard or market-specific identifier types for advertising
const ( CreativeIdentifierTypeAdID CreativeIdentifierType = "ad_id" CreativeIdentifierTypeIsci CreativeIdentifierType = "isci" CreativeIdentifierTypeClearcastClock CreativeIdentifierType = "clearcast_clock" CreativeIdentifierTypeIdcrea CreativeIdentifierType = "idcrea" )
func KnownCreativeIdentifierTypeValues ¶
func KnownCreativeIdentifierTypeValues() []CreativeIdentifierType
KnownCreativeIdentifierTypeValues returns the current schema-defined values for CreativeIdentifierType.
func ParseCreativeIdentifierType ¶
func ParseCreativeIdentifierType(s string) (CreativeIdentifierType, error)
ParseCreativeIdentifierType returns s as CreativeIdentifierType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CreativeInput ¶
type CreativeInput struct {
CreativeID string `json:"creative_id"`
FormatID *FormatRef `json:"format_id,omitempty"`
Name string `json:"name,omitempty"`
Assets map[string]any `json:"assets,omitempty"`
}
CreativeInput is a single creative in a sync_creatives request.
type CreativeListItem ¶
type CreativeManifest ¶
type CreativeManifest struct {
FormatID *FormatRef `json:"format_id,omitempty"` // Legacy named-format path. Always a structured object {agent_url, id} — never a
FormatKind string `json:"format_kind,omitempty"` // 3.1+ canonical-format path. The canonical format name this manifest targets
FormatOptionRef *FormatOptionRef `json:"format_option_ref,omitempty"` // 3.1+ format-option path, optional. Structured format option reference matching
Assets map[string]any `json:"assets"` // Map of slot keys to actual asset content. Legacy named-format path: each key
Brand *BrandReference `json:"brand,omitempty"` // Brand identity reference (BrandRef — `domain` plus optional `brand_id` for
Rights []RightsConstraint `json:"rights,omitempty"` // Rights constraints attached to this creative. Each entry represents
IndustryIdentifiers []IndustryIdentifier `json:"industry_identifiers,omitempty"` // Industry-standard or market-specific identifiers for this specific manifest
Provenance *Provenance `json:"provenance,omitempty"` // Provenance metadata for this creative manifest. Serves as the default
Ext any `json:"ext,omitempty"`
}
CreativeManifest — Complete specification of a creative: format identification + assets. A manifest carries EITHER a
type CreativeMultiplicityCaps ¶
type CreativeMultiplicityCaps struct {
SupportsCatalogFanout *bool `json:"supports_catalog_fanout,omitempty"`
MaxCreativesLimit *int `json:"max_creatives_limit,omitempty"`
SupportsSignalFanout *bool `json:"supports_signal_fanout,omitempty"`
MaxSignalConditionsLimit *int `json:"max_signal_conditions_limit,omitempty"`
SupportsVariants *bool `json:"supports_variants,omitempty"`
MaxVariantsLimit *int `json:"max_variants_limit,omitempty"`
VariantDimensions []string `json:"variant_dimensions,omitempty"`
SelectionStrategies []string `json:"selection_strategies,omitempty"`
}
CreativeMultiplicityCaps declares pre-call build_creative fan-out discriminators so a buyer can tell, before sending max_creatives / max_variants, whether this agent supports catalog/signal fan-out or variants and what per-call limits apply.
type CreativePolicy ¶
type CreativePolicy struct {
CoBranding CoBrandingRequirement `json:"co_branding"` // Co-branding requirement
LandingPage LandingPageRequirement `json:"landing_page"` // Landing page requirements
TemplatesAvailable bool `json:"templates_available"` // Whether creative templates are provided
ProvenanceRequired *bool `json:"provenance_required,omitempty"` // Whether creatives must include provenance metadata. When true, the seller
ProvenanceRequirements *CreativeProvenanceRequirements `json:"provenance_requirements,omitempty"` // Structured provenance requirements for creatives. Refines
AcceptedVerifiers []CreativeAcceptedVerifier `json:"accepted_verifiers,omitempty"` // Governance agents the seller operates, has allowlisted, or otherwise trusts to
}
CreativePolicy — Creative requirements and restrictions for a product
type CreativeProvenanceRequirements ¶
type CreativeProvenanceRequirements struct {
RequireDigitalSourceType *bool `json:"require_digital_source_type,omitempty"` // When true, the seller requires creatives to include a `digital_source_type`
RequireDisclosureMetadata *bool `json:"require_disclosure_metadata,omitempty"` // When true, the seller requires creatives to include a `disclosure` object in
RequireEmbeddedProvenance *bool `json:"require_embedded_provenance,omitempty"` // When true, the seller requires creatives to include at least one
}
CreativeProvenanceRequirements — Structured provenance requirements for creatives. Refines `provenance_required`: when
type CreativeQuality ¶
type CreativeQuality = string
CreativeQuality — Quality tier for creative generation, controlling the fidelity and cost tradeoff
const ( CreativeQualityDraft CreativeQuality = "draft" CreativeQualityProduction CreativeQuality = "production" )
func KnownCreativeQualityValues ¶
func KnownCreativeQualityValues() []CreativeQuality
KnownCreativeQualityValues returns the current schema-defined values for CreativeQuality.
func ParseCreativeQuality ¶
func ParseCreativeQuality(s string) (CreativeQuality, error)
ParseCreativeQuality returns s as CreativeQuality when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CreativeResult ¶
type CreativeSelectionStrategy ¶
type CreativeSelectionStrategy = string
CreativeSelectionStrategy — How a creative agent samples which catalog items / signal conditions to
const ( CreativeSelectionStrategyAudienceRelevance CreativeSelectionStrategy = "audience_relevance" CreativeSelectionStrategyContextualFit CreativeSelectionStrategy = "contextual_fit" CreativeSelectionStrategyPerformance CreativeSelectionStrategy = "performance" CreativeSelectionStrategyProximity CreativeSelectionStrategy = "proximity" CreativeSelectionStrategyInventoryPriority CreativeSelectionStrategy = "inventory_priority" CreativeSelectionStrategyRandom CreativeSelectionStrategy = "random" )
func KnownCreativeSelectionStrategyValues ¶
func KnownCreativeSelectionStrategyValues() []CreativeSelectionStrategy
KnownCreativeSelectionStrategyValues returns the current schema-defined values for CreativeSelectionStrategy.
func ParseCreativeSelectionStrategy ¶
func ParseCreativeSelectionStrategy(s string) (CreativeSelectionStrategy, error)
ParseCreativeSelectionStrategy returns s as CreativeSelectionStrategy when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CreativeSortField ¶
type CreativeSortField = string
CreativeSortField — Fields available for sorting creative library listings
const ( CreativeSortFieldCreatedDate CreativeSortField = "created_date" CreativeSortFieldUpdatedDate CreativeSortField = "updated_date" CreativeSortFieldName CreativeSortField = "name" CreativeSortFieldStatus CreativeSortField = "status" CreativeSortFieldAssignmentCount CreativeSortField = "assignment_count" )
func KnownCreativeSortFieldValues ¶
func KnownCreativeSortFieldValues() []CreativeSortField
KnownCreativeSortFieldValues returns the current schema-defined values for CreativeSortField.
func ParseCreativeSortField ¶
func ParseCreativeSortField(s string) (CreativeSortField, error)
ParseCreativeSortField returns s as CreativeSortField when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CreativeSpecsCaps ¶
type CreativeStatus ¶
type CreativeStatus = string
CreativeStatus — Lifecycle status of a creative asset in a creative library. See the Creative
const ( CreativeStatusProcessing CreativeStatus = "processing" CreativeStatusPendingReview CreativeStatus = "pending_review" CreativeStatusApproved CreativeStatus = "approved" CreativeStatusSuspended CreativeStatus = "suspended" CreativeStatusRejected CreativeStatus = "rejected" CreativeStatusArchived CreativeStatus = "archived" )
func KnownCreativeStatusValues ¶
func KnownCreativeStatusValues() []CreativeStatus
KnownCreativeStatusValues returns the current schema-defined values for CreativeStatus.
func ParseCreativeStatus ¶
func ParseCreativeStatus(s string) (CreativeStatus, error)
ParseCreativeStatus returns s as CreativeStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type CreativeSupportedFormat ¶
type CreativeSupportedFormat struct {
CapabilityID string `json:"capability_id,omitempty"`
Format ProductFormatDeclaration `json:"format"`
}
type CreativeVariable ¶
type CreativeVariable struct {
VariableID string `json:"variable_id"` // Variable identifier on the creative platform
Name string `json:"name"` // Human-readable variable name
VariableType string `json:"variable_type"` // Data type of the variable. Each type represents a semantic content slot: text
DefaultValue string `json:"default_value,omitempty"` // Default value used when no dynamic value is provided at serve time. All types
Required *bool `json:"required,omitempty"` // Whether this variable must have a value for the creative to serve
}
CreativeVariable — A dynamic content variable (DCO slot) on a creative. Variables represent content that can change
type DaastTrackingEvent ¶
type DaastTrackingEvent = string
DaastTrackingEvent — Tracking events for audio ads. Aligned to the IAB DAAST 1.1 `Tracking@event`
const ( DaastTrackingEventImpression DaastTrackingEvent = "impression" DaastTrackingEventCreativeView DaastTrackingEvent = "creativeView" DaastTrackingEventStart DaastTrackingEvent = "start" DaastTrackingEventFirstQuartile DaastTrackingEvent = "firstQuartile" DaastTrackingEventMidpoint DaastTrackingEvent = "midpoint" DaastTrackingEventThirdQuartile DaastTrackingEvent = "thirdQuartile" DaastTrackingEventComplete DaastTrackingEvent = "complete" DaastTrackingEventMute DaastTrackingEvent = "mute" DaastTrackingEventUnmute DaastTrackingEvent = "unmute" DaastTrackingEventPause DaastTrackingEvent = "pause" DaastTrackingEventResume DaastTrackingEvent = "resume" DaastTrackingEventRewind DaastTrackingEvent = "rewind" DaastTrackingEventSkip DaastTrackingEvent = "skip" DaastTrackingEventProgress DaastTrackingEvent = "progress" DaastTrackingEventClickTracking DaastTrackingEvent = "clickTracking" DaastTrackingEventCustomClick DaastTrackingEvent = "customClick" DaastTrackingEventClose DaastTrackingEvent = "close" DaastTrackingEventError DaastTrackingEvent = "error" DaastTrackingEventViewable DaastTrackingEvent = "viewable" DaastTrackingEventNotViewable DaastTrackingEvent = "notViewable" DaastTrackingEventViewUndetermined DaastTrackingEvent = "viewUndetermined" DaastTrackingEventMeasurableImpression DaastTrackingEvent = "measurableImpression" DaastTrackingEventViewableImpression DaastTrackingEvent = "viewableImpression" )
func KnownDaastTrackingEventValues ¶
func KnownDaastTrackingEventValues() []DaastTrackingEvent
KnownDaastTrackingEventValues returns the current schema-defined values for DaastTrackingEvent.
func ParseDaastTrackingEvent ¶
func ParseDaastTrackingEvent(s string) (DaastTrackingEvent, error)
ParseDaastTrackingEvent returns s as DaastTrackingEvent when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DaastVersion ¶
type DaastVersion = string
DaastVersion — Supported DAAST (Digital Audio Ad Serving Template) specification versions
const ( DaastVersion10 DaastVersion = "1.0" DaastVersion11 DaastVersion = "1.1" )
func KnownDaastVersionValues ¶
func KnownDaastVersionValues() []DaastVersion
KnownDaastVersionValues returns the current schema-defined values for DaastVersion.
func ParseDaastVersion ¶
func ParseDaastVersion(s string) (DaastVersion, error)
ParseDaastVersion returns s as DaastVersion when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DataProviderSignalSelector ¶
type DataProviderSignalSelector struct {
DataProviderDomain string `json:"data_provider_domain,omitempty"` // Domain where data provider's adagents.json is hosted (e.g., 'polk.com')
SelectionType string `json:"selection_type,omitempty"` // Discriminator indicating selection by signal tags
SignalIDs []string `json:"signal_ids,omitempty"` // Specific signal IDs from the data provider's published signal definitions
SignalTags []string `json:"signal_tags,omitempty"` // Signal tags from the data provider's published signal definitions. Selector
}
DataProviderSignalSelector — Selects signals from a data provider's adagents.json signals[]. Used for product definitions and
type DataSubjectContestation ¶
type DataSubjectContestation struct {
URL string `json:"url,omitempty"`
Email string `json:"email,omitempty"`
Languages []string `json:"languages,omitempty"`
}
DataSubjectContestation is a contestation contact point for data subjects (GDPR Art 22(3)). Either URL or Email is required.
type DateRange ¶
type DateRange struct {
Start string `json:"start"` // Start date (inclusive), ISO 8601
End string `json:"end"` // End date (inclusive), ISO 8601
}
DateRange — A date range with inclusive start and end dates (ISO 8601 calendar dates). Used for billing
type DatetimeRange ¶
type DatetimeRange struct {
Start string `json:"start"` // Start timestamp (inclusive), ISO 8601
End string `json:"end"` // End timestamp (inclusive), ISO 8601
}
DatetimeRange — A datetime range with inclusive start and end timestamps (ISO 8601 with timezone). Used for
type DayOfWeek ¶
type DayOfWeek = string
DayOfWeek — Days of the week for daypart targeting
func KnownDayOfWeekValues ¶
func KnownDayOfWeekValues() []DayOfWeek
KnownDayOfWeekValues returns the current schema-defined values for DayOfWeek.
func ParseDayOfWeek ¶
ParseDayOfWeek returns s as DayOfWeek when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DaypartTarget ¶
type DaypartTarget struct {
Days []DayOfWeek `json:"days"` // Days of week this window applies to. Use multiple days for compact targeting
StartHour int `json:"start_hour"` // Start hour (inclusive), 0-23 in 24-hour format. 0 = midnight, 6 = 6:00am, 18 =
EndHour int `json:"end_hour"` // End hour (exclusive), 1-24 in 24-hour format. 10 = 10:00am, 24 = midnight.
Label string `json:"label,omitempty"` // Optional human-readable name for this time window (e.g., 'Morning Drive'
}
DaypartTarget — A time window for daypart targeting. Specifies days of week and an hour range. start_hour is
type DelegationAuthority ¶
type DelegationAuthority = string
DelegationAuthority — Authority level granted to a delegated agent operating against a campaign plan.
const ( DelegationAuthorityFull DelegationAuthority = "full" DelegationAuthorityExecuteOnly DelegationAuthority = "execute_only" DelegationAuthorityProposeOnly DelegationAuthority = "propose_only" )
func KnownDelegationAuthorityValues ¶
func KnownDelegationAuthorityValues() []DelegationAuthority
KnownDelegationAuthorityValues returns the current schema-defined values for DelegationAuthority.
func ParseDelegationAuthority ¶
func ParseDelegationAuthority(s string) (DelegationAuthority, error)
ParseDelegationAuthority returns s as DelegationAuthority when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DeleteCollectionListRequest ¶
type DeleteCollectionListRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ListID string `json:"list_id"` // ID of the collection list to delete
Account *AccountReference `json:"account,omitempty"` // Account that owns the list. Required when the authenticated agent has access
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for at-most-once execution. If a request with the
}
DeleteCollectionListRequest — Request parameters for deleting a collection list
type DeliveryActionSourceMetrics ¶
type DeliveryActionSourceMetrics struct {
ActionSource ActionSource `json:"action_source"` // Where the conversion occurred
EventSourceID string `json:"event_source_id,omitempty"` // Event source that produced these conversions (for disambiguation when multiple
Count float64 `json:"count"` // Number of conversions from this action source
Value float64 `json:"value,omitempty"` // Total monetary value of conversions from this action source
}
type DeliveryAggregatedTotals ¶
type DeliveryAggregatedTotals struct {
Impressions float64 `json:"impressions"` // Total impressions delivered across all media buys
Spend float64 `json:"spend"` // Total amount spent across all media buys
Clicks float64 `json:"clicks,omitempty"` // Total clicks across all media buys (if applicable)
CompletedViews float64 `json:"completed_views,omitempty"` // Total audio/video completions across all media buys (if applicable)
Views float64 `json:"views,omitempty"` // Total views across all media buys (if applicable)
Conversions float64 `json:"conversions,omitempty"` // Total conversions across all media buys (if applicable)
ConversionValue float64 `json:"conversion_value,omitempty"` // Total conversion value across all media buys (if applicable)
Roas float64 `json:"roas,omitempty"` // Aggregate return on ad spend across all media buys (total conversion_value /
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of total conversions across all media buys from first-time brand
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Aggregate cost per conversion across all media buys (total spend / total
CompletionRate float64 `json:"completion_rate,omitempty"` // Aggregate completion rate across all media buys (weighted by impressions, not
Reach float64 `json:"reach,omitempty"` // Deduplicated reach across all media buys (if the seller can deduplicate across
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for reach. Only present when all aggregated media buys use
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit across all media buys (impressions / reach
MediaBuyCount int `json:"media_buy_count"` // Number of media buys included in the response
MetricAggregates []DeliveryMetricAggregate `json:"metric_aggregates,omitempty"` // Cross-buy delivery aggregates partitioned by qualifier. Row-symmetric with
}
DeliveryAggregatedTotals — Combined metrics across all returned media buys. Only included in API responses
type DeliveryAttributionWindow ¶
type DeliveryAttributionWindow struct {
PostClick *Duration `json:"post_click,omitempty"` // Post-click attribution window to apply.
PostView *Duration `json:"post_view,omitempty"` // Post-view attribution window to apply.
Model AttributionModel `json:"model,omitempty"` // Attribution model to use. When omitted, the seller applies their default model.
}
DeliveryAttributionWindow — Attribution window to apply for conversion metrics. When provided, the seller returns conversion
type DeliveryDOOHMetrics ¶
type DeliveryDOOHMetrics struct {
LoopPlays int `json:"loop_plays,omitempty"` // Number of times ad played in rotation
ScreensUsed int `json:"screens_used,omitempty"` // Number of unique screens displaying the ad
ScreenTimeSeconds int `json:"screen_time_seconds,omitempty"` // Total display time in seconds
SovAchieved float64 `json:"sov_achieved,omitempty"` // Actual share of voice delivered (0.0 to 1.0)
CalculationNotes string `json:"calculation_notes,omitempty"` // Per-row supplementary methodology notes for DOOH impression calculation (e.g.
VenueBreakdown []DeliveryDOOHVenueBreakdown `json:"venue_breakdown,omitempty"` // Per-venue performance breakdown
}
DeliveryDOOHMetrics — DOOH-specific metrics (only included for DOOH campaigns)
type DeliveryDOOHVenueBreakdown ¶
type DeliveryDOOHVenueBreakdown struct {
VenueID string `json:"venue_id"` // Venue identifier
VenueName string `json:"venue_name,omitempty"` // Human-readable venue name
VenueType string `json:"venue_type,omitempty"` // Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')
Impressions int `json:"impressions"` // Impressions delivered at this venue
LoopPlays int `json:"loop_plays,omitempty"` // Loop plays at this venue
ScreensUsed int `json:"screens_used,omitempty"` // Number of screens used at this venue
}
type DeliveryData ¶
type DeliveryData struct {
ReportingPeriod ReportingPeriod `json:"reporting_period"`
Currency string `json:"currency"`
MediaBuyDeliveries []MediaBuyDelivery `json:"media_buy_deliveries"`
Context any `json:"context,omitempty"`
}
type DeliveryEventTypeMetrics ¶
type DeliveryEventTypeMetrics struct {
EventType EventType `json:"event_type"` // The event type
EventSourceID string `json:"event_source_id,omitempty"` // Event source that produced these conversions (for disambiguation when multiple
Count float64 `json:"count"` // Number of events of this type
Value float64 `json:"value,omitempty"` // Total monetary value of events of this type
}
type DeliveryForecast ¶
type DeliveryForecast struct {
Points []ForecastPoint `json:"points"` // Forecasted delivery data points. For spend curves (default), points at
ForecastRangeUnit ForecastRangeUnit `json:"forecast_range_unit,omitempty"` // How to interpret the points array. 'spend' (default when omitted): points at
Method ForecastMethod `json:"method"` // Method used to produce this forecast
Currency string `json:"currency"` // ISO 4217 currency code for monetary values in this forecast (spend, budget)
DemographicSystem DemographicSystem `json:"demographic_system,omitempty"` // Measurement system for the demographic field. Ensures buyer and seller agree
Demographic string `json:"demographic,omitempty"` // Target demographic code within the specified demographic_system. For Nielsen
MeasurementSource string `json:"measurement_source,omitempty"` // Third-party measurement provider whose data was used to produce this forecast.
ReachUnit ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for reach and audience_size metrics in this forecast.
GeneratedAt string `json:"generated_at,omitempty"` // When this forecast was computed
ValidUntil string `json:"valid_until,omitempty"` // When this forecast expires. After this time, the forecast should be refreshed.
Ext any `json:"ext,omitempty"`
}
DeliveryForecast — Forecasted delivery metrics for a proposal or product allocation. Publishers attach points to help
type DeliveryMetricAggregate ¶
type DeliveryMetricAggregate struct {
Scope string `json:"scope,omitempty"` // Vendor-defined metric, identified by the tuple `(vendor, metric_id)`.
MetricID string `json:"metric_id,omitempty"` // Identifier for the metric within the vendor's vocabulary.
Qualifier *MetricQualifier `json:"qualifier,omitempty"` // Optional qualifier keys for vendor metrics that need disambiguation (rare
Value float64 `json:"value,omitempty"` // Aggregated vendor-attested value. Unit semantics defined by the vendor — see
MeasurableImpressions float64 `json:"measurable_impressions,omitempty"` // Coverage denominator — vendor measurement is rarely 100% of delivery (only
ViewableImpressions float64 `json:"viewable_impressions,omitempty"` // Component for `viewable_rate` (numerator).
Impressions float64 `json:"impressions,omitempty"` // Component for rate metrics whose denominator is total impressions (e.g.
CompletedViews float64 `json:"completed_views,omitempty"` // Component for `completion_rate` (numerator).
Spend float64 `json:"spend,omitempty"` // Component for cost-per metrics (denominator-ish; the cost half of the ratio).
Conversions float64 `json:"conversions,omitempty"` // Component for `cost_per_acquisition` and ROAS-family metrics.
ConversionValue float64 `json:"conversion_value,omitempty"` // Component for `roas` (numerator).
Clicks float64 `json:"clicks,omitempty"` // Component for `cost_per_click` and click-rate metrics.
Vendor *BrandReference `json:"vendor,omitempty"` // Vendor that defines and computes this metric. The vendor's `brand.json`
}
DeliveryMetricAggregate — One cross-buy delivery aggregate partitioned by metric scope and qualifier. Row-symmetric with
type DeliveryQuartileData ¶
type DeliveryQuartileData struct {
Q1Views float64 `json:"q1_views,omitempty"` // 25% completion views
Q2Views float64 `json:"q2_views,omitempty"` // 50% completion views
Q3Views float64 `json:"q3_views,omitempty"` // 75% completion views
Q4Views float64 `json:"q4_views,omitempty"` // 100% completion views
}
DeliveryQuartileData — Audio/video quartile completion data
type DeliveryReportingDimension ¶
type DeliveryReportingDimension struct {
Limit int `json:"limit,omitempty"` // Maximum number of entries to return. When omitted, all entries are returned
SortBy SortMetric `json:"sort_by,omitempty"` // Metric to sort breakdown rows by (descending). Falls back to 'spend' if the
}
DeliveryReportingDimension — Request device type breakdown.
type DeliveryReportingDimensions ¶
type DeliveryReportingDimensions struct {
Geo *DeliveryReportingGeoDimension `json:"geo,omitempty"` // Request geographic breakdown. Check
DeviceType *DeliveryReportingDimension `json:"device_type,omitempty"` // Request device type breakdown.
DevicePlatform *DeliveryReportingDimension `json:"device_platform,omitempty"` // Request device platform breakdown.
Audience *DeliveryReportingDimension `json:"audience,omitempty"` // Request audience segment breakdown.
Placement *DeliveryReportingDimension `json:"placement,omitempty"` // Request placement breakdown.
}
DeliveryReportingDimensions — Request dimensional breakdowns in delivery reporting. Each key enables a specific breakdown
type DeliveryReportingGeoDimension ¶
type DeliveryReportingGeoDimension struct {
GeoLevel GeoLevel `json:"geo_level"` // Geographic granularity level for the breakdown
System string `json:"system,omitempty"` // Optional classification system for metro or postal_area levels. Metro uses
Country string `json:"country,omitempty"` // ISO 3166-1 alpha-2 country code. Required for native postal_area requests
Limit int `json:"limit,omitempty"` // Maximum number of geo entries to return. Defaults to 25. When truncated
SortBy SortMetric `json:"sort_by,omitempty"` // Metric to sort breakdown rows by (descending). Falls back to 'spend' if the
}
DeliveryReportingGeoDimension — Request geographic breakdown. Check reporting_capabilities.supports_geo_breakdown for available
type DeliveryTotals ¶
type DeliveryTotals struct {
Impressions float64 `json:"impressions,omitempty"` // Impressions delivered
Spend float64 `json:"spend,omitempty"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
}
DeliveryTotals — Standard delivery metrics that can be reported at media buy, package, or creative level
func (DeliveryTotals) MarshalJSON ¶
func (d DeliveryTotals) MarshalJSON() ([]byte, error)
MarshalJSON preserves the schema-required spend field even when it is zero.
type DeliveryType ¶
type DeliveryType = string
DeliveryType — Type of inventory delivery
const ( DeliveryTypeGuaranteed DeliveryType = "guaranteed" DeliveryTypeNonGuaranteed DeliveryType = "non_guaranteed" )
func KnownDeliveryTypeValues ¶
func KnownDeliveryTypeValues() []DeliveryType
KnownDeliveryTypeValues returns the current schema-defined values for DeliveryType.
func ParseDeliveryType ¶
func ParseDeliveryType(s string) (DeliveryType, error)
ParseDeliveryType returns s as DeliveryType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DeliveryViewability ¶
type DeliveryViewability struct {
Vendor *BrandReference `json:"vendor,omitempty"` // Vendor that produced these viewability values. Optional but RECOMMENDED so the
MeasurableImpressions float64 `json:"measurable_impressions,omitempty"` // Impressions where viewability could be measured. Excludes environments without
ViewableImpressions float64 `json:"viewable_impressions,omitempty"` // Impressions that met the viewability threshold defined by the measurement
ViewableRate float64 `json:"viewable_rate,omitempty"` // Viewable impression rate (viewable_impressions / measurable_impressions).
ViewedSeconds float64 `json:"viewed_seconds,omitempty"` // Average in-view duration per measurable impression, in seconds. Reporting-side
Standard ViewabilityStandard `json:"standard,omitempty"` // Viewability measurement standard applied to these metrics. Governs the in-view
}
DeliveryViewability — Viewability metrics. Viewable rate should be calculated as viewable_impressions /
type DeliveryWindow ¶
type DeliveryWindow struct {
WindowStart string `json:"window_start"` // ISO 8601 start of the window slice (inclusive). UTC.
WindowEnd string `json:"window_end"` // ISO 8601 end of the window slice (exclusive). The next row's window_start
Totals *DeliveryTotals `json:"totals"` // Aggregate metrics for this window slice across all packages. Shape-aligned
ByPackage []DeliveryWindowPackage `json:"by_package,omitempty"` // Per-package metrics for this window slice. Same shape as the parent
IsFinal *bool `json:"is_final,omitempty"` // Whether the slice data is final for this window. Same semantics as the
MeasurementWindow string `json:"measurement_window,omitempty"` // Which measurement-window stage this slice represents (e.g., 'live', 'c3'
}
type DeliveryWindowPackage ¶
type DeliveryWindowPackage struct {
Impressions float64 `json:"impressions,omitempty"` // Impressions delivered
Spend float64 `json:"spend,omitempty"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
PackageID string `json:"package_id"` // Seller's package identifier
}
type DemographicSystem ¶
type DemographicSystem = string
DemographicSystem — Audience measurement systems for demographic notation in GRP forecasts and
const ( DemographicSystemNielsen DemographicSystem = "nielsen" DemographicSystemBarb DemographicSystem = "barb" DemographicSystemAgf DemographicSystem = "agf" DemographicSystemOztam DemographicSystem = "oztam" DemographicSystemMediametrie DemographicSystem = "mediametrie" DemographicSystemCustom DemographicSystem = "custom" )
func KnownDemographicSystemValues ¶
func KnownDemographicSystemValues() []DemographicSystem
KnownDemographicSystemValues returns the current schema-defined values for DemographicSystem.
func ParseDemographicSystem ¶
func ParseDemographicSystem(s string) (DemographicSystem, error)
ParseDemographicSystem returns s as DemographicSystem when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Deployment ¶
type Deployment struct {
Type string `json:"type"`
Platform string `json:"platform,omitempty"`
AgentURL string `json:"agent_url,omitempty"`
Account string `json:"account,omitempty"`
IsLive *bool `json:"is_live,omitempty"`
ActivationKey *ActivationKey `json:"activation_key,omitempty"`
DeployedAt string `json:"deployed_at,omitempty"`
EstimatedActivationDurationMinutes int `json:"estimated_activation_duration_minutes,omitempty"`
}
Deployment is the flattened union of deployment.json's oneOf variants. Type is the discriminator:
"platform": set Platform (required), AgentURL, Account, ActivationKey. "agent": set AgentURL (required), ActivationKey.
All variants: IsLive, DeployedAt, EstimatedActivationDurationMinutes. Do not mix variant-specific fields — schema validators accept it because additionalProperties=true, but the result is semantically wrong.
type DerivativeType ¶
type DerivativeType = string
DerivativeType — What kind of derivative content an installment represents relative to its
const ( DerivativeTypeClip DerivativeType = "clip" DerivativeTypeHighlight DerivativeType = "highlight" DerivativeTypeRecap DerivativeType = "recap" DerivativeTypeTrailer DerivativeType = "trailer" DerivativeTypeBonus DerivativeType = "bonus" )
func KnownDerivativeTypeValues ¶
func KnownDerivativeTypeValues() []DerivativeType
KnownDerivativeTypeValues returns the current schema-defined values for DerivativeType.
func ParseDerivativeType ¶
func ParseDerivativeType(s string) (DerivativeType, error)
ParseDerivativeType returns s as DerivativeType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Destination ¶
type Destination struct {
Type string `json:"type,omitempty"` // Discriminator indicating this is an agent URL-based deployment
Platform string `json:"platform,omitempty"` // Platform identifier for DSPs (e.g., 'the-trade-desk', 'amazon-dsp')
Account string `json:"account,omitempty"` // Optional account identifier on the agent
AgentURL string `json:"agent_url,omitempty"` // URL identifying the deployment agent (for sales agents, etc.)
}
Destination — A deployment target where signals can be activated (DSP, sales agent, etc.)
type DestinationInput ¶
type DestinationInput struct {
Type string `json:"type"`
Platform string `json:"platform,omitempty"`
AgentURL string `json:"agent_url,omitempty"`
Account string `json:"account,omitempty"`
}
DestinationInput is a single destination in an activate_signal request.
type DevicePlatform ¶
type DevicePlatform = string
DevicePlatform — Operating system platforms for device targeting. Browser values from
const ( DevicePlatformIos DevicePlatform = "ios" DevicePlatformAndroid DevicePlatform = "android" DevicePlatformWindows DevicePlatform = "windows" DevicePlatformMacos DevicePlatform = "macos" DevicePlatformLinux DevicePlatform = "linux" DevicePlatformChromeos DevicePlatform = "chromeos" DevicePlatformTvos DevicePlatform = "tvos" DevicePlatformTizen DevicePlatform = "tizen" DevicePlatformWebos DevicePlatform = "webos" DevicePlatformFireOs DevicePlatform = "fire_os" DevicePlatformRokuOs DevicePlatform = "roku_os" DevicePlatformUnknown DevicePlatform = "unknown" )
func KnownDevicePlatformValues ¶
func KnownDevicePlatformValues() []DevicePlatform
KnownDevicePlatformValues returns the current schema-defined values for DevicePlatform.
func ParseDevicePlatform ¶
func ParseDevicePlatform(s string) (DevicePlatform, error)
ParseDevicePlatform returns s as DevicePlatform when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DeviceType ¶
type DeviceType = string
DeviceType — Device form factor categories for targeting and reporting. Complements
const ( DeviceTypeDesktop DeviceType = "desktop" DeviceTypeMobile DeviceType = "mobile" DeviceTypeTablet DeviceType = "tablet" DeviceTypeCtv DeviceType = "ctv" DeviceTypeDooh DeviceType = "dooh" DeviceTypeUnknown DeviceType = "unknown" )
func KnownDeviceTypeValues ¶
func KnownDeviceTypeValues() []DeviceType
KnownDeviceTypeValues returns the current schema-defined values for DeviceType.
func ParseDeviceType ¶
func ParseDeviceType(s string) (DeviceType, error)
ParseDeviceType returns s as DeviceType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DiagnosticIssue ¶
type DiagnosticIssue struct {
Severity string `json:"severity"` // 'error': blocks optimization until resolved. 'warning': optimization works but
Message string `json:"message"` // Human/agent-readable description of the issue and how to resolve it.
}
DiagnosticIssue — An actionable issue detected during a health or readiness assessment. Used by event source health
type DigitalSourceType ¶
type DigitalSourceType = string
DigitalSourceType — Classification of AI involvement in content creation, aligned with IPTC
const ( DigitalSourceTypeDigitalCapture DigitalSourceType = "digital_capture" DigitalSourceTypeDigitalCreation DigitalSourceType = "digital_creation" DigitalSourceTypeTrainedAlgorithmicMedia DigitalSourceType = "trained_algorithmic_media" DigitalSourceTypeCompositeWithTrainedAlgorithmicMedia DigitalSourceType = "composite_with_trained_algorithmic_media" DigitalSourceTypeAlgorithmicMedia DigitalSourceType = "algorithmic_media" DigitalSourceTypeCompositeCapture DigitalSourceType = "composite_capture" DigitalSourceTypeCompositeSynthetic DigitalSourceType = "composite_synthetic" DigitalSourceTypeHumanEdits DigitalSourceType = "human_edits" DigitalSourceTypeDataDrivenMedia DigitalSourceType = "data_driven_media" )
func KnownDigitalSourceTypeValues ¶
func KnownDigitalSourceTypeValues() []DigitalSourceType
KnownDigitalSourceTypeValues returns the current schema-defined values for DigitalSourceType.
func ParseDigitalSourceType ¶
func ParseDigitalSourceType(s string) (DigitalSourceType, error)
ParseDigitalSourceType returns s as DigitalSourceType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DimensionUnit ¶
type DimensionUnit = string
DimensionUnit — Units of measurement for creative format dimensions
const ( DimensionUnitPx DimensionUnit = "px" DimensionUnitDp DimensionUnit = "dp" DimensionUnitInches DimensionUnit = "inches" DimensionUnitCm DimensionUnit = "cm" DimensionUnitMm DimensionUnit = "mm" DimensionUnitPt DimensionUnit = "pt" )
func KnownDimensionUnitValues ¶
func KnownDimensionUnitValues() []DimensionUnit
KnownDimensionUnitValues returns the current schema-defined values for DimensionUnit.
func ParseDimensionUnit ¶
func ParseDimensionUnit(s string) (DimensionUnit, error)
ParseDimensionUnit returns s as DimensionUnit when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DisclosurePersistence ¶
type DisclosurePersistence = string
DisclosurePersistence — How long a disclosure must persist during content playback or display.
const ( DisclosurePersistenceContinuous DisclosurePersistence = "continuous" DisclosurePersistenceInitial DisclosurePersistence = "initial" DisclosurePersistenceFlexible DisclosurePersistence = "flexible" )
func KnownDisclosurePersistenceValues ¶
func KnownDisclosurePersistenceValues() []DisclosurePersistence
KnownDisclosurePersistenceValues returns the current schema-defined values for DisclosurePersistence.
func ParseDisclosurePersistence ¶
func ParseDisclosurePersistence(s string) (DisclosurePersistence, error)
ParseDisclosurePersistence returns s as DisclosurePersistence when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DisclosurePosition ¶
type DisclosurePosition = string
DisclosurePosition — Where a required disclosure should appear within a creative. Used by creative
const ( DisclosurePositionProminent DisclosurePosition = "prominent" DisclosurePositionAudio DisclosurePosition = "audio" DisclosurePositionSubtitle DisclosurePosition = "subtitle" DisclosurePositionOverlay DisclosurePosition = "overlay" DisclosurePositionEndCard DisclosurePosition = "end_card" DisclosurePositionPreRoll DisclosurePosition = "pre_roll" DisclosurePositionCompanion DisclosurePosition = "companion" )
func KnownDisclosurePositionValues ¶
func KnownDisclosurePositionValues() []DisclosurePosition
KnownDisclosurePositionValues returns the current schema-defined values for DisclosurePosition.
func ParseDisclosurePosition ¶
func ParseDisclosurePosition(s string) (DisclosurePosition, error)
ParseDisclosurePosition returns s as DisclosurePosition when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DistanceUnit ¶
type DistanceUnit = string
DistanceUnit — Units of distance measurement for radius-based catchment areas.
const ( DistanceUnitKm DistanceUnit = "km" DistanceUnitMi DistanceUnit = "mi" DistanceUnitM DistanceUnit = "m" )
func KnownDistanceUnitValues ¶
func KnownDistanceUnitValues() []DistanceUnit
KnownDistanceUnitValues returns the current schema-defined values for DistanceUnit.
func ParseDistanceUnit ¶
func ParseDistanceUnit(s string) (DistanceUnit, error)
ParseDistanceUnit returns s as DistanceUnit when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type DistributionID ¶
DistributionID is a platform-independent identifier for cross-publisher matching.
type DistributionIdentifierType ¶
type DistributionIdentifierType = string
DistributionIdentifierType — Platform-specific identifier types for collection distribution. Maps a
const ( DistributionIdentifierTypeApplePodcastID DistributionIdentifierType = "apple_podcast_id" DistributionIdentifierTypeSpotifyCollectionID DistributionIdentifierType = "spotify_collection_id" DistributionIdentifierTypeRssURL DistributionIdentifierType = "rss_url" DistributionIdentifierTypePodcastGuid DistributionIdentifierType = "podcast_guid" DistributionIdentifierTypeAmazonMusicID DistributionIdentifierType = "amazon_music_id" DistributionIdentifierTypeIheartID DistributionIdentifierType = "iheart_id" DistributionIdentifierTypePodcastIndexID DistributionIdentifierType = "podcast_index_id" DistributionIdentifierTypeYoutubeChannelID DistributionIdentifierType = "youtube_channel_id" DistributionIdentifierTypeYoutubeChannelHandle DistributionIdentifierType = "youtube_channel_handle" DistributionIdentifierTypeYoutubeChannelURL DistributionIdentifierType = "youtube_channel_url" DistributionIdentifierTypeYoutubePlaylistID DistributionIdentifierType = "youtube_playlist_id" DistributionIdentifierTypeAmazonTitleID DistributionIdentifierType = "amazon_title_id" DistributionIdentifierTypeRokuChannelID DistributionIdentifierType = "roku_channel_id" DistributionIdentifierTypePlutoChannelID DistributionIdentifierType = "pluto_channel_id" DistributionIdentifierTypeTubiID DistributionIdentifierType = "tubi_id" DistributionIdentifierTypePeacockID DistributionIdentifierType = "peacock_id" DistributionIdentifierTypeTiktokID DistributionIdentifierType = "tiktok_id" DistributionIdentifierTypeTwitchChannel DistributionIdentifierType = "twitch_channel" DistributionIdentifierTypeImdbID DistributionIdentifierType = "imdb_id" DistributionIdentifierTypeGracenoteID DistributionIdentifierType = "gracenote_id" DistributionIdentifierTypeEidrID DistributionIdentifierType = "eidr_id" DistributionIdentifierTypeDomain DistributionIdentifierType = "domain" DistributionIdentifierTypeSubstackID DistributionIdentifierType = "substack_id" )
func KnownDistributionIdentifierTypeValues ¶
func KnownDistributionIdentifierTypeValues() []DistributionIdentifierType
KnownDistributionIdentifierTypeValues returns the current schema-defined values for DistributionIdentifierType.
func ParseDistributionIdentifierType ¶
func ParseDistributionIdentifierType(s string) (DistributionIdentifierType, error)
ParseDistributionIdentifierType returns s as DistributionIdentifierType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Duration ¶
type Duration struct {
Interval int `json:"interval"`
Unit string `json:"unit"` // "seconds", "minutes", "hours", "days", "campaign"
}
Duration is a time duration expressed as an interval and unit.
type EmbeddedProvenanceMethod ¶
type EmbeddedProvenanceMethod = string
EmbeddedProvenanceMethod — How provenance data is carried within the content stream. Distinguishes
const ( EmbeddedProvenanceMethodManifestWrapper EmbeddedProvenanceMethod = "manifest_wrapper" EmbeddedProvenanceMethodProvenanceMarkers EmbeddedProvenanceMethod = "provenance_markers" )
func KnownEmbeddedProvenanceMethodValues ¶
func KnownEmbeddedProvenanceMethodValues() []EmbeddedProvenanceMethod
KnownEmbeddedProvenanceMethodValues returns the current schema-defined values for EmbeddedProvenanceMethod.
func ParseEmbeddedProvenanceMethod ¶
func ParseEmbeddedProvenanceMethod(s string) (EmbeddedProvenanceMethod, error)
ParseEmbeddedProvenanceMethod returns s as EmbeddedProvenanceMethod when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type EmptyInput ¶
type EmptyInput struct{}
EmptyInput is the input type for tools that accept no parameters (e.g. get_adcp_capabilities).
type ErrorCode ¶
type ErrorCode = string
ErrorCode — Standard error code vocabulary for AdCP. Codes are machine-readable so agents
const ( ErrorCodeINVALIDREQUEST ErrorCode = "INVALID_REQUEST" ErrorCodeAUTHREQUIRED ErrorCode = "AUTH_REQUIRED" ErrorCodeAUTHMISSING ErrorCode = "AUTH_MISSING" ErrorCodeAUTHINVALID ErrorCode = "AUTH_INVALID" ErrorCodeAUTHORIZATIONREQUIRED ErrorCode = "AUTHORIZATION_REQUIRED" ErrorCodeRATELIMITED ErrorCode = "RATE_LIMITED" ErrorCodeSERVICEUNAVAILABLE ErrorCode = "SERVICE_UNAVAILABLE" ErrorCodeCONFIGURATIONERROR ErrorCode = "CONFIGURATION_ERROR" ErrorCodePOLICYVIOLATION ErrorCode = "POLICY_VIOLATION" ErrorCodePRODUCTNOTFOUND ErrorCode = "PRODUCT_NOT_FOUND" ErrorCodePRODUCTUNAVAILABLE ErrorCode = "PRODUCT_UNAVAILABLE" ErrorCodePROPOSALEXPIRED ErrorCode = "PROPOSAL_EXPIRED" ErrorCodeBUDGETTOOLOW ErrorCode = "BUDGET_TOO_LOW" ErrorCodeCREATIVEREJECTED ErrorCode = "CREATIVE_REJECTED" ErrorCodeCREATIVEVALUENOTALLOWED ErrorCode = "CREATIVE_VALUE_NOT_ALLOWED" ErrorCodeUNSUPPORTEDFEATURE ErrorCode = "UNSUPPORTED_FEATURE" ErrorCodeUNPRICEABLEOUTPUT ErrorCode = "UNPRICEABLE_OUTPUT" ErrorCodeUNSUPPORTEDGRANULARITY ErrorCode = "UNSUPPORTED_GRANULARITY" ErrorCodeUNSUPPORTEDPROVISIONING ErrorCode = "UNSUPPORTED_PROVISIONING" ErrorCodeAUDIENCETOOSMALL ErrorCode = "AUDIENCE_TOO_SMALL" ErrorCodeACCOUNTNOTFOUND ErrorCode = "ACCOUNT_NOT_FOUND" ErrorCodeACCOUNTSETUPREQUIRED ErrorCode = "ACCOUNT_SETUP_REQUIRED" ErrorCodeACCOUNTAMBIGUOUS ErrorCode = "ACCOUNT_AMBIGUOUS" ErrorCodeACCOUNTPAYMENTREQUIRED ErrorCode = "ACCOUNT_PAYMENT_REQUIRED" ErrorCodeACCOUNTSUSPENDED ErrorCode = "ACCOUNT_SUSPENDED" ErrorCodeCOMPLIANCEUNSATISFIED ErrorCode = "COMPLIANCE_UNSATISFIED" ErrorCodeGOVERNANCEDENIED ErrorCode = "GOVERNANCE_DENIED" ErrorCodeBUDGETEXHAUSTED ErrorCode = "BUDGET_EXHAUSTED" ErrorCodeBUDGETEXCEEDED ErrorCode = "BUDGET_EXCEEDED" ErrorCodeBUDGETCAPREACHED ErrorCode = "BUDGET_CAP_REACHED" ErrorCodeCONFLICT ErrorCode = "CONFLICT" ErrorCodeIDEMPOTENCYCONFLICT ErrorCode = "IDEMPOTENCY_CONFLICT" ErrorCodeIDEMPOTENCYEXPIRED ErrorCode = "IDEMPOTENCY_EXPIRED" ErrorCodeIDEMPOTENCYINFLIGHT ErrorCode = "IDEMPOTENCY_IN_FLIGHT" ErrorCodeCREATIVEDEADLINEEXCEEDED ErrorCode = "CREATIVE_DEADLINE_EXCEEDED" ErrorCodeCREATIVEINACCESSIBLE ErrorCode = "CREATIVE_INACCESSIBLE" ErrorCodeINVALIDSTATE ErrorCode = "INVALID_STATE" ErrorCodeMEDIABUYNOTFOUND ErrorCode = "MEDIA_BUY_NOT_FOUND" ErrorCodeNOTCANCELLABLE ErrorCode = "NOT_CANCELLABLE" ErrorCodePACKAGENOTFOUND ErrorCode = "PACKAGE_NOT_FOUND" ErrorCodeCREATIVENOTFOUND ErrorCode = "CREATIVE_NOT_FOUND" ErrorCodeSIGNALNOTFOUND ErrorCode = "SIGNAL_NOT_FOUND" ErrorCodeSIGNALTARGETINGINCOMPATIBLE ErrorCode = "SIGNAL_TARGETING_INCOMPATIBLE" ErrorCodeSESSIONNOTFOUND ErrorCode = "SESSION_NOT_FOUND" ErrorCodePLANNOTFOUND ErrorCode = "PLAN_NOT_FOUND" ErrorCodeREFERENCENOTFOUND ErrorCode = "REFERENCE_NOT_FOUND" ErrorCodeSESSIONTERMINATED ErrorCode = "SESSION_TERMINATED" ErrorCodeVALIDATIONERROR ErrorCode = "VALIDATION_ERROR" ErrorCodePRODUCTEXPIRED ErrorCode = "PRODUCT_EXPIRED" ErrorCodePROPOSALNOTCOMMITTED ErrorCode = "PROPOSAL_NOT_COMMITTED" ErrorCodePROPOSALNOTFOUND ErrorCode = "PROPOSAL_NOT_FOUND" ErrorCodeMULTIFINALIZEUNSUPPORTED ErrorCode = "MULTI_FINALIZE_UNSUPPORTED" ErrorCodeIOREQUIRED ErrorCode = "IO_REQUIRED" ErrorCodeTERMSREJECTED ErrorCode = "TERMS_REJECTED" ErrorCodeREQUOTEREQUIRED ErrorCode = "REQUOTE_REQUIRED" ErrorCodeVERSIONUNSUPPORTED ErrorCode = "VERSION_UNSUPPORTED" ErrorCodeCAMPAIGNSUSPENDED ErrorCode = "CAMPAIGN_SUSPENDED" ErrorCodeGOVERNANCEUNAVAILABLE ErrorCode = "GOVERNANCE_UNAVAILABLE" ErrorCodePERMISSIONDENIED ErrorCode = "PERMISSION_DENIED" ErrorCodeSCOPEINSUFFICIENT ErrorCode = "SCOPE_INSUFFICIENT" ErrorCodeREADONLYSCOPE ErrorCode = "READ_ONLY_SCOPE" ErrorCodeFIELDNOTPERMITTED ErrorCode = "FIELD_NOT_PERMITTED" ErrorCodePROVENANCEREQUIRED ErrorCode = "PROVENANCE_REQUIRED" ErrorCodePROVENANCEDIGITALSOURCETYPEMISSING ErrorCode = "PROVENANCE_DIGITAL_SOURCE_TYPE_MISSING" ErrorCodePROVENANCEDISCLOSUREMISSING ErrorCode = "PROVENANCE_DISCLOSURE_MISSING" ErrorCodePROVENANCEEMBEDDEDMISSING ErrorCode = "PROVENANCE_EMBEDDED_MISSING" ErrorCodePROVENANCEVERIFIERNOTACCEPTED ErrorCode = "PROVENANCE_VERIFIER_NOT_ACCEPTED" ErrorCodePROVENANCECLAIMCONTRADICTED ErrorCode = "PROVENANCE_CLAIM_CONTRADICTED" ErrorCodeEVALUATORAGENTNOTACCEPTED ErrorCode = "EVALUATOR_AGENT_NOT_ACCEPTED" ErrorCodeBILLINGNOTSUPPORTED ErrorCode = "BILLING_NOT_SUPPORTED" ErrorCodeBILLINGNOTPERMITTEDFORAGENT ErrorCode = "BILLING_NOT_PERMITTED_FOR_AGENT" ErrorCodeBILLINGOUTOFBAND ErrorCode = "BILLING_OUT_OF_BAND" ErrorCodePAYMENTTERMSNOTSUPPORTED ErrorCode = "PAYMENT_TERMS_NOT_SUPPORTED" ErrorCodeBRANDREQUIRED ErrorCode = "BRAND_REQUIRED" ErrorCodeAGENTSUSPENDED ErrorCode = "AGENT_SUSPENDED" ErrorCodeAGENTBLOCKED ErrorCode = "AGENT_BLOCKED" ErrorCodeCREDENTIALINARGS ErrorCode = "CREDENTIAL_IN_ARGS" ErrorCodeACTIONNOTALLOWED ErrorCode = "ACTION_NOT_ALLOWED" ErrorCodePRIVATEFIELDINPUBLICPLACEMENT ErrorCode = "PRIVATE_FIELD_IN_PUBLIC_PLACEMENT" ErrorCodeFORMATPROJECTIONFAILED ErrorCode = "FORMAT_PROJECTION_FAILED" ErrorCodeFORMATDECLARATIONDIVERGENT ErrorCode = "FORMAT_DECLARATION_DIVERGENT" ErrorCodeFORMATDECLARATIONV1AMBIGUOUS ErrorCode = "FORMAT_DECLARATION_V1_AMBIGUOUS" ErrorCodeFORMATOPTIONUNRESOLVED ErrorCode = "FORMAT_OPTION_UNRESOLVED" ErrorCodeFORMATDECLARATIONV1LOSSYMULTISIZE ErrorCode = "FORMAT_DECLARATION_V1_LOSSY_MULTI_SIZE" ErrorCodeFORMATNOTSUPPORTED ErrorCode = "FORMAT_NOT_SUPPORTED" ErrorCodePIXELTRACKERLOSSYDOWNGRADE ErrorCode = "PIXEL_TRACKER_LOSSY_DOWNGRADE" ErrorCodePIXELTRACKERUPGRADEINFERRED ErrorCode = "PIXEL_TRACKER_UPGRADE_INFERRED" ErrorCodeSTALERESPONSE ErrorCode = "STALE_RESPONSE" ErrorCodeFEEDFETCHFAILED ErrorCode = "FEED_FETCH_FAILED" ErrorCodeINVALIDFEEDFORMAT ErrorCode = "INVALID_FEED_FORMAT" ErrorCodeITEMVALIDATIONFAILED ErrorCode = "ITEM_VALIDATION_FAILED" ErrorCodeCATALOGLIMITEXCEEDED ErrorCode = "CATALOG_LIMIT_EXCEEDED" )
func KnownErrorCodeValues ¶
func KnownErrorCodeValues() []ErrorCode
KnownErrorCodeValues returns the current schema-defined values for ErrorCode.
func ParseErrorCode ¶
ParseErrorCode returns s as ErrorCode when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ErrorOptions ¶
type ErrorOptions struct {
Message string
Recovery string // "retry", "revise", "contact_support", "terminal"
Field string
Suggestion string
RetryAfter int
Details map[string]any
}
ErrorOptions configures an AdCP error response.
type ErrorScope ¶
type ErrorScope = string
ErrorScope — Shared discriminator vocabulary for `error.details.scope` across
const ( ErrorScopeCapability ErrorScope = "capability" ErrorScopeAccount ErrorScope = "account" ErrorScopeAgent ErrorScope = "agent" )
func KnownErrorScopeValues ¶
func KnownErrorScopeValues() []ErrorScope
KnownErrorScopeValues returns the current schema-defined values for ErrorScope.
func ParseErrorScope ¶
func ParseErrorScope(s string) (ErrorScope, error)
ParseErrorScope returns s as ErrorScope when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type EscalationSeverity ¶
type EscalationSeverity = string
EscalationSeverity — The severity level of a governance escalation.
const ( EscalationSeverityInfo EscalationSeverity = "info" EscalationSeverityWarning EscalationSeverity = "warning" EscalationSeverityCritical EscalationSeverity = "critical" )
func KnownEscalationSeverityValues ¶
func KnownEscalationSeverityValues() []EscalationSeverity
KnownEscalationSeverityValues returns the current schema-defined values for EscalationSeverity.
func ParseEscalationSeverity ¶
func ParseEscalationSeverity(s string) (EscalationSeverity, error)
ParseEscalationSeverity returns s as EscalationSeverity when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Event ¶
type Event struct {
EventID string `json:"event_id"` // Unique identifier for deduplication (scoped to event_type + event_source_id)
EventType EventType `json:"event_type"` // Standard event type
EventTime string `json:"event_time"` // ISO 8601 timestamp when the event occurred
UserMatch *UserMatch `json:"user_match,omitempty"` // User identifiers for attribution matching
CustomData *EventCustomData `json:"custom_data,omitempty"` // Event-specific data (value, currency, items, etc.)
ActionSource ActionSource `json:"action_source,omitempty"` // Where the event originated
Surface *EventSurface `json:"surface,omitempty"` // Optional structured surface context for the event, such as an owned channel
EventSourceURL string `json:"event_source_url,omitempty"` // URL where the event occurred (required when action_source is 'website')
CustomEventName string `json:"custom_event_name,omitempty"` // Name for custom events (used when event_type is 'custom')
Ext any `json:"ext,omitempty"`
}
Event — A marketing event (conversion, engagement, or custom) for attribution and optimization
type EventContentItem ¶
type EventCustomData ¶
type EventCustomData struct {
Value float64 `json:"value,omitempty"` // Monetary value of the event (should be accompanied by currency)
Currency string `json:"currency,omitempty"` // ISO 4217 currency code
OrderID string `json:"order_id,omitempty"` // Unique order or transaction identifier
ContentIDs []string `json:"content_ids,omitempty"` // Item identifiers for catalog attribution. Values are matched against catalog
ContentType string `json:"content_type,omitempty"` // Category of content associated with the event (e.g., 'product', 'job'
ContentName string `json:"content_name,omitempty"` // Name of the product or content
ContentCategory string `json:"content_category,omitempty"` // Category of the product or content
NumItems int `json:"num_items,omitempty"` // Number of items in the event
SearchString string `json:"search_string,omitempty"` // Search query for search events
ProgressPercent float64 `json:"progress_percent,omitempty"` // Content progress percentage reached, primarily for `watch_milestone` events.
ProgressSeconds float64 `json:"progress_seconds,omitempty"` // Content progress duration reached in seconds, primarily for `watch_milestone`
Contents []EventContentItem `json:"contents,omitempty"` // Per-item details for e-commerce events
Ext any `json:"ext,omitempty"`
}
EventCustomData — Event-specific data for attribution and reporting
type EventSourceInput ¶
type EventSourceInput struct {
EventSourceID string `json:"event_source_id"`
}
EventSourceInput is a single event source.
type EventSourceResult ¶
type EventSourceResult struct {
EventSourceID string `json:"event_source_id"`
Action string `json:"action"`
Setup *EventSourceSetup `json:"setup,omitempty"`
}
type EventSourceSetup ¶
type EventSourceSetup struct {
Snippet string `json:"snippet,omitempty"`
Description string `json:"description,omitempty"`
}
EventSourceSetup provides integration instructions for an event source.
type EventSurface ¶
type EventSurface struct {
Category string `json:"category"` // Generic surface category. `owned_property` covers durable creator or
PropertyType string `json:"property_type,omitempty"` // Open vocabulary describing the kind of property, for example `channel`
Namespace string `json:"namespace,omitempty"` // Platform, publisher, or system namespace for the property, such as
PropertyID string `json:"property_id,omitempty"` // Optional identifier for the property within `namespace`.
Ext any `json:"ext,omitempty"`
}
EventSurface — Structured context for the surface where an event source or logged event originated. Use this when
type EventType ¶
type EventType = string
EventType — Standard marketing event types for event logging, aligned with IAB ECAPI
const ( EventTypePageView EventType = "page_view" EventTypeViewContent EventType = "view_content" EventTypeSelectContent EventType = "select_content" EventTypeSelectItem EventType = "select_item" EventTypeSearch EventType = "search" EventTypeAddToCart EventType = "add_to_cart" EventTypeRemoveFromCart EventType = "remove_from_cart" EventTypeViewedCart EventType = "viewed_cart" EventTypeAddToWishlist EventType = "add_to_wishlist" EventTypeInitiateCheckout EventType = "initiate_checkout" EventTypeAddPaymentInfo EventType = "add_payment_info" EventTypePurchase EventType = "purchase" EventTypeRefund EventType = "refund" EventTypeLead EventType = "lead" EventTypeQualifyLead EventType = "qualify_lead" EventTypeCloseConvertLead EventType = "close_convert_lead" EventTypeDisqualifyLead EventType = "disqualify_lead" EventTypeCompleteRegistration EventType = "complete_registration" EventTypeSubscribe EventType = "subscribe" EventTypeFollow EventType = "follow" EventTypeContentView EventType = "content_view" EventTypeWatchMilestone EventType = "watch_milestone" EventTypeStartTrial EventType = "start_trial" EventTypeAppInstall EventType = "app_install" EventTypeAppLaunch EventType = "app_launch" EventTypeContact EventType = "contact" EventTypeSchedule EventType = "schedule" EventTypeDonate EventType = "donate" EventTypeSubmitApplication EventType = "submit_application" EventTypeCustom EventType = "custom" )
func KnownEventTypeValues ¶
func KnownEventTypeValues() []EventType
KnownEventTypeValues returns the current schema-defined values for EventType.
func ParseEventType ¶
ParseEventType returns s as EventType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Exclusivity ¶
type Exclusivity = string
Exclusivity — Whether a product offers exclusive access to its inventory
const ( ExclusivityNone Exclusivity = "none" ExclusivityCategory Exclusivity = "category" ExclusivityExclusive Exclusivity = "exclusive" )
func KnownExclusivityValues ¶
func KnownExclusivityValues() []Exclusivity
KnownExclusivityValues returns the current schema-defined values for Exclusivity.
func ParseExclusivity ¶
func ParseExclusivity(s string) (Exclusivity, error)
ParseExclusivity returns s as Exclusivity when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type FeatureCheckStatus ¶
type FeatureCheckStatus = string
FeatureCheckStatus — Per-feature evaluation outcome in content standards checks. For the
const ( FeatureCheckStatusPassed FeatureCheckStatus = "passed" FeatureCheckStatusFailed FeatureCheckStatus = "failed" FeatureCheckStatusWarning FeatureCheckStatus = "warning" FeatureCheckStatusUnevaluated FeatureCheckStatus = "unevaluated" )
func KnownFeatureCheckStatusValues ¶
func KnownFeatureCheckStatusValues() []FeatureCheckStatus
KnownFeatureCheckStatusValues returns the current schema-defined values for FeatureCheckStatus.
func ParseFeatureCheckStatus ¶
func ParseFeatureCheckStatus(s string) (FeatureCheckStatus, error)
ParseFeatureCheckStatus returns s as FeatureCheckStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type FeatureRange ¶
type FeedFormat ¶
type FeedFormat = string
FeedFormat — Catalog feed formats. Determines how the platform (seller) parses items from
const ( FeedFormatGoogleMerchantCenter FeedFormat = "google_merchant_center" FeedFormatFacebookCatalog FeedFormat = "facebook_catalog" FeedFormatShopify FeedFormat = "shopify" FeedFormatLinkedinJobs FeedFormat = "linkedin_jobs" FeedFormatTiktokShop FeedFormat = "tiktok_shop" FeedFormatPinterestCatalog FeedFormat = "pinterest_catalog" FeedFormatOpenaiProductFeed FeedFormat = "openai_product_feed" FeedFormatCustom FeedFormat = "custom" )
func KnownFeedFormatValues ¶
func KnownFeedFormatValues() []FeedFormat
KnownFeedFormatValues returns the current schema-defined values for FeedFormat.
func ParseFeedFormat ¶
func ParseFeedFormat(s string) (FeedFormat, error)
ParseFeedFormat returns s as FeedFormat when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type FeedbackSource ¶
type FeedbackSource = string
FeedbackSource — Source of performance feedback data
const ( FeedbackSourceBuyerAttribution FeedbackSource = "buyer_attribution" FeedbackSourceThirdPartyMeasurement FeedbackSource = "third_party_measurement" FeedbackSourcePlatformAnalytics FeedbackSource = "platform_analytics" FeedbackSourceVerificationPartner FeedbackSource = "verification_partner" )
func KnownFeedbackSourceValues ¶
func KnownFeedbackSourceValues() []FeedbackSource
KnownFeedbackSourceValues returns the current schema-defined values for FeedbackSource.
func ParseFeedbackSource ¶
func ParseFeedbackSource(s string) (FeedbackSource, error)
ParseFeedbackSource returns s as FeedbackSource when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type FilterExclusionDiagnostic ¶
type FilterExclusionDiagnostic struct {
Count int `json:"count"` // Number of products excluded by this filter, interpreted per the parent
Values []any `json:"values,omitempty"` // Optional list of the specific filter values that contributed to exclusions
Notes string `json:"notes,omitempty"` // Optional human-readable note about why this filter narrowed the set (e.g., 'no
}
type ForcedDirective ¶
type ForcedDirective struct {
Arm string `json:"arm"` // Arm the seller will emit on the next forced operation response.
TaskID string `json:"task_id,omitempty"` // Echo of the registered task_id. Present only when arm is 'submitted' (the arm
}
ForcedDirective — Echo of the registered directive. The next matching operation call from this sandbox account will
type ForcedDirectiveSuccess ¶
type ForcedDirectiveSuccess struct {
Success bool `json:"success"`
Forced ForcedDirective `json:"forced"` // Echo of the registered directive. The next matching operation call from this
Message string `json:"message,omitempty"` // Human-readable acknowledgement.
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ForcedDirectiveSuccess — A forced response-arm directive was registered. The directive shapes the next matching operation
type ForecastMethod ¶
type ForecastMethod = string
ForecastMethod — Method used to produce a delivery forecast
const ( ForecastMethodEstimate ForecastMethod = "estimate" ForecastMethodModeled ForecastMethod = "modeled" ForecastMethodGuaranteed ForecastMethod = "guaranteed" )
func KnownForecastMethodValues ¶
func KnownForecastMethodValues() []ForecastMethod
KnownForecastMethodValues returns the current schema-defined values for ForecastMethod.
func ParseForecastMethod ¶
func ParseForecastMethod(s string) (ForecastMethod, error)
ParseForecastMethod returns s as ForecastMethod when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ForecastPoint ¶
type ForecastPoint struct {
Label string `json:"label,omitempty"` // Human-readable name for this forecast point. Required when forecast_range_unit
Budget *float64 `json:"budget,omitempty"` // Budget amount for this forecast point. Required for spend curves; omit for
ProductID string `json:"product_id,omitempty"` // Optional product context for this forecast row. Usually omitted on
Dimensions []ForecastPointDimension `json:"dimensions,omitempty"` // Dimension constraints represented by this forecast point, such as country
Metrics map[string]ForecastRange `json:"metrics"` // Forecasted metric values. Keys are forecastable-metric enum values for
Viewability *ForecastViewability `json:"viewability,omitempty"` // Forecasted viewability metrics. Mirrors delivery-metrics.viewability, but
VendorMetricValues []ForecastVendorMetricValue `json:"vendor_metric_values,omitempty"` // Forecasted values for vendor-defined metrics that the product's
}
ForecastPoint — A forecast data point. When budget is present, the point pairs a spend level with expected
type ForecastPointDimension ¶
type ForecastPointDimension struct {
Kind string `json:"kind,omitempty"` // Dimension family discriminator.
GeoLevel GeoLevel `json:"geo_level,omitempty"` // Geographic level for this forecast point.
System string `json:"system,omitempty"` // Classification system for metro or postal_area levels. Required when geo_level
Country string `json:"country,omitempty"` // ISO 3166-1 alpha-2 country code. Required for native postal_area rows and
GeoCode string `json:"geo_code,omitempty"` // Geographic code within the level and system. Country: ISO 3166-1 alpha-2
GeoName string `json:"geo_name,omitempty"` // Human-readable geographic name (e.g., 'United States', 'California', 'New York
PlacementRef *PlacementRef `json:"placement_ref,omitempty"` // Structured placement reference for this forecast row. References an entry from
PlacementName string `json:"placement_name,omitempty"` // Human-readable placement name, useful when the buyer has not resolved the
DeviceType DeviceType `json:"device_type,omitempty"` // Device form factor for this forecast row.
DevicePlatform DevicePlatform `json:"device_platform,omitempty"` // Operating system or platform for this forecast row.
AudienceID string `json:"audience_id,omitempty"` // Audience segment identifier for this forecast row.
AudienceSource AudienceSource `json:"audience_source,omitempty"` // Origin of the audience segment.
AudienceName string `json:"audience_name,omitempty"` // Human-readable audience segment name.
SignalRef *SignalRef `json:"signal_ref,omitempty"` // Canonical signal reference for this forecast row. Required when the row needs
SignalID string `json:"signal_id,omitempty"` // Signal identifier shorthand for this forecast row. Use only when the enclosing
SignalValue any `json:"signal_value,omitempty"` // Signal value bucket represented by this point. Use null with presence 'absent'
Presence string `json:"presence,omitempty"` // Whether the signal is present for this point. Use 'absent' for the explicit
SignalName string `json:"signal_name,omitempty"` // Human-readable signal name, useful when the buyer has not resolved the signal
SignalValueName string `json:"signal_value_name,omitempty"` // Human-readable label for the signal value bucket.
}
type ForecastRange ¶
type ForecastRange struct {
Low float64 `json:"low,omitempty"` // Conservative (low-end) forecast value
Mid float64 `json:"mid,omitempty"` // Expected (most likely) forecast value
High float64 `json:"high,omitempty"` // Optimistic (high-end) forecast value
}
ForecastRange — A forecast value with optional confidence bounds. Either mid (point estimate) or both low and high
type ForecastRangeUnit ¶
type ForecastRangeUnit = string
ForecastRangeUnit — Describes how to interpret the points array in a DeliveryForecast — what axis
const ( ForecastRangeUnitSpend ForecastRangeUnit = "spend" ForecastRangeUnitAvailability ForecastRangeUnit = "availability" ForecastRangeUnitReachFreq ForecastRangeUnit = "reach_freq" ForecastRangeUnitWeekly ForecastRangeUnit = "weekly" ForecastRangeUnitDaily ForecastRangeUnit = "daily" ForecastRangeUnitClicks ForecastRangeUnit = "clicks" ForecastRangeUnitConversions ForecastRangeUnit = "conversions" ForecastRangeUnitPackage ForecastRangeUnit = "package" )
func KnownForecastRangeUnitValues ¶
func KnownForecastRangeUnitValues() []ForecastRangeUnit
KnownForecastRangeUnitValues returns the current schema-defined values for ForecastRangeUnit.
func ParseForecastRangeUnit ¶
func ParseForecastRangeUnit(s string) (ForecastRangeUnit, error)
ParseForecastRangeUnit returns s as ForecastRangeUnit when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ForecastVendorMetricValue ¶
type ForecastVendorMetricValue struct {
Vendor BrandReference `json:"vendor"` // Vendor that defines and forecasts this metric. Matches a
MetricID string `json:"metric_id"` // Identifier for the metric within the vendor's vocabulary. Matches a
Value ForecastRange `json:"value"` // Forecasted vendor metric value. Unit semantics are vendor-defined; see unit
Unit string `json:"unit,omitempty"` // Unit of the value. Free-form to accommodate heterogeneous vendor metrics
MeasurableImpressions *ForecastRange `json:"measurable_impressions,omitempty"` // Forecasted number of impressions the vendor expects to be able to measure.
Breakdown map[string]any `json:"breakdown,omitempty"` // Optional structured payload for vendor metrics that do not fit a single
}
ForecastVendorMetricValue — A forecasted value for a vendor-defined metric, emitted on ForecastPoint.vendor_metric_values
type ForecastViewability ¶
type ForecastViewability struct {
Vendor *BrandReference `json:"vendor,omitempty"` // Vendor expected to produce or verify these viewability values.
MeasurableImpressions *ForecastRange `json:"measurable_impressions,omitempty"` // Forecasted impressions where viewability can be measured. Coverage denominator
ViewableImpressions *ForecastRange `json:"viewable_impressions,omitempty"` // Forecasted impressions expected to meet the viewability threshold defined by
ViewableRate *ForecastRange `json:"viewable_rate,omitempty"` // Forecasted viewable impression rate (viewable_impressions /
ViewedSeconds *ForecastRange `json:"viewed_seconds,omitempty"` // Forecasted average in-view duration per measurable impression, in seconds.
Standard ViewabilityStandard `json:"standard,omitempty"` // Viewability measurement standard applied to these forecasted values.
}
ForecastViewability — Forecasted viewability metrics. Mirrors delivery-metrics.viewability, but numeric values are
type ForecastableMetric ¶
type ForecastableMetric = string
ForecastableMetric — Standard delivery, engagement, and availability metric names for forecasts.
const ( ForecastableMetricAudienceSize ForecastableMetric = "audience_size" ForecastableMetricReach ForecastableMetric = "reach" ForecastableMetricFrequency ForecastableMetric = "frequency" ForecastableMetricImpressions ForecastableMetric = "impressions" ForecastableMetricClicks ForecastableMetric = "clicks" ForecastableMetricSpend ForecastableMetric = "spend" ForecastableMetricViews ForecastableMetric = "views" ForecastableMetricCompletedViews ForecastableMetric = "completed_views" ForecastableMetricGrps ForecastableMetric = "grps" ForecastableMetricEngagements ForecastableMetric = "engagements" ForecastableMetricFollows ForecastableMetric = "follows" ForecastableMetricSaves ForecastableMetric = "saves" ForecastableMetricProfileVisits ForecastableMetric = "profile_visits" ForecastableMetricMeasuredImpressions ForecastableMetric = "measured_impressions" ForecastableMetricDownloads ForecastableMetric = "downloads" ForecastableMetricPlays ForecastableMetric = "plays" ForecastableMetricCoverageRate ForecastableMetric = "coverage_rate" )
func KnownForecastableMetricValues ¶
func KnownForecastableMetricValues() []ForecastableMetric
KnownForecastableMetricValues returns the current schema-defined values for ForecastableMetric.
func ParseForecastableMetric ¶
func ParseForecastableMetric(s string) (ForecastableMetric, error)
ParseForecastableMetric returns s as ForecastableMetric when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type FormatIDParameter ¶
type FormatIDParameter = string
FormatIDParameter — Types of parameters that template formats accept in format_id objects to
const ( FormatIDParameterDimensions FormatIDParameter = "dimensions" FormatIDParameterDuration FormatIDParameter = "duration" )
func KnownFormatIDParameterValues ¶
func KnownFormatIDParameterValues() []FormatIDParameter
KnownFormatIDParameterValues returns the current schema-defined values for FormatIDParameter.
func ParseFormatIDParameter ¶
func ParseFormatIDParameter(s string) (FormatIDParameter, error)
ParseFormatIDParameter returns s as FormatIDParameter when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type FormatOptionRef ¶
type FormatOptionRef struct {
Scope string `json:"scope,omitempty"` // Reference resolves only against the target product's inline `format_options[]`.
FormatOptionID string `json:"format_option_id,omitempty"` // Stable format option ID from the target product's inline `format_options[]`.
}
FormatOptionRef — Discriminated reference to a product format option. The global canonical shape is still named by
type FormatRef ¶
type FormatRef struct {
AgentURL string `json:"agent_url"` // URL of the agent that defines this format (e.g.
ID string `json:"id"` // Format identifier within the agent's namespace (e.g., 'display_static'
Width int `json:"width,omitempty"` // Width in pixels for visual formats. When specified, height must also be
Height int `json:"height,omitempty"` // Height in pixels for visual formats. When specified, width must also be
DurationMs float64 `json:"duration_ms,omitempty"` // Duration in milliseconds for time-based formats (video, audio). When
}
FormatRef — A JSON object — never a plain string — that identifies a creative format by its declaring agent
type FrameRateType ¶
type FrameRateType = string
FrameRateType — Whether the video uses a constant or variable frame rate. Broadcast and SSAI
const ( FrameRateTypeConstant FrameRateType = "constant" FrameRateTypeVariable FrameRateType = "variable" )
func KnownFrameRateTypeValues ¶
func KnownFrameRateTypeValues() []FrameRateType
KnownFrameRateTypeValues returns the current schema-defined values for FrameRateType.
func ParseFrameRateType ¶
func ParseFrameRateType(s string) (FrameRateType, error)
ParseFrameRateType returns s as FrameRateType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type FrequencyCap ¶
type FrequencyCap struct {
Suppress *Duration `json:"suppress,omitempty"` // Cooldown period between consecutive exposures to the same entity. Prevents
SuppressMinutes float64 `json:"suppress_minutes,omitempty"` // Deprecated — use suppress instead. Cooldown period in minutes between
MaxImpressions int `json:"max_impressions,omitempty"` // Maximum number of impressions per entity per window. For duration windows
Per *ReachUnit `json:"per,omitempty"` // Entity granularity for impression counting. Required when max_impressions is
Window *Duration `json:"window,omitempty"` // Time window for the max_impressions cap (e.g. {"interval": 7, "unit": "days"}
}
FrequencyCap — Frequency capping settings for package-level application. Two types of frequency control can be
type FrequencyCapScope ¶
type FrequencyCapScope = string
FrequencyCapScope — Scope for frequency cap application
const (
FrequencyCapScopePackage FrequencyCapScope = "package"
)
func KnownFrequencyCapScopeValues ¶
func KnownFrequencyCapScopeValues() []FrequencyCapScope
KnownFrequencyCapScopeValues returns the current schema-defined values for FrequencyCapScope.
func ParseFrequencyCapScope ¶
func ParseFrequencyCapScope(s string) (FrequencyCapScope, error)
ParseFrequencyCapScope returns s as FrequencyCapScope when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type FrequencyCappingCaps ¶
type GenreTaxonomy ¶
type GenreTaxonomy = string
GenreTaxonomy — Taxonomy systems for genre classification. When declared, genre values should
const ( GenreTaxonomyIabContent30 GenreTaxonomy = "iab_content_3.0" GenreTaxonomyIabContent22 GenreTaxonomy = "iab_content_2.2" GenreTaxonomyGracenote GenreTaxonomy = "gracenote" GenreTaxonomyEidr GenreTaxonomy = "eidr" GenreTaxonomyAppleGenres GenreTaxonomy = "apple_genres" GenreTaxonomyGoogleGenres GenreTaxonomy = "google_genres" GenreTaxonomyRoku GenreTaxonomy = "roku" GenreTaxonomyAmazonGenres GenreTaxonomy = "amazon_genres" GenreTaxonomyCustom GenreTaxonomy = "custom" )
func KnownGenreTaxonomyValues ¶
func KnownGenreTaxonomyValues() []GenreTaxonomy
KnownGenreTaxonomyValues returns the current schema-defined values for GenreTaxonomy.
func ParseGenreTaxonomy ¶
func ParseGenreTaxonomy(s string) (GenreTaxonomy, error)
ParseGenreTaxonomy returns s as GenreTaxonomy when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type GeoBreakdownSupport ¶
type GeoBreakdownSupport struct {
Country *bool `json:"country,omitempty"` // Supports country-level geo breakdown (ISO 3166-1 alpha-2)
Region *bool `json:"region,omitempty"` // Supports region/state-level geo breakdown (ISO 3166-2)
Metro map[string]bool `json:"metro,omitempty"` // Metro area breakdown support. Keys are metro-system enum values; true means
PostalArea any `json:"postal_area,omitempty"` // Postal area breakdown support. Prefer the native country-keyed map where each
}
GeoBreakdownSupport — Declares which geographic levels and classification systems are available for by_geo reporting
type GeoLevel ¶
type GeoLevel = string
GeoLevel — Geographic targeting granularity levels. Some levels (metro, postal_area)
func KnownGeoLevelValues ¶
func KnownGeoLevelValues() []GeoLevel
KnownGeoLevelValues returns the current schema-defined values for GeoLevel.
func ParseGeoLevel ¶
ParseGeoLevel returns s as GeoLevel when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type GeoMetroTarget ¶
type GeoMetroTarget struct {
System MetroSystem `json:"system"` // Metro area classification system (e.g., 'nielsen_dma', 'uk_itl2')
Values []string `json:"values"` // Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
}
type GeoMetrosCaps ¶
type GeoPostalAreaTarget ¶
type GeoPostalAreaTarget struct {
Country string `json:"country,omitempty"` // ISO 3166-1 alpha-2 country code for the postal values.
System LegacyPostalSystem `json:"system,omitempty"` // Deprecated country-fused postal code system (e.g., 'us_zip', 'gb_outward').
Values []string `json:"values,omitempty"` // Postal codes within the legacy system.
}
type GeoPostalAreasCaps ¶
type GeoPostalAreasCaps struct {
// Native support keyed by ISO 3166-1 alpha-2 country, each listing the
// country-local postal systems the seller honors.
US []string `json:"US,omitempty"`
GB []string `json:"GB,omitempty"`
CA []string `json:"CA,omitempty"`
DE []string `json:"DE,omitempty"`
CH []string `json:"CH,omitempty"`
AT []string `json:"AT,omitempty"`
FR []string `json:"FR,omitempty"`
AU []string `json:"AU,omitempty"`
BR []string `json:"BR,omitempty"`
IN []string `json:"IN,omitempty"`
ZA []string `json:"ZA,omitempty"`
// Deprecated country-fused boolean aliases retained for migration.
USZip *bool `json:"us_zip,omitempty"`
USZipPlusFour *bool `json:"us_zip_plus_four,omitempty"`
GBOutward *bool `json:"gb_outward,omitempty"`
GBFull *bool `json:"gb_full,omitempty"`
CAFSA *bool `json:"ca_fsa,omitempty"`
CAFull *bool `json:"ca_full,omitempty"`
DEPLZ *bool `json:"de_plz,omitempty"`
FRCodePostal *bool `json:"fr_code_postal,omitempty"`
AUPostcode *bool `json:"au_postcode,omitempty"`
CHPLZ *bool `json:"ch_plz,omitempty"`
ATPLZ *bool `json:"at_plz,omitempty"`
}
type GeoProximityCaps ¶
type GeoProximityGeometry ¶
type GeoProximityGeometry struct {
Type string `json:"type"` // GeoJSON geometry type.
Coordinates []any `json:"coordinates"` // GeoJSON coordinates array. For Polygon: array of linear rings. For
}
GeoProximityGeometry — Pre-computed GeoJSON geometry defining the proximity boundary. Use when the buyer has already
type GeoProximityRadius ¶
type GeoProximityRadius struct {
Value float64 `json:"value"` // Radius distance.
Unit DistanceUnit `json:"unit"` // Distance unit.
}
GeoProximityRadius — Simple radius from the point. The platform draws a circle of this distance around the coordinates.
type GeoProximityTarget ¶
type GeoProximityTarget struct {
Lat *float64 `json:"lat,omitempty"` // Latitude in decimal degrees (WGS 84). Required for travel_time and radius
Lng *float64 `json:"lng,omitempty"` // Longitude in decimal degrees (WGS 84). Required for travel_time and radius
Label string `json:"label,omitempty"` // Human-readable label for this entry (e.g., 'Düsseldorf', 'Heathrow Airport'
TravelTime *GeoProximityTravelTime `json:"travel_time,omitempty"` // Travel time limit for isochrone calculation. The platform resolves this to a
TransportMode TransportMode `json:"transport_mode,omitempty"` // Transportation mode for isochrone calculation. Required when travel_time is
Radius *GeoProximityRadius `json:"radius,omitempty"` // Simple radius from the point. The platform draws a circle of this distance
Geometry *GeoProximityGeometry `json:"geometry,omitempty"` // Pre-computed GeoJSON geometry defining the proximity boundary. Use when the
Ext any `json:"ext,omitempty"`
}
type GeoProximityTravelTime ¶
type GeoProximityTravelTime struct {
Value float64 `json:"value"` // Travel time limit.
Unit TravelTimeUnit `json:"unit"`
}
GeoProximityTravelTime — Travel time limit for isochrone calculation. The platform resolves this to a geographic boundary
type GetAdcpCapabilitiesRequest ¶
type GetAdcpCapabilitiesRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Protocols []string `json:"protocols,omitempty"` // Specific protocols to query capabilities for. If omitted, returns capabilities
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
GetAdcpCapabilitiesRequest — Request payload for get_adcp_capabilities task. Protocol-level capability discovery that works
type GetAdcpCapabilitiesResponse ¶
type GetAdcpCapabilitiesResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"`
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
Adcp ADCPVersion `json:"adcp"` // Core AdCP protocol information
SupportedProtocols []string `json:"supported_protocols"` // AdCP protocols this agent supports.
Account *AccountCapabilities `json:"account,omitempty"` // Account management capabilities. Describes how accounts are established, what
MediaBuy *MediaBuyCapabilities `json:"media_buy,omitempty"` // Media-buy protocol capabilities. Expected when media_buy is in
Signals *SignalsCapabilities `json:"signals,omitempty"` // Signals protocol capabilities. Only present if signals is in
Governance *GovernanceCapabilities `json:"governance,omitempty"` // Governance protocol capabilities. Only present if governance is in
SponsoredIntelligence *SICapabilities `json:"sponsored_intelligence,omitempty"` // Sponsored Intelligence protocol capabilities. Only present if
Brand *BrandCapabilities `json:"brand,omitempty"` // Brand protocol capabilities. Only present if brand is in supported_protocols.
Creative *CreativeCapabilities `json:"creative,omitempty"` // Creative protocol capabilities. Only present if creative is in
RequestSigning *RequestSigningCapabilities `json:"request_signing,omitempty"` // RFC 9421 HTTP Signatures support for incoming requests. Optional in 3.0 —
WebhookSigning *WebhookSigningCapabilities `json:"webhook_signing,omitempty"` // RFC 9421 webhook-signature support for outbound webhook callbacks (top-level
Identity *IdentityCapabilities `json:"identity,omitempty"` // Operator identity posture — trust-root pointer (`brand_json_url`) plus
Measurement any `json:"measurement,omitempty"` // Experimental measurement capability block. Presence indicates this agent
ComplianceTesting *ComplianceTestingCapabilities `json:"compliance_testing,omitempty"` // Compliance testing capabilities. The presence of this block declares that the
Specialisms []Specialism `json:"specialisms,omitempty"` // Optional — specialized compliance claims this agent supports. Values MUST be
ExtensionsSupported []string `json:"extensions_supported,omitempty"` // Extension namespaces this agent supports. Buyers can expect meaningful data in
ExperimentalFeatures []string `json:"experimental_features,omitempty"` // Experimental AdCP surfaces this agent implements. A surface is experimental
WholesaleFeedVersioning *CapabilitiesWholesaleFeedVersioning `json:"wholesale_feed_versioning,omitempty"` // Conditional-fetch token capabilities for get_products and get_signals.
LastUpdated string `json:"last_updated,omitempty"` // ISO 8601 timestamp of when capabilities were last updated. Buyers can use this
Errors []AdcpError `json:"errors,omitempty"` // Task-specific errors and warnings
Ext any `json:"ext,omitempty"`
WholesaleFeedWebhooks *CapabilitiesWholesaleFeedWebhooks `json:"wholesale_feed_webhooks,omitempty"` // Per-agent wholesale product-feed and wholesale signals-feed webhook
}
GetAdcpCapabilitiesResponse — Response payload for get_adcp_capabilities task. Protocol-level capability discovery across all
type GetCollectionListRequest ¶
type GetCollectionListRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ListID string `json:"list_id"` // ID of the collection list to retrieve
Account *AccountReference `json:"account,omitempty"` // Account that owns the list. Required when the authenticated agent has access
Resolve *bool `json:"resolve,omitempty"` // Whether to apply filters and return resolved collections (default: true)
Pagination *CollectionRequestPagination `json:"pagination,omitempty"` // Pagination parameters. Uses higher limits than standard pagination because
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
GetCollectionListRequest — Request parameters for retrieving a collection list with resolved collections
type GetCollectionListResult ¶
type GetCollectionListResult struct {
List *CollectionList
Collections []ResolvedCollection
Pagination *PaginationResponse
}
GetCollectionListResult is the return type for Config.GetCollectionList.
type GetMediaBuyDeliveryRequest ¶
type GetMediaBuyDeliveryRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Account *AccountReference `json:"account,omitempty"` // Filter delivery data to a specific account. When omitted, returns data across
MediaBuyIDs []string `json:"media_buy_ids,omitempty"` // Array of media buy IDs to get delivery data for
StatusFilter *MediaBuyStatusFilter `json:"status_filter,omitempty"` // Filter by status. Can be a single status or array of statuses
StartDate string `json:"start_date,omitempty"` // Start date for reporting period (YYYY-MM-DD). When omitted along with
EndDate string `json:"end_date,omitempty"` // End date for reporting period (YYYY-MM-DD). When omitted along with
IncludePackageDailyBreakdown *bool `json:"include_package_daily_breakdown,omitempty"` // When true, include daily_breakdown arrays within each package in by_package.
TimeGranularity ReportingFrequency `json:"time_granularity,omitempty"` // Per-window slice granularity for the pull, using the same vocabulary as
IncludeWindowBreakdown *bool `json:"include_window_breakdown,omitempty"` // When true, the response includes media_buy_deliveries[].windows[] — an array
AttributionWindow *DeliveryAttributionWindow `json:"attribution_window,omitempty"` // Attribution window to apply for conversion metrics. When provided, the seller
ReportingDimensions *DeliveryReportingDimensions `json:"reporting_dimensions,omitempty"` // Request dimensional breakdowns in delivery reporting. Each key enables a
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
GetMediaBuyDeliveryRequest — Request parameters for retrieving comprehensive delivery metrics
type GetMediaBuyDeliveryResponse ¶
type GetMediaBuyDeliveryResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"`
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
NotificationType string `json:"notification_type,omitempty"` // Type of webhook notification (only present in webhook deliveries): scheduled =
PartialData *bool `json:"partial_data,omitempty"` // Indicates if any media buys in this webhook have missing/delayed data (only
SequenceNumber int `json:"sequence_number,omitempty"` // Sequential notification number (only present in webhook deliveries, starts at 1)
NextExpectedAt string `json:"next_expected_at,omitempty"` // ISO 8601 timestamp for next expected notification (only present in webhook
ReportingPeriod ReportingPeriod `json:"reporting_period"` // Date range for the report. All periods use UTC timezone.
Currency string `json:"currency"` // ISO 4217 currency code
AttributionWindow *AttributionWindow `json:"attribution_window,omitempty"` // Attribution methodology and lookback windows used for conversion metrics in
AggregatedTotals *DeliveryAggregatedTotals `json:"aggregated_totals,omitempty"` // Combined metrics across all returned media buys. Only included in API
MediaBuyDeliveries []MediaBuyDelivery `json:"media_buy_deliveries"` // Array of delivery data for media buys. When used in webhook notifications, may
Errors []AdcpError `json:"errors,omitempty"` // Task-specific errors and warnings (e.g., missing delivery data, reporting
Sandbox *bool `json:"sandbox,omitempty"` // When true, this response contains simulated data from sandbox mode.
Ext any `json:"ext,omitempty"`
}
GetMediaBuyDeliveryResponse — Response payload for get_media_buy_delivery task
type GetMediaBuysRequest ¶
type GetMediaBuysRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Account *AccountReference `json:"account,omitempty"` // Account to retrieve media buys for. When omitted, returns data across all
MediaBuyIDs []string `json:"media_buy_ids,omitempty"` // Array of media buy IDs to retrieve. When omitted, returns a paginated set of
StatusFilter *MediaBuyStatusFilter `json:"status_filter,omitempty"` // Filter by status. Can be a single status or array of statuses. Defaults to
IncludeSnapshot *bool `json:"include_snapshot,omitempty"` // When true, include a near-real-time delivery snapshot for each package.
IncludeHistory int `json:"include_history,omitempty"` // When present, include the last N revision history entries for each media buy
IncludeWebhookActivity *bool `json:"include_webhook_activity,omitempty"` // When true, each returned media buy includes a `webhook_activity` array
WebhookActivityLimit int `json:"webhook_activity_limit,omitempty"` // Maximum number of webhook delivery records to return per media buy, ordered
Pagination *PaginationRequest `json:"pagination,omitempty"` // Cursor-based pagination controls. Strongly recommended when querying broad
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
GetMediaBuysRequest — Request parameters for retrieving media buy status, creative approval state, and optional delivery
type GetMediaBuysResponse ¶
type GetMediaBuysResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"`
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
MediaBuys []MediaBuyData `json:"media_buys"` // Array of media buys with status, creative approval state, and optional
Errors []AdcpError `json:"errors,omitempty"` // Task-specific errors (e.g., media buy not found)
Pagination *PaginationResponse `json:"pagination,omitempty"` // Pagination metadata for the media_buys array.
Sandbox *bool `json:"sandbox,omitempty"` // When true, this response contains simulated data from sandbox mode.
Ext any `json:"ext,omitempty"`
}
GetMediaBuysResponse — Response payload for get_media_buys task. Returns media buy configuration, creative approval
type GetPlanAuditLogsRequest ¶
type GetPlanAuditLogsRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
PlanIDs []string `json:"plan_ids,omitempty"` // Plan IDs to retrieve. For a single plan, pass a one-element array. Plans
PortfolioPlanIDs []string `json:"portfolio_plan_ids,omitempty"` // Portfolio plan IDs. The governance agent expands each to its member_plan_ids
GovernanceContexts []string `json:"governance_contexts,omitempty"` // Filter audit entries by governance context. Returns only checks and outcomes
PurchaseTypes []PurchaseType `json:"purchase_types,omitempty"` // Filter audit entries by purchase type. Returns only checks and outcomes
IncludeEntries *bool `json:"include_entries,omitempty"` // Include the full audit trail. Default: false.
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
GetPlanAuditLogsRequest — Retrieve governance state and audit trail for one or more plans.
type GetPlanAuditLogsResponse ¶
type GetPlanAuditLogsResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"`
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
Plans []PlanAuditLog `json:"plans"` // Audit data for each requested plan.
Ext any `json:"ext,omitempty"`
}
GetPlanAuditLogsResponse — Governance state and audit trail for one or more plans.
type GetProductsFilterDiagnostics ¶
type GetProductsFilterDiagnostics struct {
Semantics string `json:"semantics,omitempty"` // How `excluded_by[*].count` values are computed across multiple filters.
TotalCandidates int `json:"total_candidates,omitempty"` // Number of products the seller considered before applying `filters`. Baseline
ExcludedBy map[string]FilterExclusionDiagnostic `json:"excluded_by,omitempty"` // Per-filter exclusion counts, keyed by the filter property name as it appears
}
GetProductsFilterDiagnostics — Optional non-fatal diagnostic block describing how the request's `filters` narrowed the candidate
type GetProductsIncompleteItem ¶
type GetProductsIncompleteItem struct {
Scope string `json:"scope"` // 'products': not all inventory sources were searched. 'pricing': products
Description string `json:"description"` // Human-readable explanation of what is missing and why.
EstimatedWait *Duration `json:"estimated_wait,omitempty"` // How much additional time would resolve this scope. Allows the buyer to decide
}
type GetProductsRefineItem ¶
type GetProductsRefineItem struct {
Scope string `json:"scope,omitempty"` // Change scoped to a specific proposal.
Ask string `json:"ask,omitempty"` // What the buyer is asking for on this proposal (e.g., 'shift more budget toward
ProductID string `json:"product_id,omitempty"` // Product ID from a previous get_products response.
Action string `json:"action,omitempty"` // 'include' (default): return this proposal with updated allocations and
ProposalID string `json:"proposal_id,omitempty"` // Proposal ID from a previous get_products response.
}
type GetProductsRefinementAppliedItem ¶
type GetProductsRefinementAppliedItem struct {
Scope string `json:"scope,omitempty"` // Echoes scope 'proposal' from the corresponding refine entry.
Status string `json:"status,omitempty"` // 'applied': the ask was fulfilled. 'partial': the ask was partially fulfilled —
Notes string `json:"notes,omitempty"` // Seller explanation of what was done, what couldn't be done, or why.
ProductID string `json:"product_id,omitempty"` // Echoes product_id from the corresponding refine entry.
ProposalID string `json:"proposal_id,omitempty"` // Echoes proposal_id from the corresponding refine entry.
}
type GetProductsRequest ¶
type GetProductsRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
BuyingMode string `json:"buying_mode"` // Declares buyer intent for this request. 'brief': publisher curates product
Brief string `json:"brief,omitempty"` // Natural language description of campaign requirements. Required when
Refine []GetProductsRefineItem `json:"refine,omitempty"` // Array of change requests for iterating on products and proposals from a
Brand *BrandReference `json:"brand,omitempty"` // Brand reference for product discovery context. Resolved to full brand identity
Catalog *Catalog `json:"catalog,omitempty"` // Catalog of items the buyer wants to promote. The seller matches catalog items
Account *AccountReference `json:"account,omitempty"` // Account for product lookup. Returns products with pricing specific to this
PreferredDeliveryTypes []DeliveryType `json:"preferred_delivery_types,omitempty"` // Delivery types the buyer prefers, in priority order. Unlike
Filters *ProductFilters `json:"filters,omitempty"`
PropertyList *PropertyListRef `json:"property_list,omitempty"` // [AdCP 3.0] Reference to an externally managed property list. When provided
Fields []string `json:"fields,omitempty"` // Specific product fields to include in the response. When omitted, all fields
TimeBudget *Duration `json:"time_budget,omitempty"` // Maximum time the buyer will commit to this request. The seller returns the
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Optional webhook configuration for async terminal completion/failure
Pagination *PaginationRequest `json:"pagination,omitempty"` // Cursor-based pagination controls for get_products. Valid in all buying modes.
IfWholesaleFeedVersion string `json:"if_wholesale_feed_version,omitempty"` // Opaque wholesale_feed_version token returned by a prior wholesale-mode
IfPricingVersion string `json:"if_pricing_version,omitempty"` // Opaque pricing_version token from a prior get_products response. MUST only be
Context any `json:"context,omitempty"`
RequiredPolicies []string `json:"required_policies,omitempty"` // Registry policy IDs that the buyer requires to be enforced for products in
Ext any `json:"ext,omitempty"`
}
GetProductsRequest — Request parameters for discovering or refining advertising products. buying_mode declares the
type GetProductsResponse ¶
type GetProductsResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"`
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
Products []Product `json:"products,omitempty"` // Array of matching products
Extensions map[string]any `json:"extensions,omitempty"` // Bundled platform-extension definitions referenced by any product in
Proposals []Proposal `json:"proposals,omitempty"` // Optional array of proposed media plans with budget allocations across
Errors []AdcpError `json:"errors,omitempty"` // Task-specific errors and warnings (e.g., product filtering issues)
PropertyListApplied *bool `json:"property_list_applied,omitempty"` // [AdCP 3.0] Indicates whether property_list filtering was applied. True if the
CatalogApplied *bool `json:"catalog_applied,omitempty"` // Whether the seller filtered results based on the provided catalog. True if the
RefinementApplied []GetProductsRefinementAppliedItem `json:"refinement_applied,omitempty"` // Seller's response to each change request in the refine array, matched by
Incomplete []GetProductsIncompleteItem `json:"incomplete,omitempty"` // Declares what the seller could not finish within the buyer's time_budget or
FilterDiagnostics *GetProductsFilterDiagnostics `json:"filter_diagnostics,omitempty"` // Optional non-fatal diagnostic block describing how the request's `filters`
Pagination *PaginationResponse `json:"pagination,omitempty"` // Cursor metadata for paginated get_products responses. In brief/refine mode
WholesaleFeedVersion string `json:"wholesale_feed_version,omitempty"` // Opaque token representing the version of the wholesale product feed state used
PricingVersion string `json:"pricing_version,omitempty"` // Opaque token representing the version of the pricing layer, including product
CacheScope string `json:"cache_scope,omitempty"` // Declares whether the wholesale_feed_version and pricing_version on this
Unchanged *bool `json:"unchanged,omitempty"` // Present and `true` ONLY on wholesale-mode responses when the request carried
Sandbox *bool `json:"sandbox,omitempty"` // When true, this response contains simulated data from sandbox mode.
Ext any `json:"ext,omitempty"`
}
GetProductsResponse — Response payload for get_products task
type GetSignalsIncompleteItem ¶
type GetSignalsIncompleteItem struct {
Scope string `json:"scope"` // 'signals': not all matching signals were returned. 'pricing': signals returned
Description string `json:"description"` // Human-readable explanation of what is missing and why.
EstimatedWait *Duration `json:"estimated_wait,omitempty"` // How much additional time would resolve this scope. Allows the caller to decide
}
type GetSignalsRequest ¶
type GetSignalsRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
DiscoveryMode string `json:"discovery_mode,omitempty"` // Declares caller intent for this request. 'brief' (default): semantic discovery
Account *AccountReference `json:"account,omitempty"` // Account for this request. When provided, the signals agent returns per-account
SignalSpec string `json:"signal_spec,omitempty"` // Natural language description of the desired signals. When used alone, enables
SignalRefs []SignalRef `json:"signal_refs,omitempty"` // Specific signals to look up by reference. Returns exact matches for the
// Deprecated: DEPRECATED.
SignalIDs []SignalID `json:"signal_ids,omitempty"` // DEPRECATED. Use signal_refs instead. Legacy exact lookup field using SignalId
Destinations []Destination `json:"destinations,omitempty"` // Filter signals to those activatable on specific agents/platforms. When
Countries []string `json:"countries,omitempty"` // Countries where signals will be used (ISO 3166-1 alpha-2 codes). When omitted
Filters *SignalFilters `json:"filters,omitempty"`
Fields []string `json:"fields,omitempty"` // Specific signal fields to include in the response, aligned with
// Deprecated: Use pagination.max_results instead.
MaxResults int `json:"max_results,omitempty"` // DEPRECATED: Use pagination.max_results instead. When both fields are present
Pagination *PaginationRequest `json:"pagination,omitempty"` // Pagination parameters. Use pagination.max_results (max: 100, default: 50) and
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Optional webhook configuration for async terminal completion/failure
IfWholesaleFeedVersion string `json:"if_wholesale_feed_version,omitempty"` // Opaque wholesale_feed_version token returned by a prior wholesale-mode
IfPricingVersion string `json:"if_pricing_version,omitempty"` // Opaque pricing_version token from a prior get_signals response. MUST only be
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
GetSignalsRequest — Request parameters for discovering and refining signals. Use signal_spec for natural language
type GetSignalsResponse ¶
type GetSignalsResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"`
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
Signals []GetSignalsResponseSignal `json:"signals,omitempty"` // Array of matching signals
Errors []AdcpError `json:"errors,omitempty"` // Task-specific errors and warnings (e.g., signal discovery or pricing issues)
Incomplete []GetSignalsIncompleteItem `json:"incomplete,omitempty"` // Declares what the agent could not finish within the caller's time_budget or
WholesaleFeedVersion string `json:"wholesale_feed_version,omitempty"` // Opaque token representing the version of the wholesale signals feed state used
PricingVersion string `json:"pricing_version,omitempty"` // Opaque token representing the version of the pricing layer. When the agent
CacheScope string `json:"cache_scope,omitempty"` // Declares whether the wholesale_feed_version and pricing_version on this
Unchanged *bool `json:"unchanged,omitempty"` // Present and `true` ONLY on wholesale-mode responses when the request carried
Pagination *PaginationResponse `json:"pagination,omitempty"`
Sandbox *bool `json:"sandbox,omitempty"` // When true, this response contains simulated data from sandbox mode.
Ext any `json:"ext,omitempty"`
}
GetSignalsResponse — Response payload for get_signals task
type GetSignalsResponseSignal ¶
type GetSignalsResponseSignal struct {
SignalRef *SignalRef `json:"signal_ref,omitempty"` // Canonical signal reference for discovery, activation, and media-buy targeting.
// Deprecated: DEPRECATED.
SignalID *SignalID `json:"signal_id,omitempty"` // DEPRECATED. Use signal_ref instead. Legacy SignalId retained for compatibility
Name string `json:"name"` // Human-readable signal name
Description string `json:"description"` // Detailed signal description
MethodologyURL string `json:"methodology_url,omitempty"` // Optional link to published methodology, media-kit, or data documentation. For
LastUpdated string `json:"last_updated,omitempty"` // When this definition record was last updated. This indicates freshness of the
ValueType SignalValueType `json:"value_type,omitempty"` // The data type of this signal's values (binary, categorical, numeric)
Categories []string `json:"categories,omitempty"` // Valid values for categorical signals. Present when value_type is
Range *SignalRange `json:"range,omitempty"` // Valid range for numeric signals. Present when value_type is 'numeric'.
RestrictedAttributes []RestrictedAttribute `json:"restricted_attributes,omitempty"` // Restricted attribute categories this signal touches.
PolicyCategories []string `json:"policy_categories,omitempty"` // Policy categories this signal is sensitive for.
Taxonomy *SignalTaxonomy `json:"taxonomy,omitempty"` // Optional taxonomy metadata describing what this signal means in an external
SegmentationCriteria string `json:"segmentation_criteria,omitempty"` // Rules governing inclusion of identifiers in the segment. Aligns with IAB Data
CriteriaURL string `json:"criteria_url,omitempty"` // Optional URL to a longer-form methodology or criteria document. This is a
DataSources []string `json:"data_sources,omitempty"` // Origin categories of the raw data used to compile the signal, aligned with IAB
Methodology string `json:"methodology,omitempty"` // How the signal's audience membership or attribute was determined. 'modeled'
AudienceExpansion *bool `json:"audience_expansion,omitempty"` // Whether look-alike or similar-audience expansion was used to include
DeviceExpansion *bool `json:"device_expansion,omitempty"` // Whether the signal was expanded deterministically across devices of the same
RefreshCadence string `json:"refresh_cadence,omitempty"` // Cadence at which the signal definition's underlying segment membership is
LookbackWindow string `json:"lookback_window,omitempty"` // Time window in which a qualifying event can occur for inclusion.
Onboarder *SignalOnboarder `json:"onboarder,omitempty"` // Onboarder disclosure. Required when data_sources includes an offline_* or
Countries []string `json:"countries,omitempty"` // ISO 3166-1 alpha-2 country codes where the signal is applicable. Sellers must
ConsentBasis []ConsentBasis `json:"consent_basis,omitempty"` // Data provider's declared GDPR Article 6 lawful basis or consent basis for the
Art9Basis string `json:"art9_basis,omitempty"` // Data provider's declared GDPR Article 9 basis for the underlying signal
Modeling *SignalModeling `json:"modeling,omitempty"` // Modeling disclosure for modeled data signals. Required when methodology is
DataSubjectRights *SignalDataSubjectRights `json:"data_subject_rights,omitempty"` // Per-signal data-subject-rights routing. This is a contact/routing reference
DtsCompliantVersion string `json:"dts_compliant_version,omitempty"` // IAB Data Transparency Standard version this signal definition self-attests as
SignalAgentSegmentID string `json:"signal_agent_segment_id"` // Opaque resolved-segment handle issued by this signal source. Pass this string
SignalType SignalCatalogType `json:"signal_type"` // Commercial/provenance type of signal (marketplace, custom, owned)
DataProvider string `json:"data_provider,omitempty"` // Human-readable source name for the signal, when applicable. For
// Deprecated: DEPRECATED for detailed planning.
CoveragePercentage float64 `json:"coverage_percentage,omitempty"` // DEPRECATED for detailed planning. Optional legacy scalar percentage of
CoverageForecast *SignalCoverageForecast `json:"coverage_forecast,omitempty"` // Optional forecast-shaped signal availability guidance. When present, this is
Deployments []Deployment `json:"deployments"` // Array of deployment targets
PricingOptions []VendorPricingOption `json:"pricing_options,omitempty"` // Pricing options available for this signal when it has an incremental price.
}
GetSignalsResponseSignal — GetSignals response row with listing identity, enrichment, activation, and pricing fields.
type GopType ¶
type GopType = string
GopType — Group of Pictures structure. SSAI and broadcast require closed GOPs for clean
func KnownGopTypeValues ¶
func KnownGopTypeValues() []GopType
KnownGopTypeValues returns the current schema-defined values for GopType.
func ParseGopType ¶
ParseGopType returns s as GopType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type GovernanceAccount ¶
type GovernanceAccount struct {
Brand *BrandReference `json:"brand,omitempty"`
Operator string `json:"operator,omitempty"`
}
type GovernanceAccountInput ¶
type GovernanceAccountInput struct {
Account *GovernanceAccount `json:"account,omitempty"`
Brand *BrandReference `json:"brand,omitempty"`
Operator string `json:"operator,omitempty"`
GovernanceAgents []GovernanceAgent `json:"governance_agents,omitempty"`
}
GovernanceAccountInput is a single account in a sync_governance request.
type GovernanceAgent ¶
type GovernanceAudienceDistribution ¶
type GovernanceAudienceDistribution struct {
Baseline string `json:"baseline"` // Population baseline used for index calculation. 'census': national census or
BaselineDescription string `json:"baseline_description,omitempty"` // Description of the baseline when baseline is 'custom' (e.g., 'US adults 18+
Indices map[string]float64 `json:"indices"` // Audience index values for the current reporting period. Keys are
CumulativeIndices map[string]float64 `json:"cumulative_indices,omitempty"` // Cumulative audience index values since the governed action started. Same key
}
GovernanceAudienceDistribution — Actual audience composition during the reporting period. Enables mid-flight drift detection when
type GovernanceCapabilities ¶
type GovernanceCapabilities struct {
PropertyFeatures []GovernanceFeature `json:"property_features,omitempty"`
CreativeFeatures []GovernanceFeature `json:"creative_features,omitempty"`
AggregationWindowDays int `json:"aggregation_window_days,omitempty"`
}
GovernanceCapabilities is the governance protocol capability block.
type GovernanceDecision ¶
type GovernanceDecision = string
GovernanceDecision — Outcome of a governance check_governance call. Distinct from creative approval
const ( GovernanceDecisionApproved GovernanceDecision = "approved" GovernanceDecisionDenied GovernanceDecision = "denied" GovernanceDecisionConditions GovernanceDecision = "conditions" )
func KnownGovernanceDecisionValues ¶
func KnownGovernanceDecisionValues() []GovernanceDecision
KnownGovernanceDecisionValues returns the current schema-defined values for GovernanceDecision.
func ParseGovernanceDecision ¶
func ParseGovernanceDecision(s string) (GovernanceDecision, error)
ParseGovernanceDecision returns s as GovernanceDecision when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type GovernanceDeliveryMetrics ¶
type GovernanceDeliveryMetrics struct {
ReportingPeriod GovernanceDeliveryReportingPeriod `json:"reporting_period"` // Start and end timestamps for the reporting window.
Spend *float64 `json:"spend,omitempty"` // Total spend during the reporting period.
CumulativeSpend *float64 `json:"cumulative_spend,omitempty"` // Total spend since the governed action started.
Impressions *int `json:"impressions,omitempty"` // Impressions delivered during the reporting period.
CumulativeImpressions *int `json:"cumulative_impressions,omitempty"` // Total impressions since the governed action started.
GeoDistribution map[string]float64 `json:"geo_distribution,omitempty"` // Actual geographic distribution. Keys are ISO 3166-1 alpha-2 codes, values are
ChannelDistribution map[string]float64 `json:"channel_distribution,omitempty"` // Actual channel distribution. Keys are channel enum values, values are
Pacing string `json:"pacing,omitempty"` // Whether delivery is ahead of, on track with, or behind the planned pace.
AudienceDistribution *GovernanceAudienceDistribution `json:"audience_distribution,omitempty"` // Actual audience composition during the reporting period. Enables mid-flight
}
GovernanceDeliveryMetrics — Actual delivery performance data. MUST be present for 'delivery' phase. The governance agent
type GovernanceDeliveryReportingPeriod ¶
type GovernanceDeliveryReportingPeriod struct {
Start string `json:"start"`
End string `json:"end"`
}
GovernanceDeliveryReportingPeriod — Start and end timestamps for the reporting window.
type GovernanceDomain ¶
type GovernanceDomain = string
GovernanceDomain — Governance sub-domains that a registry policy applies to. Used to indicate
const ( GovernanceDomainCampaign GovernanceDomain = "campaign" GovernanceDomainProperty GovernanceDomain = "property" GovernanceDomainCreative GovernanceDomain = "creative" GovernanceDomainContentStandards GovernanceDomain = "content_standards" )
func KnownGovernanceDomainValues ¶
func KnownGovernanceDomainValues() []GovernanceDomain
KnownGovernanceDomainValues returns the current schema-defined values for GovernanceDomain.
func ParseGovernanceDomain ¶
func ParseGovernanceDomain(s string) (GovernanceDomain, error)
ParseGovernanceDomain returns s as GovernanceDomain when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type GovernanceFeature ¶
type GovernanceFeature struct {
FeatureID string `json:"feature_id"`
Type string `json:"type"`
Range *FeatureRange `json:"range,omitempty"`
Categories []string `json:"categories,omitempty"`
Description string `json:"description,omitempty"`
MethodologyURL string `json:"methodology_url,omitempty"`
}
GovernanceFeature describes a score/rating/certification the agent provides.
type GovernanceMode ¶
type GovernanceMode = string
GovernanceMode — Operating mode for a governance agent. Controls whether findings block
const ( GovernanceModeAudit GovernanceMode = "audit" GovernanceModeAdvisory GovernanceMode = "advisory" GovernanceModeEnforce GovernanceMode = "enforce" )
func KnownGovernanceModeValues ¶
func KnownGovernanceModeValues() []GovernanceMode
KnownGovernanceModeValues returns the current schema-defined values for GovernanceMode.
func ParseGovernanceMode ¶
func ParseGovernanceMode(s string) (GovernanceMode, error)
ParseGovernanceMode returns s as GovernanceMode when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type GovernancePhase ¶
type GovernancePhase = string
GovernancePhase — The phase of the governed action's lifecycle that triggered the governance
const ( GovernancePhasePurchase GovernancePhase = "purchase" GovernancePhaseModification GovernancePhase = "modification" GovernancePhaseDelivery GovernancePhase = "delivery" )
func KnownGovernancePhaseValues ¶
func KnownGovernancePhaseValues() []GovernancePhase
KnownGovernancePhaseValues returns the current schema-defined values for GovernancePhase.
func ParseGovernancePhase ¶
func ParseGovernancePhase(s string) (GovernancePhase, error)
ParseGovernancePhase returns s as GovernancePhase when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type GovernanceResult ¶
type GovernanceResult struct {
Account *GovernanceAccount `json:"account"`
Status string `json:"status"`
GovernanceAgents []GovernanceAgent `json:"governance_agents"`
}
type HTTPMethod ¶
type HTTPMethod = string
HTTPMethod — HTTP methods supported for webhook requests
const ( HTTPMethodGET HTTPMethod = "GET" HTTPMethodPOST HTTPMethod = "POST" )
func KnownHTTPMethodValues ¶
func KnownHTTPMethodValues() []HTTPMethod
KnownHTTPMethodValues returns the current schema-defined values for HTTPMethod.
func ParseHTTPMethod ¶
func ParseHTTPMethod(s string) (HTTPMethod, error)
ParseHTTPMethod returns s as HTTPMethod when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type HistoryEntryType ¶
type HistoryEntryType = string
HistoryEntryType — Type of entry in task execution history
const ( HistoryEntryTypeRequest HistoryEntryType = "request" HistoryEntryTypeResponse HistoryEntryType = "response" )
func KnownHistoryEntryTypeValues ¶
func KnownHistoryEntryTypeValues() []HistoryEntryType
KnownHistoryEntryTypeValues returns the current schema-defined values for HistoryEntryType.
func ParseHistoryEntryType ¶
func ParseHistoryEntryType(s string) (HistoryEntryType, error)
ParseHistoryEntryType returns s as HistoryEntryType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type HumanOverride ¶
type HumanOverride struct {
Reason string `json:"reason"`
Approver string `json:"approver"`
ApprovedAt string `json:"approved_at,omitempty"`
}
HumanOverride records the human approval that downgrades a plan's human_review_required from true to false on re-sync. Required as an artifact under GDPR Art 22 / EU AI Act Annex III when an override is applied.
type IOAcceptance ¶
type IOAcceptance struct {
IoID string `json:"io_id"` // The io_id from the proposal's insertion_order being accepted
AcceptedAt string `json:"accepted_at"` // ISO 8601 timestamp when the IO was accepted
Signatory string `json:"signatory"` // Who accepted the IO — agent identifier or human name
SignatureID string `json:"signature_id,omitempty"` // Reference to the electronic signature from the signing service, when
}
IOAcceptance — Acceptance of an insertion order from a committed proposal. Required when the proposal's
type IdempotencyCaps ¶
type IdempotencyCaps struct {
Supported bool `json:"supported"`
ReplayTTLSeconds int `json:"replay_ttl_seconds,omitempty"`
InFlightMaxSeconds *int `json:"in_flight_max_seconds,omitempty"`
AccountIDIsOpaque *bool `json:"account_id_is_opaque,omitempty"`
}
IdempotencyCaps declares the seller's replay window for idempotency_key. Minimum 3600 (1h); recommended 86400 (24h); maximum 604800 (7d).
type IdentifierMatchProof ¶
type IdentifierTypes ¶
type IdentifierTypes = string
IdentifierTypes — Valid identifier types for property identification across different media types
const ( IdentifierTypesDomain IdentifierTypes = "domain" IdentifierTypesSubdomain IdentifierTypes = "subdomain" IdentifierTypesNetworkID IdentifierTypes = "network_id" IdentifierTypesIosBundle IdentifierTypes = "ios_bundle" IdentifierTypesAndroidPackage IdentifierTypes = "android_package" IdentifierTypesAppleAppStoreID IdentifierTypes = "apple_app_store_id" IdentifierTypesGooglePlayID IdentifierTypes = "google_play_id" IdentifierTypesRokuStoreID IdentifierTypes = "roku_store_id" IdentifierTypesFireTvAsin IdentifierTypes = "fire_tv_asin" IdentifierTypesSamsungAppID IdentifierTypes = "samsung_app_id" IdentifierTypesAppleTvBundle IdentifierTypes = "apple_tv_bundle" IdentifierTypesBundleID IdentifierTypes = "bundle_id" IdentifierTypesVenueID IdentifierTypes = "venue_id" IdentifierTypesScreenID IdentifierTypes = "screen_id" IdentifierTypesOpenoohVenueType IdentifierTypes = "openooh_venue_type" IdentifierTypesRssURL IdentifierTypes = "rss_url" IdentifierTypesApplePodcastID IdentifierTypes = "apple_podcast_id" IdentifierTypesSpotifyCollectionID IdentifierTypes = "spotify_collection_id" IdentifierTypesPodcastGuid IdentifierTypes = "podcast_guid" IdentifierTypesStationID IdentifierTypes = "station_id" IdentifierTypesFacilityID IdentifierTypes = "facility_id" )
func KnownIdentifierTypesValues ¶
func KnownIdentifierTypesValues() []IdentifierTypes
KnownIdentifierTypesValues returns the current schema-defined values for IdentifierTypes.
func ParseIdentifierTypes ¶
func ParseIdentifierTypes(s string) (IdentifierTypes, error)
ParseIdentifierTypes returns s as IdentifierTypes when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type IdentityCapabilities ¶
type IdentityCapabilities struct {
BrandJSONURL string `json:"brand_json_url,omitempty"`
PerPrincipalKeyIsolation *bool `json:"per_principal_key_isolation,omitempty"`
KeyOrigins *IdentityKeyOrigins `json:"key_origins,omitempty"`
CompromiseNotification *IdentityCompromiseNotification `json:"compromise_notification,omitempty"`
}
IdentityCapabilities declares operator identity posture — key-scoping and compromise-response controls. All fields advisory in 3.x; receivers use them to reason about blast radius and revocation latency at onboarding.
type IdentityCompromiseNotification ¶
type IdentityCompromiseNotification struct {
Emits *bool `json:"emits,omitempty"`
Accepts *bool `json:"accepts,omitempty"`
}
IdentityCompromiseNotification declares whether this agent emits and/or subscribes to the identity.compromise_notification webhook event on key revocation due to known or suspected compromise.
type IdentityKeyOrigins ¶
type IdentityKeyOrigins struct {
GovernanceSigning string `json:"governance_signing,omitempty"`
RequestSigning string `json:"request_signing,omitempty"`
WebhookSigning string `json:"webhook_signing,omitempty"`
TMPSigning string `json:"tmp_signing,omitempty"`
}
IdentityKeyOrigins maps signing-key purpose → publishing origin so counterparties can verify origin separation at onboarding.
type ImageAsset ¶
type ImageAsset struct {
AssetType string `json:"asset_type"` // Discriminator identifying this as an image asset. See
URL string `json:"url"` // URL to the image asset
Width int `json:"width"` // Width in pixels
Height int `json:"height"` // Height in pixels
Format string `json:"format,omitempty"` // Image file format (jpg, png, gif, webp, etc.)
AltText string `json:"alt_text,omitempty"` // Alternative text for accessibility
Provenance *Provenance `json:"provenance,omitempty"` // Provenance metadata for this asset, overrides manifest-level provenance
}
ImageAsset — Image asset with URL and dimensions
type Impairment ¶
type Impairment struct {
ImpairmentID string `json:"impairment_id"`
ResourceType string `json:"resource_type"`
ResourceID string `json:"resource_id"`
PackageIDs []string `json:"package_ids"`
Transition ImpairmentTransition `json:"transition"`
ReasonCode string `json:"reason_code"`
Reason string `json:"reason,omitempty"`
ObservedAt string `json:"observed_at"`
Remediation string `json:"remediation,omitempty"`
}
Impairment is an open upstream dependency state that affects a media buy.
type ImpairmentOfflineState ¶
type ImpairmentOfflineState = string
ImpairmentOfflineState — Canonical offline values that may appear in impairment.transition.to. Each
const ( ImpairmentOfflineStateSuspended ImpairmentOfflineState = "suspended" ImpairmentOfflineStateRejected ImpairmentOfflineState = "rejected" ImpairmentOfflineStateWithdrawn ImpairmentOfflineState = "withdrawn" ImpairmentOfflineStateInsufficient ImpairmentOfflineState = "insufficient" ImpairmentOfflineStateDepublished ImpairmentOfflineState = "depublished" )
func KnownImpairmentOfflineStateValues ¶
func KnownImpairmentOfflineStateValues() []ImpairmentOfflineState
KnownImpairmentOfflineStateValues returns the current schema-defined values for ImpairmentOfflineState.
func ParseImpairmentOfflineState ¶
func ParseImpairmentOfflineState(s string) (ImpairmentOfflineState, error)
ParseImpairmentOfflineState returns s as ImpairmentOfflineState when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ImpairmentReasonCode ¶
type ImpairmentReasonCode = string
ImpairmentReasonCode — Categorical reason a dependency resource entered an offline state, surfacing
const ( ImpairmentReasonCodePolicyViolation ImpairmentReasonCode = "policy_violation" ImpairmentReasonCodeConsentExpired ImpairmentReasonCode = "consent_expired" ImpairmentReasonCodeTtlExpired ImpairmentReasonCode = "ttl_expired" ImpairmentReasonCodePiiAuditFailed ImpairmentReasonCode = "pii_audit_failed" ImpairmentReasonCodeSellerRemoved ImpairmentReasonCode = "seller_removed" ImpairmentReasonCodeContentRejected ImpairmentReasonCode = "content_rejected" ImpairmentReasonCodeIdentityAuthorizationRevoked ImpairmentReasonCode = "identity_authorization_revoked" ImpairmentReasonCodeIdentityAuthorizationExpired ImpairmentReasonCode = "identity_authorization_expired" ImpairmentReasonCodeSourcePrivate ImpairmentReasonCode = "source_private" ImpairmentReasonCodeSourceOffline ImpairmentReasonCode = "source_offline" ImpairmentReasonCodePropertyDepublished ImpairmentReasonCode = "property_depublished" )
func KnownImpairmentReasonCodeValues ¶
func KnownImpairmentReasonCodeValues() []ImpairmentReasonCode
KnownImpairmentReasonCodeValues returns the current schema-defined values for ImpairmentReasonCode.
func ParseImpairmentReasonCode ¶
func ParseImpairmentReasonCode(s string) (ImpairmentReasonCode, error)
ParseImpairmentReasonCode returns s as ImpairmentReasonCode when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ImpairmentTransition ¶
ImpairmentTransition records the resource status change that opened an impairment.
type IndustryIdentifier ¶
IndustryIdentifier is an industry-standard creative identifier (Ad-ID, ISCI, etc.).
type InsertionOrder ¶
type InsertionOrder struct {
IoID string `json:"io_id"` // Unique identifier for this insertion order. Referenced by io_acceptance on
Terms *InsertionOrderTerms `json:"terms,omitempty"` // Summary fields echoed from the committed proposal for agent verification.
TermsURL string `json:"terms_url,omitempty"` // URL to a human-readable document containing the full insertion order terms
SigningURL string `json:"signing_url,omitempty"` // URL to an electronic signing service (e.g., DocuSign) for human signature
RequiresSignature bool `json:"requires_signature"` // Whether the buyer must accept this IO before creating a media buy. When true
}
InsertionOrder — A signing wrapper attached to a committed proposal. The IO does not introduce new deal terms — all
type InsertionOrderBudget ¶
type InsertionOrderBudget struct {
Amount float64 `json:"amount"`
Currency string `json:"currency"` // ISO 4217 currency code
}
InsertionOrderBudget — Total committed budget
type InsertionOrderTerms ¶
type InsertionOrderTerms struct {
Advertiser string `json:"advertiser,omitempty"` // Advertiser name or identifier
Publisher string `json:"publisher,omitempty"` // Publisher name or identifier
TotalBudget *InsertionOrderBudget `json:"total_budget,omitempty"` // Total committed budget
FlightStart string `json:"flight_start,omitempty"` // Campaign start date
FlightEnd string `json:"flight_end,omitempty"` // Campaign end date
PaymentTerms string `json:"payment_terms,omitempty"` // Payment terms
}
InsertionOrderTerms — Summary fields echoed from the committed proposal for agent verification. Buyer agents use these
type Installment ¶
type Installment struct {
InstallmentID string `json:"installment_id"` // Unique identifier for this installment within the collection
CollectionID string `json:"collection_id,omitempty"` // Parent collection reference. Required when the product spans multiple
Name string `json:"name,omitempty"` // Installment title
Season string `json:"season,omitempty"` // Season identifier (e.g., '1', '2024', 'spring_2026')
InstallmentNumber string `json:"installment_number,omitempty"` // Installment number within the season (e.g., '3', '47')
ScheduledAt string `json:"scheduled_at,omitempty"` // When the installment airs or publishes (ISO 8601)
Status InstallmentStatus `json:"status,omitempty"` // Lifecycle status of the installment
DurationSeconds int `json:"duration_seconds,omitempty"` // Expected duration of the installment in seconds
FlexibleEnd *bool `json:"flexible_end,omitempty"` // Whether the end time is approximate (live events, sports)
ValidUntil string `json:"valid_until,omitempty"` // When this installment data expires and should be re-queried. Agents should
ContentRating *ContentRating `json:"content_rating,omitempty"` // Installment-specific content rating. Overrides the collection's baseline
Topics []string `json:"topics,omitempty"` // Content topics for this installment. Uses the same taxonomy as the
Special *Special `json:"special,omitempty"` // Installment-specific event context. When present, this installment is anchored
GuestTalent []Talent `json:"guest_talent,omitempty"` // Installment-specific guests and talent. Additive to the collection's recurring
AdInventory *AdInventoryConfig `json:"ad_inventory,omitempty"` // Break-based ad inventory for this installment. For non-break formats (host
Deadlines *InstallmentDeadlines `json:"deadlines,omitempty"` // Booking, cancellation, and material submission deadlines for this installment.
DerivativeOf *InstallmentDerivative `json:"derivative_of,omitempty"` // When this installment is a clip, highlight, or recap derived from a full
Ext any `json:"ext,omitempty"`
}
Installment — A single bookable unit within a collection — one episode, issue, event, or rotation period. The
type InstallmentDeadlines ¶
type InstallmentDeadlines struct {
BookingDeadline string `json:"booking_deadline,omitempty"` // Last date/time to book a placement in this installment (ISO 8601). After this
CancellationDeadline string `json:"cancellation_deadline,omitempty"` // Last date/time to cancel without penalty (ISO 8601). Cancellations after this
MaterialDeadlines []MaterialDeadline `json:"material_deadlines,omitempty"` // Stages for creative material submission. Items MUST be in chronological order
}
InstallmentDeadlines — Deadlines associated with a bookable installment. Applies to any channel where inventory is tied
type InstallmentDerivative ¶
type InstallmentDerivative struct {
InstallmentID string `json:"installment_id"` // The source installment this content is derived from
Type DerivativeType `json:"type"` // What kind of derivative content this is
}
InstallmentDerivative — When this installment is a clip, highlight, or recap derived from a full installment. The source
type InstallmentStatus ¶
type InstallmentStatus = string
InstallmentStatus — Lifecycle status of an installment
const ( InstallmentStatusScheduled InstallmentStatus = "scheduled" InstallmentStatusTentative InstallmentStatus = "tentative" InstallmentStatusLive InstallmentStatus = "live" InstallmentStatusPostponed InstallmentStatus = "postponed" InstallmentStatusCancelled InstallmentStatus = "cancelled" InstallmentStatusAired InstallmentStatus = "aired" InstallmentStatusPublished InstallmentStatus = "published" )
func KnownInstallmentStatusValues ¶
func KnownInstallmentStatusValues() []InstallmentStatus
KnownInstallmentStatusValues returns the current schema-defined values for InstallmentStatus.
func ParseInstallmentStatus ¶
func ParseInstallmentStatus(s string) (InstallmentStatus, error)
ParseInstallmentStatus returns s as InstallmentStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type JavascriptModuleType ¶
type JavascriptModuleType = string
JavascriptModuleType — JavaScript module format types for creative assets
const ( JavascriptModuleTypeEsm JavascriptModuleType = "esm" JavascriptModuleTypeCommonjs JavascriptModuleType = "commonjs" JavascriptModuleTypeScript JavascriptModuleType = "script" )
func KnownJavascriptModuleTypeValues ¶
func KnownJavascriptModuleTypeValues() []JavascriptModuleType
KnownJavascriptModuleTypeValues returns the current schema-defined values for JavascriptModuleType.
func ParseJavascriptModuleType ¶
func ParseJavascriptModuleType(s string) (JavascriptModuleType, error)
ParseJavascriptModuleType returns s as JavascriptModuleType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type KeywordMatchCaps ¶
type KeywordMatchCaps struct {
SupportedMatchTypes []string `json:"supported_match_types"`
}
KeywordMatchCaps declares which match types a seller honors for keyword or negative-keyword targeting. supported_match_types is required when present.
type KeywordTarget ¶
type KeywordTargetRef ¶
type KeywordTargetUpdate ¶
type LandingPageRequirement ¶
type LandingPageRequirement = string
LandingPageRequirement — Landing page policy for creative click-through destinations
const ( LandingPageRequirementAny LandingPageRequirement = "any" LandingPageRequirementRetailerSiteOnly LandingPageRequirement = "retailer_site_only" LandingPageRequirementMustIncludeRetailer LandingPageRequirement = "must_include_retailer" )
func KnownLandingPageRequirementValues ¶
func KnownLandingPageRequirementValues() []LandingPageRequirement
KnownLandingPageRequirementValues returns the current schema-defined values for LandingPageRequirement.
func ParseLandingPageRequirement ¶
func ParseLandingPageRequirement(s string) (LandingPageRequirement, error)
ParseLandingPageRequirement returns s as LandingPageRequirement when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type LegacyPostalSystem ¶
type LegacyPostalSystem = string
LegacyPostalSystem — Deprecated country-fused postal code systems for geographic targeting. Prefer
const ( LegacyPostalSystemUsZip LegacyPostalSystem = "us_zip" LegacyPostalSystemUsZipPlusFour LegacyPostalSystem = "us_zip_plus_four" LegacyPostalSystemGbOutward LegacyPostalSystem = "gb_outward" LegacyPostalSystemGbFull LegacyPostalSystem = "gb_full" LegacyPostalSystemCaFsa LegacyPostalSystem = "ca_fsa" LegacyPostalSystemCaFull LegacyPostalSystem = "ca_full" LegacyPostalSystemDePlz LegacyPostalSystem = "de_plz" LegacyPostalSystemFrCodePostal LegacyPostalSystem = "fr_code_postal" LegacyPostalSystemAuPostcode LegacyPostalSystem = "au_postcode" LegacyPostalSystemChPlz LegacyPostalSystem = "ch_plz" LegacyPostalSystemAtPlz LegacyPostalSystem = "at_plz" )
func KnownLegacyPostalSystemValues ¶
func KnownLegacyPostalSystemValues() []LegacyPostalSystem
KnownLegacyPostalSystemValues returns the current schema-defined values for LegacyPostalSystem.
func ParseLegacyPostalSystem ¶
func ParseLegacyPostalSystem(s string) (LegacyPostalSystem, error)
ParseLegacyPostalSystem returns s as LegacyPostalSystem when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type LegacyWebhookAuthentication ¶
type LegacyWebhookAuthentication struct {
Schemes []AuthScheme `json:"schemes"` // Array of authentication schemes. Supported: ['Bearer'] for simple token auth
Credentials string `json:"credentials"` // Credentials for the legacy scheme. For Bearer: token sent in Authorization
}
LegacyWebhookAuthentication — Legacy authentication configuration (A2A-compatible). Opts the seller into Bearer or HMAC-SHA256
type LiftDimension ¶
type LiftDimension = string
LiftDimension — Brand-lift dimension disambiguator. Brand lift is multidimensional in
const ( LiftDimensionAwareness LiftDimension = "awareness" LiftDimensionConsideration LiftDimension = "consideration" LiftDimensionFavorability LiftDimension = "favorability" LiftDimensionPurchaseIntent LiftDimension = "purchase_intent" LiftDimensionAdRecall LiftDimension = "ad_recall" )
func KnownLiftDimensionValues ¶
func KnownLiftDimensionValues() []LiftDimension
KnownLiftDimensionValues returns the current schema-defined values for LiftDimension.
func ParseLiftDimension ¶
func ParseLiftDimension(s string) (LiftDimension, error)
ParseLiftDimension returns s as LiftDimension when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ListAccountsRequest ¶
type ListAccountsRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Account *AccountReference `json:"account,omitempty"` // Optional exact account filter. Use `account_id` to retrieve one known account
Status string `json:"status,omitempty"` // Filter accounts by status. Omit to return accounts in all statuses.
Pagination *PaginationRequest `json:"pagination,omitempty"`
Sandbox *bool `json:"sandbox,omitempty"` // Filter by sandbox status. true returns only sandbox accounts, false returns
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ListAccountsRequest — Request parameters for listing accounts accessible to the authenticated agent. For
type ListAccountsResponse ¶
type ListAccountsResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"`
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
Accounts []AccountWithAuthorization `json:"accounts"` // Array of accounts accessible to the authenticated agent. Each entry is the
Errors []AdcpError `json:"errors,omitempty"` // Task-specific errors and warnings
Pagination *PaginationResponse `json:"pagination,omitempty"`
Ext any `json:"ext,omitempty"`
}
ListAccountsResponse — Response payload for list_accounts task
type ListCollectionListsRequest ¶
type ListCollectionListsRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Account *AccountReference `json:"account,omitempty"` // Filter to lists owned by this account. When omitted, returns lists across all
NameContains string `json:"name_contains,omitempty"` // Filter to lists whose name contains this string
Pagination *PaginationRequest `json:"pagination,omitempty"`
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ListCollectionListsRequest — Request parameters for listing collection lists
type ListCollectionListsResult ¶
type ListCollectionListsResult struct {
Lists []CollectionList
Pagination *PaginationResponse
}
ListCollectionListsResult is the return type for Config.ListCollectionLists.
type ListCreativeFormatsRequest ¶
type ListCreativeFormatsRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
FormatIDs []FormatRef `json:"format_ids,omitempty"` // Return only these specific format IDs (e.g., from get_products response)
AssetTypes []AssetContentType `json:"asset_types,omitempty"` // Filter to formats that include these asset types. For third-party tags, search
MaxWidth int `json:"max_width,omitempty"` // Maximum width in pixels (inclusive). Returns formats where ANY render has
MaxHeight int `json:"max_height,omitempty"` // Maximum height in pixels (inclusive). Returns formats where ANY render has
MinWidth int `json:"min_width,omitempty"` // Minimum width in pixels (inclusive). Returns formats where ANY render has
MinHeight int `json:"min_height,omitempty"` // Minimum height in pixels (inclusive). Returns formats where ANY render has
IsResponsive *bool `json:"is_responsive,omitempty"` // Filter for responsive formats that adapt to container size. When true, returns
NameSearch string `json:"name_search,omitempty"` // Search for formats by name (case-insensitive partial match)
PublisherDomain string `json:"publisher_domain,omitempty"` // Filter to formats supported by the named publisher. Agents resolve via the
PropertyID string `json:"property_id,omitempty"` // Filter to formats supported on the named property within the publisher's
WcagLevel WcagLevel `json:"wcag_level,omitempty"` // Filter to formats that meet at least this WCAG conformance level (A < AA < AAA)
DisclosurePositions []DisclosurePosition `json:"disclosure_positions,omitempty"` // Filter to formats that support all of these disclosure positions. When a
DisclosurePersistence []DisclosurePersistence `json:"disclosure_persistence,omitempty"` // Filter to formats where each requested persistence mode is supported by at
OutputFormatIDs []FormatRef `json:"output_format_ids,omitempty"` // Filter to formats whose output_format_ids includes any of these format IDs.
InputFormatIDs []FormatRef `json:"input_format_ids,omitempty"` // Filter to formats whose input_format_ids includes any of these format IDs.
Pagination *PaginationRequest `json:"pagination,omitempty"`
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ListCreativeFormatsRequest — Request parameters for discovering supported creative formats
type ListCreativeFormatsResponse ¶
type ListCreativeFormatsResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"`
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
Formats []CreativeFormat `json:"formats"` // Full format definitions for all formats this agent supports. Each format's
Source string `json:"source,omitempty"` // Which tier of the resolution order produced this `formats[]` list when the
CreativeAgents []CreativeAgentRef `json:"creative_agents,omitempty"` // Optional: Creative agents that provide additional formats. Buyers can
Errors []AdcpError `json:"errors,omitempty"` // Task-specific errors and warnings (e.g., format availability issues)
Pagination *PaginationResponse `json:"pagination,omitempty"`
Sandbox *bool `json:"sandbox,omitempty"` // When true, this response contains simulated data from sandbox mode.
Ext any `json:"ext,omitempty"`
}
ListCreativeFormatsResponse — Response payload for list_creative_formats task
type ListCreativesRequest ¶
type ListCreativesRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Filters *CreativeFilters `json:"filters,omitempty"`
Sort *ListCreativesSort `json:"sort,omitempty"` // Sorting parameters
Pagination *PaginationRequest `json:"pagination,omitempty"`
IncludeAssignments *bool `json:"include_assignments,omitempty"` // Include package assignment information in response
IncludeSnapshot *bool `json:"include_snapshot,omitempty"` // Include a lightweight delivery snapshot per creative (lifetime impressions and
IncludeItems *bool `json:"include_items,omitempty"` // Include items for multi-asset formats like carousels and native ads
IncludeVariables *bool `json:"include_variables,omitempty"` // Include dynamic content variable definitions (DCO slots) for each creative
IncludePricing *bool `json:"include_pricing,omitempty"` // Include pricing_options on each creative. Requires account to be provided.
IncludePurged *bool `json:"include_purged,omitempty"` // Include soft-purged creative tombstones in the result set. When true
IncludeWebhookActivity *bool `json:"include_webhook_activity,omitempty"` // Include recent webhook activity per creative. When true, each returned
WebhookActivityLimit int `json:"webhook_activity_limit,omitempty"` // Maximum number of `webhook_activity[]` records to return per creative. Only
Account *AccountReference `json:"account,omitempty"` // Account reference for pricing and access. When provided with include_pricing
Fields []string `json:"fields,omitempty"` // Specific fields to include in response (omit for all fields). The 'concept'
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ListCreativesRequest — Request parameters for querying creative assets from a creative library with filtering, sorting
type ListCreativesSort ¶
type ListCreativesSort struct {
Field CreativeSortField `json:"field,omitempty"` // Field to sort by
Direction SortDirection `json:"direction,omitempty"` // Sort direction
}
ListCreativesSort — Sorting parameters
type ListScenariosSuccess ¶
type ListScenariosSuccess struct {
Success bool `json:"success"`
Scenarios []string `json:"scenarios"` // Scenarios this seller has implemented. Runners and sellers MUST accept unknown
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ListScenariosSuccess — Lists which scenarios this seller's test controller supports
type LogEventRequest ¶
type LogEventRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
EventSourceID string `json:"event_source_id"` // Event source configured on the account via sync_event_sources
TestEventCode string `json:"test_event_code,omitempty"` // Test event code for validation without affecting production data. Events with
Events []map[string]any `json:"events"` // Events to log
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for this request. Prevents duplicate event logging
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
LogEventRequest — Request parameters for logging marketing events
type LogEventResult ¶
type LogoSlot ¶
type LogoSlot = string
LogoSlot — Canonical renderer-facing logo slot. Use when selecting a logo variant from
const ( LogoSlotLogoCardLight LogoSlot = "logo_card_light" LogoSlotLogoCardDark LogoSlot = "logo_card_dark" LogoSlotProfileMark LogoSlot = "profile_mark" LogoSlotFavicon LogoSlot = "favicon" LogoSlotAppIcon LogoSlot = "app_icon" LogoSlotSocialProfileMark LogoSlot = "social_profile_mark" LogoSlotEmailHeader LogoSlot = "email_header" LogoSlotWatermark LogoSlot = "watermark" LogoSlotAdEndCard LogoSlot = "ad_end_card" LogoSlotCoBrandLockup LogoSlot = "co_brand_lockup" LogoSlotMarketplaceListing LogoSlot = "marketplace_listing" )
func KnownLogoSlotValues ¶
func KnownLogoSlotValues() []LogoSlot
KnownLogoSlotValues returns the current schema-defined values for LogoSlot.
func ParseLogoSlot ¶
ParseLogoSlot returns s as LogoSlot when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MCPWebhookPayload ¶
type MCPWebhookPayload struct {
IdempotencyKey string `json:"idempotency_key"` // Sender-generated key stable across retries of the same webhook event.
NotificationID string `json:"notification_id,omitempty"` // Event-layer, per-state-event identifier. Stable across re-emissions of the
OperationID string `json:"operation_id"` // Client-generated correlation identifier for the operation that produced this
TaskID string `json:"task_id"` // Unique identifier for this task. Use this to correlate webhook notifications
TaskType TaskType `json:"task_type"` // Type of AdCP operation that triggered this webhook. Enables webhook handlers
Protocol AdcpProtocol `json:"protocol,omitempty"` // AdCP protocol this task belongs to. Helps classify the operation type at a
Status TaskStatus `json:"status"` // Current task status. Webhooks are triggered for status changes after initial
Timestamp string `json:"timestamp"` // ISO 8601 timestamp when this webhook was generated.
Message string `json:"message,omitempty"` // Human-readable summary of the current task state. Provides context about what
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier. Use this to continue the conversation if
Token string `json:"token,omitempty"` // Authentication token echoed verbatim from
Result any `json:"result,omitempty"` // Task-specific payload matching the status. For completed/failed, contains the
}
MCPWebhookPayload — Standard envelope for HTTP-based push notifications (MCP). This defines the wire format sent to
func (*MCPWebhookPayload) IdempotencyKeyPtr ¶
func (p *MCPWebhookPayload) IdempotencyKeyPtr() *string
--- Webhook Payload interface satisfaction --- IdempotencyKeyPtr returns a writable pointer to the payload's idempotency_key field so webhook.Marshal can fill a UUIDv4 key when the caller leaves it empty. Spec: adcontextprotocol/adcp#2417.
type MakegoodPolicy ¶
type MakegoodPolicy struct {
AvailableRemedies []string `json:"available_remedies"`
}
MakegoodPolicy declares available remedies when a threshold is breached.
type MakegoodRemedy ¶
type MakegoodRemedy = string
MakegoodRemedy — Remedy types available when a performance standard or billing measurement
const ( MakegoodRemedyAdditionalDelivery MakegoodRemedy = "additional_delivery" MakegoodRemedyCredit MakegoodRemedy = "credit" MakegoodRemedyInvoiceAdjustment MakegoodRemedy = "invoice_adjustment" )
func KnownMakegoodRemedyValues ¶
func KnownMakegoodRemedyValues() []MakegoodRemedy
KnownMakegoodRemedyValues returns the current schema-defined values for MakegoodRemedy.
func ParseMakegoodRemedy ¶
func ParseMakegoodRemedy(s string) (MakegoodRemedy, error)
ParseMakegoodRemedy returns s as MakegoodRemedy when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MarkdownFlavor ¶
type MarkdownFlavor = string
MarkdownFlavor — Markdown specification flavors supported for text assets
const ( MarkdownFlavorCommonmark MarkdownFlavor = "commonmark" MarkdownFlavorGfm MarkdownFlavor = "gfm" )
func KnownMarkdownFlavorValues ¶
func KnownMarkdownFlavorValues() []MarkdownFlavor
KnownMarkdownFlavorValues returns the current schema-defined values for MarkdownFlavor.
func ParseMarkdownFlavor ¶
func ParseMarkdownFlavor(s string) (MarkdownFlavor, error)
ParseMarkdownFlavor returns s as MarkdownFlavor when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MatchIDType ¶
type MatchIDType = string
MatchIDType — Identifier types for audience match reporting. Combines hashed PII types (from
const ( MatchIDTypeHashedEmail MatchIDType = "hashed_email" MatchIDTypeHashedPhone MatchIDType = "hashed_phone" MatchIDTypeRampid MatchIDType = "rampid" MatchIDTypeId5 MatchIDType = "id5" MatchIDTypeUid2 MatchIDType = "uid2" MatchIDTypeEuid MatchIDType = "euid" MatchIDTypePairid MatchIDType = "pairid" MatchIDTypeMaid MatchIDType = "maid" MatchIDTypeOther MatchIDType = "other" )
func KnownMatchIDTypeValues ¶
func KnownMatchIDTypeValues() []MatchIDType
KnownMatchIDTypeValues returns the current schema-defined values for MatchIDType.
func ParseMatchIDType ¶
func ParseMatchIDType(s string) (MatchIDType, error)
ParseMatchIDType returns s as MatchIDType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MatchType ¶
type MatchType = string
MatchType — Keyword targeting match type. broad: ads may serve on queries semantically
func KnownMatchTypeValues ¶
func KnownMatchTypeValues() []MatchType
KnownMatchTypeValues returns the current schema-defined values for MatchType.
func ParseMatchType ¶
ParseMatchType returns s as MatchType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MatchingLatencyRange ¶
type MaterialDeadline ¶
type MaterialDeadline struct {
Stage string `json:"stage"` // Submission stage identifier. Use 'draft' for materials that need seller
DueAt string `json:"due_at"` // When materials for this stage are due (ISO 8601)
Label string `json:"label,omitempty"` // What the seller needs at this stage (e.g., 'Talking points and brand
}
MaterialDeadline — A deadline for creative material submission. Sellers declare stages to distinguish draft materials
type MeasurementReadiness ¶
type MeasurementReadiness struct {
Status AssessmentStatus `json:"status"` // Overall measurement readiness level for this product given the buyer's event
RequiredEventTypes []EventType `json:"required_event_types,omitempty"` // Event types this product needs for effective optimization. Buyers should
MissingEventTypes []EventType `json:"missing_event_types,omitempty"` // Event types this product requires that the buyer has not configured. Empty or
Issues []DiagnosticIssue `json:"issues,omitempty"` // Actionable issues preventing full measurement readiness. Sellers should limit
Notes string `json:"notes,omitempty"` // Seller explanation of the readiness assessment, recommendations for
}
MeasurementReadiness — Per-product assessment of whether the buyer's event source setup is sufficient for the product's
type MeasurementTerms ¶
type MeasurementTerms struct {
BillingMeasurement *BillingMeasurement `json:"billing_measurement,omitempty"`
MakegoodPolicy *MakegoodPolicy `json:"makegood_policy,omitempty"`
}
MeasurementTerms declares billing measurement and makegood terms.
type MeasurementWindow ¶
type MeasurementWindow struct {
WindowID string `json:"window_id"`
Description string `json:"description,omitempty"`
DurationDays int `json:"duration_days"`
ExpectedAvailabilityDays int `json:"expected_availability_days,omitempty"`
IsGuaranteeBasis *bool `json:"is_guarantee_basis,omitempty"`
}
MeasurementWindow defines a measurement maturation window for broadcast TV.
type MediaBuyActionMode ¶
type MediaBuyActionMode = string
MediaBuyActionMode — How a seller honors a given action on a media buy. Buyers branch on this to
const ( MediaBuyActionModeSelfServe MediaBuyActionMode = "self_serve" MediaBuyActionModeConditionalSelfServe MediaBuyActionMode = "conditional_self_serve" MediaBuyActionModeRequiresApproval MediaBuyActionMode = "requires_approval" )
func KnownMediaBuyActionModeValues ¶
func KnownMediaBuyActionModeValues() []MediaBuyActionMode
KnownMediaBuyActionModeValues returns the current schema-defined values for MediaBuyActionMode.
func ParseMediaBuyActionMode ¶
func ParseMediaBuyActionMode(s string) (MediaBuyActionMode, error)
ParseMediaBuyActionMode returns s as MediaBuyActionMode when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MediaBuyAvailableAction ¶
type MediaBuyAvailableAction struct {
Action MediaBuyValidAction `json:"action"` // The action identifier.
Mode MediaBuyActionMode `json:"mode"` // The single mode that applies right now on this buy for this action. Singular
Sla *SlaWindow `json:"sla,omitempty"` // Optional SLA commitment for this action on this buy. Absence means no
TermsRef string `json:"terms_ref,omitempty"` // Optional pointer into buy-terms negotiation (forward-references the buy-terms
}
MediaBuyAvailableAction — An action currently available on a media buy, resolved against the buy's current status
type MediaBuyBudget ¶
type MediaBuyBudget struct {
Amount float64 `json:"amount"` // Total budget amount
Currency string `json:"currency"` // ISO 4217 currency code
}
MediaBuyBudget — Total budget for the media buy when executing a proposal. The publisher applies the proposal's
type MediaBuyCapabilities ¶
type MediaBuyCapabilities struct {
SupportedPricingModels []string `json:"supported_pricing_models,omitempty"`
BuyingModes []string `json:"buying_modes,omitempty"`
ReportingDeliveryMethods []string `json:"reporting_delivery_methods,omitempty"`
OfflineDeliveryProtocols []string `json:"offline_delivery_protocols,omitempty"`
SupportsProposals *bool `json:"supports_proposals,omitempty"`
GovernanceAware *bool `json:"governance_aware,omitempty"`
PropagationSurfaces []string `json:"propagation_surfaces,omitempty"`
CreativeApprovalMode string `json:"creative_approval_mode,omitempty"`
Features map[string]any `json:"features,omitempty"`
Execution *MediaBuyExecution `json:"execution,omitempty"`
AudienceTargeting *AudienceTargetingCaps `json:"audience_targeting,omitempty"`
SupportedOptimizationMetrics []string `json:"supported_optimization_metrics,omitempty"`
VendorMetricOptimization *MediaBuyVendorMetricOptimizationCaps `json:"vendor_metric_optimization,omitempty"`
ConversionTracking *ConversionTrackingCaps `json:"conversion_tracking,omitempty"`
FrequencyCapping *FrequencyCappingCaps `json:"frequency_capping,omitempty"`
ContentStandards *ContentStandardsCaps `json:"content_standards,omitempty"`
Portfolio *PortfolioCaps `json:"portfolio,omitempty"`
}
MediaBuyCapabilities is the media_buy protocol capability block.
type MediaBuyDailyBreakdown ¶
type MediaBuyDailyBreakdown struct {
Date string `json:"date"` // Date (YYYY-MM-DD)
Impressions float64 `json:"impressions"` // Daily impressions
Spend float64 `json:"spend"` // Daily spend
Conversions float64 `json:"conversions,omitempty"` // Daily conversions
ConversionValue float64 `json:"conversion_value,omitempty"` // Daily conversion value
Roas float64 `json:"roas,omitempty"` // Daily return on ad spend (conversion_value / spend)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Daily fraction of conversions from first-time brand buyers (0 = none, 1 = all)
}
type MediaBuyData ¶
type MediaBuyData struct {
MediaBuyID string `json:"media_buy_id"`
Account *Account `json:"account,omitempty"`
Status string `json:"status"`
Health string `json:"health,omitempty"`
Impairments []Impairment `json:"impairments,omitempty"`
AvailableActions []MediaBuyAvailableAction `json:"available_actions,omitempty"`
Currency string `json:"currency"`
TotalBudget float64 `json:"total_budget"`
StartTime string `json:"start_time,omitempty"`
EndTime string `json:"end_time,omitempty"`
InvoiceRecipient *BusinessEntity `json:"invoice_recipient,omitempty"`
ConfirmedAt string `json:"confirmed_at,omitempty"`
Cancellation any `json:"cancellation,omitempty"`
CreativeDeadline string `json:"creative_deadline,omitempty"`
Revision int `json:"revision,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
UpdatedAt string `json:"updated_at,omitempty"`
ValidActions []string `json:"valid_actions,omitempty"`
History []MediaBuyHistoryEntry `json:"history,omitempty"`
Packages []PackageStatus `json:"packages"`
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
MediaBuyData is one item in a get_media_buys response.
func (MediaBuyData) MarshalJSON ¶
func (d MediaBuyData) MarshalJSON() ([]byte, error)
MarshalJSON preserves an explicitly empty valid_actions array. In the protocol, [] means no actions are available; omission means the seller did not say.
type MediaBuyDelivery ¶
type MediaBuyDelivery struct {
MediaBuyID string `json:"media_buy_id"` // Seller's media buy identifier
Status string `json:"status"` // Current media buy status. Lifecycle states use the same taxonomy as
ExpectedAvailability string `json:"expected_availability,omitempty"` // When delayed data is expected to be available (only present when status is
IsAdjusted *bool `json:"is_adjusted,omitempty"` // Indicates this delivery contains updated data for a previously reported
IsFinal *bool `json:"is_final,omitempty"` // Whether this row's delivery data is final for the reporting period. The row
FinalizedAt string `json:"finalized_at,omitempty"` // ISO 8601 timestamp at which this row became final. Present only when
PricingModel PricingModel `json:"pricing_model,omitempty"` // Pricing model used for this media buy
Totals MediaBuyDeliveryTotals `json:"totals"`
ByPackage []PackageDelivery `json:"by_package"` // Metrics broken down by package
Windows []DeliveryWindow `json:"windows,omitempty"` // Per-window delivery slices over the reporting period at the requested
DailyBreakdown []MediaBuyDailyBreakdown `json:"daily_breakdown,omitempty"` // Day-by-day delivery
}
type MediaBuyDeliveryTotals ¶
type MediaBuyDeliveryTotals struct {
Impressions float64 `json:"impressions,omitempty"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
EffectiveRate float64 `json:"effective_rate,omitempty"` // Effective rate paid per unit based on pricing_model (e.g., actual CPM for
}
type MediaBuyExecution ¶
type MediaBuyExecution struct {
TrustedMatch *TrustedMatchCaps `json:"trusted_match,omitempty"`
AxeIntegrations []string `json:"axe_integrations,omitempty"`
CreativeSpecs *CreativeSpecsCaps `json:"creative_specs,omitempty"`
Targeting *TargetingCaps `json:"targeting,omitempty"`
}
MediaBuyExecution describes technical execution capabilities for media buying.
type MediaBuyFeatures ¶
type MediaBuyFeatures struct {
InlineCreativeManagement *bool `json:"inline_creative_management,omitempty"` // Supports creatives provided inline in create_media_buy and update_media_buy
PropertyListFiltering *bool `json:"property_list_filtering,omitempty"` // Honors property_list parameter in get_products to filter results to
CatalogManagement *bool `json:"catalog_management,omitempty"` // Supports sync_catalogs task for catalog feed management with platform review
CommittedMetricsSupported *bool `json:"committed_metrics_supported,omitempty"` // Seller has per-package snapshot infrastructure for the reporting contract.
}
MediaBuyFeatures — Optional media-buy protocol features. Used in capability declarations (seller declares support)
type MediaBuyHealth ¶
type MediaBuyHealth = string
MediaBuyHealth — Aggregate health of a media buy based on upstream dependency state. Orthogonal
const ( MediaBuyHealthOk MediaBuyHealth = "ok" MediaBuyHealthImpaired MediaBuyHealth = "impaired" )
func KnownMediaBuyHealthValues ¶
func KnownMediaBuyHealthValues() []MediaBuyHealth
KnownMediaBuyHealthValues returns the current schema-defined values for MediaBuyHealth.
func ParseMediaBuyHealth ¶
func ParseMediaBuyHealth(s string) (MediaBuyHealth, error)
ParseMediaBuyHealth returns s as MediaBuyHealth when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MediaBuyHistoryEntry ¶
type MediaBuyHistoryEntry struct {
Revision int `json:"revision"`
Timestamp string `json:"timestamp"`
Actor string `json:"actor,omitempty"`
Action string `json:"action"`
Summary string `json:"summary,omitempty"`
PackageID string `json:"package_id,omitempty"`
Ext any `json:"ext,omitempty"`
}
MediaBuyHistoryEntry is a get_media_buys revision history entry.
type MediaBuyListItem ¶
type MediaBuyStatus ¶
type MediaBuyStatus = string
MediaBuyStatus — Status of a media buy.
const ( MediaBuyStatusPendingCreatives MediaBuyStatus = "pending_creatives" MediaBuyStatusPendingStart MediaBuyStatus = "pending_start" MediaBuyStatusActive MediaBuyStatus = "active" MediaBuyStatusPaused MediaBuyStatus = "paused" MediaBuyStatusCompleted MediaBuyStatus = "completed" MediaBuyStatusRejected MediaBuyStatus = "rejected" MediaBuyStatusCanceled MediaBuyStatus = "canceled" )
func KnownMediaBuyStatusValues ¶
func KnownMediaBuyStatusValues() []MediaBuyStatus
KnownMediaBuyStatusValues returns the current schema-defined values for MediaBuyStatus.
func ParseMediaBuyStatus ¶
func ParseMediaBuyStatus(s string) (MediaBuyStatus, error)
ParseMediaBuyStatus returns s as MediaBuyStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MediaBuyStatusFilter ¶
type MediaBuyStatusFilter []MediaBuyStatus
MediaBuyStatusFilter — Filter by status. Can be a single status or array of statuses MediaBuyStatusFilter preserves unknown values for forward compatibility. It validates only scalar-or-array shape and array cardinality.
func NewMediaBuyStatusFilter ¶
func NewMediaBuyStatusFilter(values ...MediaBuyStatus) *MediaBuyStatusFilter
NewMediaBuyStatusFilter returns a pointer to a MediaBuyStatusFilter containing values. It returns nil when called with no values so optional fields omit instead of triggering a MarshalJSON error on a schema-invalid empty array.
func (MediaBuyStatusFilter) MarshalJSON ¶
func (v MediaBuyStatusFilter) MarshalJSON() ([]byte, error)
func (*MediaBuyStatusFilter) UnmarshalJSON ¶
func (v *MediaBuyStatusFilter) UnmarshalJSON(data []byte) error
type MediaBuyValidAction ¶
type MediaBuyValidAction = string
MediaBuyValidAction — Actions the buyer can perform on a media buy. Used as the action identifier in
const ( MediaBuyValidActionPause MediaBuyValidAction = "pause" MediaBuyValidActionResume MediaBuyValidAction = "resume" MediaBuyValidActionCancel MediaBuyValidAction = "cancel" MediaBuyValidActionExtendFlight MediaBuyValidAction = "extend_flight" MediaBuyValidActionShortenFlight MediaBuyValidAction = "shorten_flight" MediaBuyValidActionUpdateFlightDates MediaBuyValidAction = "update_flight_dates" MediaBuyValidActionIncreaseBudget MediaBuyValidAction = "increase_budget" MediaBuyValidActionDecreaseBudget MediaBuyValidAction = "decrease_budget" MediaBuyValidActionReallocateBudget MediaBuyValidAction = "reallocate_budget" MediaBuyValidActionUpdateTargeting MediaBuyValidAction = "update_targeting" MediaBuyValidActionUpdatePacing MediaBuyValidAction = "update_pacing" MediaBuyValidActionUpdateFrequencyCaps MediaBuyValidAction = "update_frequency_caps" MediaBuyValidActionReplaceCreative MediaBuyValidAction = "replace_creative" MediaBuyValidActionUpdateCreativeAssignments MediaBuyValidAction = "update_creative_assignments" MediaBuyValidActionRemoveCreative MediaBuyValidAction = "remove_creative" MediaBuyValidActionAddPackages MediaBuyValidAction = "add_packages" MediaBuyValidActionRemovePackages MediaBuyValidAction = "remove_packages" MediaBuyValidActionUpdateBudget MediaBuyValidAction = "update_budget" MediaBuyValidActionUpdateDates MediaBuyValidAction = "update_dates" MediaBuyValidActionUpdatePackages MediaBuyValidAction = "update_packages" MediaBuyValidActionSyncCreatives MediaBuyValidAction = "sync_creatives" )
func KnownMediaBuyValidActionValues ¶
func KnownMediaBuyValidActionValues() []MediaBuyValidAction
KnownMediaBuyValidActionValues returns the current schema-defined values for MediaBuyValidAction.
func ParseMediaBuyValidAction ¶
func ParseMediaBuyValidAction(s string) (MediaBuyValidAction, error)
ParseMediaBuyValidAction returns s as MediaBuyValidAction when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MediaBuyVendorMetricOptimizationCaps ¶
type MediaBuyVendorMetricOptimizationCaps struct {
SupportedTargets []string `json:"supported_targets,omitempty"`
}
type MetricQualifier ¶
type MetricQualifier struct {
ViewabilityStandard ViewabilityStandard `json:"viewability_standard,omitempty"` // Viewability standard the seller commits to for this metric. MUST be set when
CompletionSource CompletionSource `json:"completion_source,omitempty"` // Source of `completion_rate` attestation. MUST be set when `metric_id` is
AttributionMethodology AttributionMethodology `json:"attribution_methodology,omitempty"` // How attribution between ad exposure and outcome events was computed. SHOULD be
AttributionWindow *Duration `json:"attribution_window,omitempty"` // Time window over which outcome attribution is computed. **Object-valued, not
LiftDimension LiftDimension `json:"lift_dimension,omitempty"` // Which dimension of `brand_lift` this row represents — awareness
}
MetricQualifier — Disambiguates metrics whose definition varies by qualifier. Today carries five keys —
type MetricScope ¶
type MetricScope = string
MetricScope — Discriminator for entries in unified metric arrays (`committed_metrics`
const ( MetricScopeStandard MetricScope = "standard" MetricScopeVendor MetricScope = "vendor" )
func KnownMetricScopeValues ¶
func KnownMetricScopeValues() []MetricScope
KnownMetricScopeValues returns the current schema-defined values for MetricScope.
func ParseMetricScope ¶
func ParseMetricScope(s string) (MetricScope, error)
ParseMetricScope returns s as MetricScope when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MetricType ¶
type MetricType = string
MetricType — **Deprecated as of this minor.** Legacy free-form enum mixing metrics
const ( MetricTypeOverallPerformance MetricType = "overall_performance" MetricTypeConversionRate MetricType = "conversion_rate" MetricTypeBrandLift MetricType = "brand_lift" MetricTypeClickThroughRate MetricType = "click_through_rate" MetricTypeCompletionRate MetricType = "completion_rate" MetricTypeViewability MetricType = "viewability" MetricTypeBrandSafety MetricType = "brand_safety" MetricTypeCostEfficiency MetricType = "cost_efficiency" )
func KnownMetricTypeValues ¶
func KnownMetricTypeValues() []MetricType
KnownMetricTypeValues returns the current schema-defined values for MetricType.
func ParseMetricType ¶
func ParseMetricType(s string) (MetricType, error)
ParseMetricType returns s as MetricType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MetroSystem ¶
type MetroSystem = string
MetroSystem — Metro area classification systems for geographic targeting
const ( MetroSystemNielsenDma MetroSystem = "nielsen_dma" MetroSystemUkItl1 MetroSystem = "uk_itl1" MetroSystemUkItl2 MetroSystem = "uk_itl2" MetroSystemEurostatNuts2 MetroSystem = "eurostat_nuts2" MetroSystemCustom MetroSystem = "custom" )
func KnownMetroSystemValues ¶
func KnownMetroSystemValues() []MetroSystem
KnownMetroSystemValues returns the current schema-defined values for MetroSystem.
func ParseMetroSystem ¶
func ParseMetroSystem(s string) (MetroSystem, error)
ParseMetroSystem returns s as MetroSystem when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type MissingMetric ¶
type MissingMetric struct {
Scope string `json:"scope,omitempty"`
MetricID string `json:"metric_id,omitempty"`
Qualifier *MetricQualifier `json:"qualifier,omitempty"` // Mirrors the qualifier on `committed_metrics` so the missing entry preserves
Vendor *BrandReference `json:"vendor,omitempty"`
}
MissingMetric — One metric the binding reporting contract declared but that is not populated in a delivery report.
type MoovAtomPosition ¶
type MoovAtomPosition = string
MoovAtomPosition — Position of the moov atom in an MP4 container. 'start' enables progressive
const ( MoovAtomPositionStart MoovAtomPosition = "start" MoovAtomPositionEnd MoovAtomPosition = "end" )
func KnownMoovAtomPositionValues ¶
func KnownMoovAtomPositionValues() []MoovAtomPosition
KnownMoovAtomPositionValues returns the current schema-defined values for MoovAtomPosition.
func ParseMoovAtomPosition ¶
func ParseMoovAtomPosition(s string) (MoovAtomPosition, error)
ParseMoovAtomPosition returns s as MoovAtomPosition when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type NegativeKeywordTarget ¶
type NotificationConfig ¶
type NotificationConfig struct {
SubscriberID string `json:"subscriber_id"` // Buyer-supplied identifier for this subscription endpoint. This is the stable
URL string `json:"url"` // Webhook endpoint URL. Same wire contract as `push-notification-config.url` —
EventTypes []NotificationType `json:"event_types"` // Notification types this subscriber wishes to receive on the registered `url`.
Authentication *LegacyWebhookAuthentication `json:"authentication,omitempty"` // Legacy authentication selector. Same precedence and semantics as
Active *bool `json:"active,omitempty"` // When false, the seller persists the configuration but suppresses fires. Use to
Ext any `json:"ext,omitempty"`
}
NotificationConfig — Account-level webhook subscription for notifications whose lifecycle outlives any single media buy
type NotificationType ¶
type NotificationType = string
NotificationType — Type of push notification fired by a seller agent. Media-buy-anchored
const ( NotificationTypeScheduled NotificationType = "scheduled" NotificationTypeFinal NotificationType = "final" NotificationTypeDelayed NotificationType = "delayed" NotificationTypeAdjusted NotificationType = "adjusted" NotificationTypeImpairment NotificationType = "impairment" NotificationTypeCreativeStatusChanged NotificationType = "creative.status_changed" NotificationTypeCreativePurged NotificationType = "creative.purged" NotificationTypeProductCreated NotificationType = "product.created" NotificationTypeProductUpdated NotificationType = "product.updated" NotificationTypeProductPriced NotificationType = "product.priced" NotificationTypeProductRemoved NotificationType = "product.removed" NotificationTypeSignalCreated NotificationType = "signal.created" NotificationTypeSignalUpdated NotificationType = "signal.updated" NotificationTypeSignalPriced NotificationType = "signal.priced" NotificationTypeSignalRemoved NotificationType = "signal.removed" NotificationTypeWholesaleFeedBulkChange NotificationType = "wholesale_feed.bulk_change" )
func KnownNotificationTypeValues ¶
func KnownNotificationTypeValues() []NotificationType
KnownNotificationTypeValues returns the current schema-defined values for NotificationType.
func ParseNotificationType ¶
func ParseNotificationType(s string) (NotificationType, error)
ParseNotificationType returns s as NotificationType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type OfferingAvailabilityStatus ¶
type OfferingAvailabilityStatus = string
OfferingAvailabilityStatus — Machine-readable availability state for an SI offering or a matching product.
const ( OfferingAvailabilityStatusAvailable OfferingAvailabilityStatus = "available" OfferingAvailabilityStatusLimited OfferingAvailabilityStatus = "limited" OfferingAvailabilityStatusSoldOut OfferingAvailabilityStatus = "sold_out" OfferingAvailabilityStatusExpired OfferingAvailabilityStatus = "expired" OfferingAvailabilityStatusRegionRestricted OfferingAvailabilityStatus = "region_restricted" OfferingAvailabilityStatusInactive OfferingAvailabilityStatus = "inactive" )
func KnownOfferingAvailabilityStatusValues ¶
func KnownOfferingAvailabilityStatusValues() []OfferingAvailabilityStatus
KnownOfferingAvailabilityStatusValues returns the current schema-defined values for OfferingAvailabilityStatus.
func ParseOfferingAvailabilityStatus ¶
func ParseOfferingAvailabilityStatus(s string) (OfferingAvailabilityStatus, error)
ParseOfferingAvailabilityStatus returns s as OfferingAvailabilityStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type OptimizationGoal ¶
type OptimizationGoal struct {
Kind string `json:"kind,omitempty"`
Metric string `json:"metric,omitempty"`
ReachUnit string `json:"reach_unit,omitempty"`
TargetFrequency *OptimizationGoalTargetFrequency `json:"target_frequency,omitempty"`
ViewDurationSeconds float64 `json:"view_duration_seconds,omitempty"`
Target OptimizationGoalTarget `json:"target,omitempty"`
Priority int `json:"priority,omitempty"`
EventSources []OptimizationGoalEventSource `json:"event_sources,omitempty"`
AttributionWindow *OptimizationGoalAttributionWindow `json:"attribution_window,omitempty"`
Extra map[string]any `json:"-"`
}
OptimizationGoal is a flattened representation of the optimization-goal oneOf. Extra preserves schema-allowed future fields so read-modify-write callers do not strip unknown goal metadata on replacement updates. Extra keys that collide with typed fields are ignored when marshaling; set the typed field instead.
func (OptimizationGoal) MarshalJSON ¶
func (g OptimizationGoal) MarshalJSON() ([]byte, error)
func (*OptimizationGoal) UnmarshalJSON ¶
func (g *OptimizationGoal) UnmarshalJSON(data []byte) error
func (OptimizationGoal) Validate ¶
func (g OptimizationGoal) Validate(opts ...ValidationOption) []ValidationIssue
Validate checks required fields and current-schema invariants that Go zero values cannot express. Call it before submitting package requests or updates that include optimization_goals. OptimizationGoal is a flattened Go representation of the schema oneOf, so branch-specific fields are validated only for the active kind. For example, AttributionWindow is validated for event goals but ignored for metric goals.
type OptimizationGoalAttributionWindow ¶
type OptimizationGoalAttributionWindow struct {
PostClick *Duration `json:"post_click,omitempty"` // Post-click attribution window. Conversions occurring within this duration
PostView *Duration `json:"post_view,omitempty"` // Post-view attribution window. Conversions occurring within this duration after
Model AttributionModel `json:"model,omitempty"` // Attribution model used to assign credit when multiple touchpoints exist.
}
OptimizationGoalAttributionWindow — Attribution window for this optimization goal — references the canonical `attribution-window`
type OptimizationGoalCostPerTarget ¶
type OptimizationGoalCostPerTarget struct {
Kind string `json:"kind"`
Value float64 `json:"value"`
Extra map[string]any `json:"-"`
}
OptimizationGoalCostPerTarget is a target cost per unit of the metric or conversion event. MarshalJSON emits kind=cost_per.
func (OptimizationGoalCostPerTarget) MarshalJSON ¶
func (t OptimizationGoalCostPerTarget) MarshalJSON() ([]byte, error)
func (*OptimizationGoalCostPerTarget) UnmarshalJSON ¶
func (t *OptimizationGoalCostPerTarget) UnmarshalJSON(data []byte) error
type OptimizationGoalEventSource ¶
type OptimizationGoalEventSource struct {
EventSourceID string `json:"event_source_id"` // Event source to include (must be configured on this account via
EventType EventType `json:"event_type"` // Event type to include from this source (e.g., purchase, lead, app_install
CustomEventName string `json:"custom_event_name,omitempty"` // Required when event_type is 'custom'. Platform-specific name for the custom
ValueField string `json:"value_field,omitempty"` // Which field in the event's custom_data carries the monetary value. The seller
ValueFactor *float64 `json:"value_factor,omitempty"` // Multiplier the seller must apply to value_field before aggregation. Use -1 for
}
type OptimizationGoalMaximizeValueTarget ¶
type OptimizationGoalMaximizeValueTarget struct {
Kind string `json:"kind"`
Extra map[string]any `json:"-"`
}
OptimizationGoalMaximizeValueTarget maximizes total conversion value within budget. MarshalJSON emits kind=maximize_value.
func (OptimizationGoalMaximizeValueTarget) MarshalJSON ¶
func (t OptimizationGoalMaximizeValueTarget) MarshalJSON() ([]byte, error)
func (*OptimizationGoalMaximizeValueTarget) UnmarshalJSON ¶
func (t *OptimizationGoalMaximizeValueTarget) UnmarshalJSON(data []byte) error
type OptimizationGoalPerAdSpendTarget ¶
type OptimizationGoalPerAdSpendTarget struct {
Kind string `json:"kind"`
Value float64 `json:"value"`
Extra map[string]any `json:"-"`
}
OptimizationGoalPerAdSpendTarget is a return per unit of ad spend target. MarshalJSON emits kind=per_ad_spend.
func (OptimizationGoalPerAdSpendTarget) MarshalJSON ¶
func (t OptimizationGoalPerAdSpendTarget) MarshalJSON() ([]byte, error)
func (*OptimizationGoalPerAdSpendTarget) UnmarshalJSON ¶
func (t *OptimizationGoalPerAdSpendTarget) UnmarshalJSON(data []byte) error
type OptimizationGoalRawTarget ¶
type OptimizationGoalRawTarget struct {
Kind string `json:"kind,omitempty"`
Extra map[string]any `json:"-"`
}
OptimizationGoalRawTarget preserves unknown future target variants.
func (OptimizationGoalRawTarget) MarshalJSON ¶
func (t OptimizationGoalRawTarget) MarshalJSON() ([]byte, error)
func (*OptimizationGoalRawTarget) UnmarshalJSON ¶
func (t *OptimizationGoalRawTarget) UnmarshalJSON(data []byte) error
type OptimizationGoalTarget ¶
type OptimizationGoalTarget interface {
// contains filtered or unexported methods
}
OptimizationGoalTarget is a typed optimization-goal target variant. Unknown future target objects decode as *OptimizationGoalRawTarget. Go types do not enforce which target kinds are legal for metric vs event goals; sellers should still validate the full OptimizationGoal against the schema and their product capabilities.
type OptimizationGoalTargetFrequency ¶
type OptimizationGoalTargetFrequency struct {
Min int `json:"min,omitempty"` // Minimum frequency for an entity to be considered meaningfully reached within
Max int `json:"max,omitempty"` // Frequency at which an entity is considered saturated within the window.
Window Duration `json:"window"` // Time window over which frequency is measured (e.g. {"interval": 7, "unit"
}
OptimizationGoalTargetFrequency — Target frequency band for reach optimization. Only applicable when metric is 'reach'. Frames
type OptimizationGoalThresholdRateTarget ¶
type OptimizationGoalThresholdRateTarget struct {
Kind string `json:"kind"`
Value float64 `json:"value"`
Extra map[string]any `json:"-"`
}
OptimizationGoalThresholdRateTarget is a minimum per-impression target rate. MarshalJSON emits kind=threshold_rate.
func (OptimizationGoalThresholdRateTarget) MarshalJSON ¶
func (t OptimizationGoalThresholdRateTarget) MarshalJSON() ([]byte, error)
func (*OptimizationGoalThresholdRateTarget) UnmarshalJSON ¶
func (t *OptimizationGoalThresholdRateTarget) UnmarshalJSON(data []byte) error
type OptimizationMetric ¶
type OptimizationMetric = string
OptimizationMetric — Seller-native metric to optimize for. Delivery metrics: clicks (link clicks
const ( OptimizationMetricClicks OptimizationMetric = "clicks" OptimizationMetricViews OptimizationMetric = "views" OptimizationMetricCompletedViews OptimizationMetric = "completed_views" OptimizationMetricViewedSeconds OptimizationMetric = "viewed_seconds" OptimizationMetricAttentionSeconds OptimizationMetric = "attention_seconds" OptimizationMetricAttentionScore OptimizationMetric = "attention_score" OptimizationMetricEngagements OptimizationMetric = "engagements" OptimizationMetricFollows OptimizationMetric = "follows" OptimizationMetricSaves OptimizationMetric = "saves" OptimizationMetricProfileVisits OptimizationMetric = "profile_visits" OptimizationMetricReach OptimizationMetric = "reach" )
func KnownOptimizationMetricValues ¶
func KnownOptimizationMetricValues() []OptimizationMetric
KnownOptimizationMetricValues returns the current schema-defined values for OptimizationMetric.
func ParseOptimizationMetric ¶
func ParseOptimizationMetric(s string) (OptimizationMetric, error)
ParseOptimizationMetric returns s as OptimizationMetric when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type OutcomeMeasurement ¶
type OutcomeMeasurement struct {
Type string `json:"type"` // Type of measurement
Attribution string `json:"attribution"` // Attribution methodology
Window *Duration `json:"window,omitempty"` // Attribution window as a structured duration (e.g., {"interval": 30, "unit"
Reporting string `json:"reporting"` // Reporting frequency and format
}
OutcomeMeasurement — **Deprecated as of this minor.** Predates the unified measurement-vocabulary pattern. Outcome
type OutcomeType ¶
type OutcomeType = string
OutcomeType — The type of outcome reported to a campaign governance agent after a seller
const ( OutcomeTypeCompleted OutcomeType = "completed" OutcomeTypeFailed OutcomeType = "failed" OutcomeTypeDelivery OutcomeType = "delivery" )
func KnownOutcomeTypeValues ¶
func KnownOutcomeTypeValues() []OutcomeType
KnownOutcomeTypeValues returns the current schema-defined values for OutcomeType.
func ParseOutcomeType ¶
func ParseOutcomeType(s string) (OutcomeType, error)
ParseOutcomeType returns s as OutcomeType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Pacing ¶
type Pacing = string
Pacing — Budget pacing strategy
func KnownPacingValues ¶
func KnownPacingValues() []Pacing
KnownPacingValues returns the current schema-defined values for Pacing.
func ParsePacing ¶
ParsePacing returns s as Pacing when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Package ¶
type Package struct {
PackageID string `json:"package_id"` // Seller's unique identifier for the package
ProductID string `json:"product_id,omitempty"` // ID of the product this package is based on. For packages created from an
Budget float64 `json:"budget,omitempty"` // Budget allocation for this package in the currency specified by the pricing
Pacing Pacing `json:"pacing,omitempty"`
PricingOptionID string `json:"pricing_option_id,omitempty"` // ID of the selected pricing option from the product's pricing_options array
BidPrice float64 `json:"bid_price,omitempty"` // Bid price for auction-based pricing. This is the exact bid/price to honor
PriceBreakdown *PriceBreakdown `json:"price_breakdown,omitempty"` // Breakdown of the effective price for this package. On fixed-price packages
Impressions float64 `json:"impressions,omitempty"` // Impression goal for this package
Catalogs []Catalog `json:"catalogs,omitempty"` // Catalogs this package promotes. Each catalog MUST have a distinct type (e.g.
FormatIDs []FormatRef `json:"format_ids,omitempty"` // Legacy named-format IDs supplied for this package on create_media_buy. Sellers
FormatOptionRefs []FormatOptionRef `json:"format_option_refs,omitempty"` // Structured 3.1+ format option references supplied for this package on
FormatKind string `json:"format_kind,omitempty"` // Direct canonical selector supplied for this package on create_media_buy.
Params map[string]any `json:"params,omitempty"` // Parameters for the direct canonical selector in `format_kind`, echoed from the
TargetingOverlay *Targeting `json:"targeting_overlay,omitempty"`
MeasurementTerms *MeasurementTerms `json:"measurement_terms,omitempty"` // Agreed billing measurement and makegood terms for this package. Reflects what
PerformanceStandards []PerformanceStandard `json:"performance_standards,omitempty"` // Agreed performance standards for this package. When any entry specifies a
CommittedMetrics []CommittedMetric `json:"committed_metrics,omitempty"` // The binding reporting contract for this package — what the seller has agreed
CreativeAssignments []CreativeAssignment `json:"creative_assignments,omitempty"` // Creative assets assigned to this package
FormatIDsToProvide []FormatRef `json:"format_ids_to_provide,omitempty"` // Format IDs that creative assets will be provided for this package
OptimizationGoals []OptimizationGoal `json:"optimization_goals,omitempty"` // Optimization targets for this package. The seller optimizes delivery toward
StartTime string `json:"start_time,omitempty"` // Flight start date/time for this package in ISO 8601 format. When omitted, the
EndTime string `json:"end_time,omitempty"` // Flight end date/time for this package in ISO 8601 format. When omitted, the
Paused *bool `json:"paused,omitempty"` // Whether this package is paused by the buyer. Paused packages do not deliver
Canceled *bool `json:"canceled,omitempty"` // Whether this package has been canceled. Canceled packages stop delivery and
Cancellation *PackageCancellation `json:"cancellation,omitempty"` // Cancellation metadata. Present only when canceled is true.
AgencyEstimateNumber string `json:"agency_estimate_number,omitempty"` // Agency estimate or authorization number for this package. Echoed from the
CreativeDeadline string `json:"creative_deadline,omitempty"` // ISO 8601 timestamp for creative upload or change deadline for this package.
Context any `json:"context,omitempty"` // Opaque package-level correlation data echoed unchanged in responses, webhooks
Ext any `json:"ext,omitempty"`
}
Package — A specific product within a media buy (line item)
type PackageAudienceDelivery ¶
type PackageAudienceDelivery struct {
Impressions float64 `json:"impressions"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
AudienceID string `json:"audience_id"` // Audience segment identifier. For 'synced' source, matches audience_id from
AudienceSource AudienceSource `json:"audience_source"` // Origin of the audience segment (synced, platform, third_party, lookalike
AudienceName string `json:"audience_name,omitempty"` // Human-readable audience segment name
}
type PackageCancellation ¶
type PackageCancellation struct {
CanceledAt string `json:"canceled_at"` // ISO 8601 timestamp when this package was canceled.
CanceledBy CanceledBy `json:"canceled_by"` // Which party initiated the package cancellation.
Reason string `json:"reason,omitempty"` // Reason the package was canceled.
AcknowledgedAt string `json:"acknowledged_at,omitempty"` // ISO 8601 timestamp when the seller acknowledged the cancellation. Confirms
}
PackageCancellation — Cancellation metadata. Present only when canceled is true.
type PackageCatalogItemDelivery ¶
type PackageCatalogItemDelivery struct {
Impressions float64 `json:"impressions"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
ContentID string `json:"content_id"` // Catalog item identifier (e.g., SKU, GTIN, job_id, offering_id)
ContentIDType ContentIDType `json:"content_id_type,omitempty"` // Identifier type for this content_id
}
type PackageCreativeApproval ¶
type PackageCreativeDelivery ¶
type PackageCreativeDelivery struct {
Impressions float64 `json:"impressions"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
CreativeID string `json:"creative_id"` // Creative identifier matching the creative assignment
Weight float64 `json:"weight,omitempty"` // Observed delivery share for this creative within the package during the
}
type PackageDailyBreakdown ¶
type PackageDailyBreakdown struct {
Date string `json:"date"` // Date (YYYY-MM-DD)
Impressions float64 `json:"impressions"` // Daily impressions for this package
Spend float64 `json:"spend"` // Daily spend for this package
Conversions float64 `json:"conversions,omitempty"` // Daily conversions for this package
ConversionValue float64 `json:"conversion_value,omitempty"` // Daily conversion value for this package
Roas float64 `json:"roas,omitempty"` // Daily return on ad spend (conversion_value / spend)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Daily fraction of conversions from first-time brand buyers (0 = none, 1 = all)
}
type PackageDelivery ¶
type PackageDelivery struct {
Impressions float64 `json:"impressions,omitempty"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
PackageID string `json:"package_id"` // Seller's package identifier
PacingIndex float64 `json:"pacing_index,omitempty"` // Delivery pace (1.0 = on track, <1.0 = behind, >1.0 = ahead)
PricingModel PricingModel `json:"pricing_model"` // The pricing model used for this package (e.g., cpm, cpcv, cpp). Indicates how
Rate float64 `json:"rate"` // The pricing rate for this package in the specified currency. For fixed-rate
Currency string `json:"currency"` // ISO 4217 currency code (e.g., USD, EUR, GBP) for this package's pricing.
DeliveryStatus string `json:"delivery_status,omitempty"` // System-reported operational state of this package. Reflects actual delivery
Paused *bool `json:"paused,omitempty"` // Whether this package is currently paused by the buyer
IsFinal *bool `json:"is_final,omitempty"` // Whether this delivery data is final for the reporting period. When false, the
FinalizedAt string `json:"finalized_at,omitempty"` // ISO 8601 timestamp at which this package's data became final. Present only
MeasurementWindow string `json:"measurement_window,omitempty"` // Which measurement window this data represents, referencing a window_id from
SupersedesWindow string `json:"supersedes_window,omitempty"` // Which measurement window this data replaces. Present on window_update
MissingMetrics []MissingMetric `json:"missing_metrics,omitempty"` // Metrics that the binding reporting contract declared but that are NOT
ByCatalogItem []PackageCatalogItemDelivery `json:"by_catalog_item,omitempty"` // Delivery by catalog item within this package. Available for catalog-driven
ByCreative []PackageCreativeDelivery `json:"by_creative,omitempty"` // Metrics broken down by creative within this package. Available when the seller
ByKeyword []PackageKeywordDelivery `json:"by_keyword,omitempty"` // Metrics broken down by keyword within this package. One row per (keyword
ByGeo []PackageGeoDelivery `json:"by_geo,omitempty"` // Delivery by geographic area within this package. Available when the buyer
ByGeoTruncated *bool `json:"by_geo_truncated,omitempty"` // Whether by_geo was truncated due to the requested limit or a seller-imposed
ByDeviceType []PackageDeviceTypeDelivery `json:"by_device_type,omitempty"` // Delivery by device form factor within this package. Available when the buyer
ByDeviceTypeTruncated *bool `json:"by_device_type_truncated,omitempty"` // Whether by_device_type was truncated. Sellers MUST return this flag whenever
ByDevicePlatform []PackageDevicePlatformDelivery `json:"by_device_platform,omitempty"` // Delivery by operating system within this package. Available when the buyer
ByDevicePlatformTruncated *bool `json:"by_device_platform_truncated,omitempty"` // Whether by_device_platform was truncated. Sellers MUST return this flag
ByAudience []PackageAudienceDelivery `json:"by_audience,omitempty"` // Delivery by audience segment within this package. Available when the buyer
ByAudienceTruncated *bool `json:"by_audience_truncated,omitempty"` // Whether by_audience was truncated. Sellers MUST return this flag whenever
ByPlacement []PackagePlacementDelivery `json:"by_placement,omitempty"` // Delivery by placement within this package. Available when the buyer requests
ByPlacementTruncated *bool `json:"by_placement_truncated,omitempty"` // Whether by_placement was truncated. Sellers MUST return this flag whenever
DailyBreakdown []PackageDailyBreakdown `json:"daily_breakdown,omitempty"` // Day-by-day delivery for this package. Only present when
}
type PackageDevicePlatformDelivery ¶
type PackageDevicePlatformDelivery struct {
Impressions float64 `json:"impressions"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
DevicePlatform DevicePlatform `json:"device_platform"` // Operating system platform
}
type PackageDeviceTypeDelivery ¶
type PackageDeviceTypeDelivery struct {
Impressions float64 `json:"impressions"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
DeviceType DeviceType `json:"device_type"` // Device form factor (desktop, mobile, tablet, ctv, dooh, unknown)
}
type PackageGeoDelivery ¶
type PackageGeoDelivery struct {
Impressions float64 `json:"impressions"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
GeoLevel GeoLevel `json:"geo_level"` // Geographic level of this entry (country, region, metro, postal_area)
System string `json:"system,omitempty"` // Classification system for metro or postal_area levels. Metro rows use
Country string `json:"country,omitempty"` // ISO 3166-1 alpha-2 country code for native postal_area rows.
GeoCode string `json:"geo_code"` // Geographic code within the level and system. Country: ISO 3166-1 alpha-2
GeoName string `json:"geo_name,omitempty"` // Human-readable geographic name (e.g., 'United States', 'California', 'New York
}
type PackageInput ¶
type PackageInput struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ProductID string `json:"product_id"` // Product ID for this package. Sellers MUST echo this value on every response
FormatIDs []FormatRef `json:"format_ids,omitempty"` // Legacy named-format selector. Array of format IDs that will be used for this
FormatOptionRefs []FormatOptionRef `json:"format_option_refs,omitempty"` // 3.1+ format-option selector. Array of structured format option references
FormatKind string `json:"format_kind,omitempty"` // 3.1+ direct canonical selector. Names the canonical format shape this package
Params map[string]any `json:"params,omitempty"` // Parameters for the direct canonical selector in `format_kind`. Shape follows
Budget float64 `json:"budget"` // Budget allocation for this package in the media buy's currency
Pacing Pacing `json:"pacing,omitempty"`
PricingOptionID string `json:"pricing_option_id"` // ID of the selected pricing option from the product's pricing_options array
BidPrice *float64 `json:"bid_price,omitempty"` // Bid price for auction-based pricing options. This is the exact bid/price to
Impressions *float64 `json:"impressions,omitempty"` // Impression goal for this package
StartTime string `json:"start_time,omitempty"` // Flight start date/time for this package in ISO 8601 format. When omitted, the
EndTime string `json:"end_time,omitempty"` // Flight end date/time for this package in ISO 8601 format. When omitted, the
Paused *bool `json:"paused,omitempty"` // Whether this package should be created in a paused state. Paused packages do
Catalogs []Catalog `json:"catalogs,omitempty"` // Catalogs this package promotes. Each catalog MUST have a distinct type (e.g.
OptimizationGoals []OptimizationGoal `json:"optimization_goals,omitempty"` // Optimization targets for this package. The seller optimizes delivery toward
TargetingOverlay *Targeting `json:"targeting_overlay,omitempty"`
MeasurementTerms *MeasurementTerms `json:"measurement_terms,omitempty"` // Buyer's proposed billing measurement and makegood terms. Overrides product
PerformanceStandards []PerformanceStandard `json:"performance_standards,omitempty"` // Buyer's proposed performance standards for this package. Overrides product
CommittedMetrics []RequestedCommittedMetric `json:"committed_metrics,omitempty"` // Buyer's proposed reporting contract for this package — the metrics the buyer
CreativeAssignments []CreativeAssignment `json:"creative_assignments,omitempty"` // Assign existing library creatives to this package with optional weights and
Creatives []CreativeAsset `json:"creatives,omitempty"` // Upload creative assets inline and assign to this package. When the seller also
AgencyEstimateNumber string `json:"agency_estimate_number,omitempty"` // Agency estimate or authorization number for this package. Overrides the media
Context any `json:"context,omitempty"` // Opaque package-level correlation data echoed unchanged in the package
Ext any `json:"ext,omitempty"`
}
PackageInput — Package configuration for media buy creation
type PackageKeywordDelivery ¶
type PackageKeywordDelivery struct {
Impressions float64 `json:"impressions"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
Keyword string `json:"keyword"` // The targeted keyword
MatchType MatchType `json:"match_type"`
}
type PackagePlacementDelivery ¶
type PackagePlacementDelivery struct {
Impressions float64 `json:"impressions"` // Impressions delivered
Spend float64 `json:"spend"` // Amount spent
Clicks float64 `json:"clicks,omitempty"` // Total clicks
Ctr float64 `json:"ctr,omitempty"` // Click-through rate (clicks/impressions)
Views float64 `json:"views,omitempty"` // Content engagements counted toward the billable view threshold. For video this
CompletedViews float64 `json:"completed_views,omitempty"` // Video/audio completions. When the package has a completed_views optimization
CompletionRate float64 `json:"completion_rate,omitempty"` // Completion rate (completed_views/impressions)
Conversions float64 `json:"conversions,omitempty"` // Total conversions attributed to this delivery. When by_event_type is present
ConversionValue float64 `json:"conversion_value,omitempty"` // Total monetary value of attributed conversions (in the reporting currency)
Roas float64 `json:"roas,omitempty"` // Return on ad spend (conversion_value / spend)
CostPerAcquisition float64 `json:"cost_per_acquisition,omitempty"` // Cost per conversion (spend / conversions)
NewToBrandRate float64 `json:"new_to_brand_rate,omitempty"` // Fraction of `conversions` (transactions) from first-time brand buyers, 0 =
Leads float64 `json:"leads,omitempty"` // Leads generated (convenience alias for by_event_type where event_type='lead')
IncrementalSalesLift float64 `json:"incremental_sales_lift,omitempty"` // Incremental sales lift attributed to the campaign — sales above the
BrandLift float64 `json:"brand_lift,omitempty"` // Brand lift — measured change in a brand metric (awareness, consideration
FootTraffic float64 `json:"foot_traffic,omitempty"` // Store visits attributed to ad exposure. Count of incremental visits over
ConversionLift float64 `json:"conversion_lift,omitempty"` // Incremental conversions attributed to the campaign — conversions above the
BrandSearchLift float64 `json:"brand_search_lift,omitempty"` // Lift in brand search query volume attributed to the campaign — measured via
Plays float64 `json:"plays,omitempty"` // Number of times the ad creative was displayed on a DOOH screen or played in a
ByEventType []DeliveryEventTypeMetrics `json:"by_event_type,omitempty"` // Conversion metrics broken down by event type. Spend-derived metrics (ROAS
Grps float64 `json:"grps,omitempty"` // Gross Rating Points delivered (for CPP)
Reach float64 `json:"reach,omitempty"` // Unique reach in the units specified by reach_unit. When reach_unit is omitted
ReachUnit *ReachUnit `json:"reach_unit,omitempty"` // Unit of measurement for the reach field. Aligns with the reach_unit declared
ReachWindow *ReachWindow `json:"reach_window,omitempty"` // Measurement window for the reported `reach` and `frequency` values in this
Frequency float64 `json:"frequency,omitempty"` // Average frequency per reach unit, measured over the window declared in
QuartileData *DeliveryQuartileData `json:"quartile_data,omitempty"` // Audio/video quartile completion data
DoohMetrics *DeliveryDOOHMetrics `json:"dooh_metrics,omitempty"` // DOOH-specific metrics (only included for DOOH campaigns)
Viewability *DeliveryViewability `json:"viewability,omitempty"` // Viewability metrics. Viewable rate should be calculated as
Engagements float64 `json:"engagements,omitempty"` // Total engagements — direct interactions with the ad beyond viewing. Includes
Follows float64 `json:"follows,omitempty"` // New followers, page likes, artist/podcast/channel follows, or free
Saves float64 `json:"saves,omitempty"` // Saves, bookmarks, playlist adds, pins attributed to this delivery.
ProfileVisits float64 `json:"profile_visits,omitempty"` // Visits to the brand's in-platform page (profile, artist page, channel, or
EngagementRate float64 `json:"engagement_rate,omitempty"` // Platform-specific engagement rate (0.0 to 1.0). Typically
CostPerClick float64 `json:"cost_per_click,omitempty"` // Cost per click (spend / clicks)
CostPerCompletedView float64 `json:"cost_per_completed_view,omitempty"` // Cost per completed view (spend / completed_views). Primary CPCV pricing scalar
CPM float64 `json:"cpm,omitempty"` // Cost per thousand impressions, computed as (spend / impressions) × 1000.
Downloads float64 `json:"downloads,omitempty"` // Audio/podcast downloads (IAB Podcast Measurement Technical Guidelines 2.x
UnitsSold float64 `json:"units_sold,omitempty"` // Items sold attributed to this delivery. Retail-media scalar distinct from
NewToBrandUnits float64 `json:"new_to_brand_units,omitempty"` // Units sold to first-time brand buyers (count, not rate). Retail-media scalar —
ByActionSource []DeliveryActionSourceMetrics `json:"by_action_source,omitempty"` // Conversion metrics broken down by action source (website, app, in_store
VendorMetricValues []VendorMetricValue `json:"vendor_metric_values,omitempty"` // Reported values for vendor-defined metrics that the product's
PlacementID string `json:"placement_id"` // Placement identifier from the product's placements array
PlacementName string `json:"placement_name,omitempty"` // Human-readable placement name
PublisherDomain string `json:"publisher_domain,omitempty"` // Canonical publisher domain whose adagents.json namespace this placement
}
type PackageSignalTargeting ¶
type PackageSignalTargeting struct {
SignalRef *SignalRef `json:"signal_ref,omitempty"` // Named signal being targeted.
ValueType string `json:"value_type,omitempty"` // Discriminator for numeric signals.
Value *bool `json:"value,omitempty"` // Binary package signal entries match users for whom the signal is true. Use the
Values []string `json:"values,omitempty"` // Values to target. Users with any of these values match the expression.
MinValue *float64 `json:"min_value,omitempty"` // Minimum value, inclusive. Omit for no minimum. Should be within the signal
MaxValue *float64 `json:"max_value,omitempty"` // Maximum value, inclusive. Omit for no maximum. Should be within the signal
PricingOptionID string `json:"pricing_option_id,omitempty"` // Pricing option selected for this signal. Use the pricing_option_id from the
SignalAgentSegmentID string `json:"signal_agent_segment_id,omitempty"` // Optional opaque resolved-segment or seller execution handle for this signal.
ActivationKey *ActivationKey `json:"activation_key,omitempty"` // Destination-specific activation key returned by get_signals or
}
PackageSignalTargeting — Buy-time selection of one seller-offered signal inside a package signal targeting group. The
type PackageSignalTargetingGroup ¶
type PackageSignalTargetingGroup struct {
Operator string `json:"operator"` // How to evaluate the signals in this group. 'any' is an OR include group.
Signals []PackageSignalTargeting `json:"signals"` // Signal targeting entries evaluated by this group. Each entry uses the package
}
PackageSignalTargetingGroup — A basic Boolean group of package-level signal targeting entries. 'any' means the user must match
type PackageSignalTargetingGroups ¶
type PackageSignalTargetingGroups struct {
Operator string `json:"operator"` // Groups-level operator. Required even though v1 only supports 'all': every
Groups []PackageSignalTargetingGroup `json:"groups"` // Signal targeting groups to evaluate. Use operator 'any' for include groups and
}
PackageSignalTargetingGroups — Top-level basic Boolean composition for package signal targeting. The groups-level operator is
type PackageSnapshot ¶
type PackageSnapshot struct {
AsOf string `json:"as_of"`
StalenessSeconds int `json:"staleness_seconds"`
Impressions float64 `json:"impressions"`
Spend float64 `json:"spend"`
Currency string `json:"currency,omitempty"`
Clicks float64 `json:"clicks,omitempty"`
PacingIndex float64 `json:"pacing_index,omitempty"`
DeliveryStatus string `json:"delivery_status,omitempty"`
Ext any `json:"ext,omitempty"`
}
type PackageStatus ¶
type PackageStatus struct {
Package
Currency string `json:"currency,omitempty"`
CreativeApprovals []PackageCreativeApproval `json:"creative_approvals,omitempty"`
FormatIDsPending []FormatRef `json:"format_ids_pending,omitempty"`
Snapshot *PackageSnapshot `json:"snapshot,omitempty"`
}
PackageStatus is a package row in get_media_buys. It embeds Package for ergonomic construction from create/update state, but marshals only the fields modeled by the get_media_buys response schema.
func (PackageStatus) MarshalJSON ¶
func (p PackageStatus) MarshalJSON() ([]byte, error)
type PackageUpdate ¶
type PackageUpdate struct {
PackageID string `json:"package_id"` // Seller's ID of package to update
Budget *float64 `json:"budget,omitempty"` // Updated budget allocation for this package in the currency specified by the
Pacing Pacing `json:"pacing,omitempty"`
BidPrice *float64 `json:"bid_price,omitempty"` // Updated bid price for auction-based pricing options. This is the exact
Impressions *float64 `json:"impressions,omitempty"` // Updated impression goal for this package
StartTime string `json:"start_time,omitempty"` // Updated flight start date/time for this package in ISO 8601 format. Must fall
EndTime string `json:"end_time,omitempty"` // Updated flight end date/time for this package in ISO 8601 format. Must fall
Paused *bool `json:"paused,omitempty"` // Pause/resume specific package (true = paused, false = active)
Canceled *bool `json:"canceled,omitempty"` // Cancel this specific package. Cancellation is irreversible — canceled packages
CancellationReason string `json:"cancellation_reason,omitempty"` // Reason for canceling this package.
Catalogs []Catalog `json:"catalogs,omitempty"` // Replace the catalogs this package promotes. Uses replacement semantics — the
OptimizationGoals []OptimizationGoal `json:"optimization_goals,omitempty"` // Replace all optimization goals for this package. Uses replacement semantics —
TargetingOverlay *Targeting `json:"targeting_overlay,omitempty"` // Targeting overlay to apply to this package. Uses replacement semantics — the
KeywordTargetsAdd []KeywordTargetUpdate `json:"keyword_targets_add,omitempty"` // Keyword targets to add or update on this package. Upserts by (keyword
KeywordTargetsRemove []KeywordTargetRef `json:"keyword_targets_remove,omitempty"` // Keyword targets to remove from this package. Removes matching (keyword
NegativeKeywordsAdd []KeywordTargetRef `json:"negative_keywords_add,omitempty"` // Negative keywords to add to this package. Appends to the existing negative
NegativeKeywordsRemove []KeywordTargetRef `json:"negative_keywords_remove,omitempty"` // Negative keywords to remove from this package. Removes matching
CreativeAssignments []CreativeAssignment `json:"creative_assignments,omitempty"` // Replace creative assignments for this package with optional weights and
Creatives []CreativeAsset `json:"creatives,omitempty"` // Replace this package's inline creative assets. When the seller also advertises
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
PackageUpdate — Package update configuration for update_media_buy. Identifies package by package_id and specifies
type PaginationRequest ¶
type PaginationRequest struct {
MaxResults int `json:"max_results,omitempty"` // Maximum number of items to return per page
Cursor string `json:"cursor,omitempty"` // Opaque cursor from a previous response to fetch the next page
}
PaginationRequest — Standard cursor-based pagination parameters for list operations
type PaginationResponse ¶
type PaginationResponse struct {
HasMore bool `json:"has_more"` // Whether more results are available beyond this page
Cursor string `json:"cursor,omitempty"` // Opaque cursor to pass in the next request to fetch the next page. Only present
TotalCount int `json:"total_count,omitempty"` // Total number of items matching the query across all pages. Optional because
}
PaginationResponse — Standard cursor-based pagination metadata for list responses
type PaymentTerms ¶
type PaymentTerms = string
PaymentTerms — Standard payment terms for AdCP accounts
const ( PaymentTermsNet15 PaymentTerms = "net_15" PaymentTermsNet30 PaymentTerms = "net_30" PaymentTermsNet45 PaymentTerms = "net_45" PaymentTermsNet60 PaymentTerms = "net_60" PaymentTermsNet90 PaymentTerms = "net_90" PaymentTermsPrepay PaymentTerms = "prepay" )
func KnownPaymentTermsValues ¶
func KnownPaymentTermsValues() []PaymentTerms
KnownPaymentTermsValues returns the current schema-defined values for PaymentTerms.
func ParsePaymentTerms ¶
func ParsePaymentTerms(s string) (PaymentTerms, error)
ParsePaymentTerms returns s as PaymentTerms when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type PerformanceFeedback ¶
type PerformanceFeedback struct {
FeedbackID string `json:"feedback_id"` // Unique identifier for this performance feedback submission
MediaBuyID string `json:"media_buy_id"` // Publisher's media buy identifier
PackageID string `json:"package_id,omitempty"` // Specific package within the media buy (if feedback is package-specific)
CreativeID string `json:"creative_id,omitempty"` // Specific creative asset (if feedback is creative-specific)
MeasurementPeriod DatetimeRange `json:"measurement_period"` // Time period for performance measurement
PerformanceIndex float64 `json:"performance_index"` // Normalized performance score (0.0 = no value, 1.0 = expected, >1.0 = above
MetricType MetricType `json:"metric_type,omitempty"` // **Deprecated as of this minor.** The legacy free-form metric enum that mixes
Metric map[string]any `json:"metric,omitempty"` // The metric this feedback row pertains to, using the same `(scope, metric_id
FeedbackSource FeedbackSource `json:"feedback_source"` // Source of the performance data
Vendor *BrandReference `json:"vendor,omitempty"` // Vendor that produced this feedback. SHOULD be populated when `feedback_source`
Status string `json:"status"` // Processing status of the performance feedback
SubmittedAt string `json:"submitted_at"` // ISO 8601 timestamp when feedback was submitted
AppliedAt string `json:"applied_at,omitempty"` // ISO 8601 timestamp when feedback was applied to optimization algorithms
}
PerformanceFeedback — Represents performance feedback data for a media buy or package
type PerformanceStandard ¶
type PerformanceStandard struct {
Metric string `json:"metric"`
Threshold float64 `json:"threshold"`
Standard string `json:"standard,omitempty"`
Vendor *BrandReference `json:"vendor"`
}
PerformanceStandard defines a rate threshold for a performance metric.
type PerformanceStandardMetric ¶
type PerformanceStandardMetric = string
PerformanceStandardMetric — Performance metrics that support rate thresholds on media buys — the
const ( PerformanceStandardMetricViewability PerformanceStandardMetric = "viewability" PerformanceStandardMetricIvt PerformanceStandardMetric = "ivt" PerformanceStandardMetricCompletionRate PerformanceStandardMetric = "completion_rate" PerformanceStandardMetricBrandSafety PerformanceStandardMetric = "brand_safety" PerformanceStandardMetricAttentionScore PerformanceStandardMetric = "attention_score" )
func KnownPerformanceStandardMetricValues ¶
func KnownPerformanceStandardMetricValues() []PerformanceStandardMetric
KnownPerformanceStandardMetricValues returns the current schema-defined values for PerformanceStandardMetric.
func ParsePerformanceStandardMetric ¶
func ParsePerformanceStandardMetric(s string) (PerformanceStandardMetric, error)
ParsePerformanceStandardMetric returns s as PerformanceStandardMetric when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Placement ¶
type Placement struct {
Kind string `json:"kind"` // Placement structure discriminator. `publisher_ref` identifies a placement by
PlacementID string `json:"placement_id"` // Placement identifier in the publisher namespace. When `publisher_domain` is
PublisherDomain string `json:"publisher_domain,omitempty"` // Publisher domain whose adagents.json placement declarations define this
Name string `json:"name,omitempty"` // Human-readable name for the placement (e.g., 'Homepage Banner', 'Article
Description string `json:"description,omitempty"` // Detailed description of where and how the placement appears
Mode string `json:"mode"` // Required product-level relationship to this placement. `targetable` means the
Tags []string `json:"tags,omitempty"` // Optional tags for grouping placements within a product (e.g., 'homepage'
FormatIDs []FormatRef `json:"format_ids,omitempty"` // Format IDs supported by this specific placement. Can include: (1) concrete
FormatOptions []ProductFormatDeclaration `json:"format_options,omitempty"` // 3.1+ canonical format-option declarations supported by this specific product
VideoPlacementTypes []VideoPlacementType `json:"video_placement_types,omitempty"` // Declared video placement types for this product placement, using IAB Tech
AudioDistributionTypes []AudioDistributionType `json:"audio_distribution_types,omitempty"` // Declared audio distribution types for this product placement, using IAB Tech
SponsoredPlacementTypes []SponsoredPlacementType `json:"sponsored_placement_types,omitempty"` // Declared sponsored-placement types for this product placement, distinguishing
SocialPlacementSurfaces []SocialPlacementSurface `json:"social_placement_surfaces,omitempty"` // Declared social-placement surfaces for this product placement, distinguishing
}
Placement — Represents a specific public ad placement within a product's inventory. Placement IDs are scoped
type PlacementRef ¶
type PlacementRef struct {
PublisherDomain string `json:"publisher_domain,omitempty"` // Domain where the adagents.json declaring this placement is hosted. Omitted
PlacementID string `json:"placement_id"` // Placement ID from the publisher's adagents.json placement catalog, or an
}
PlacementRef — Reference to a placement by publisher domain and placement ID. Placement IDs are publisher-scoped
type Plan ¶
type Plan struct {
PlanID string `json:"plan_id"`
Brand *BrandReference `json:"brand"`
Objectives string `json:"objectives"`
Budget PlanBudget `json:"budget"`
Channels *PlanChannels `json:"channels,omitempty"`
Flight PlanFlight `json:"flight"`
Countries []string `json:"countries,omitempty"`
Regions []string `json:"regions,omitempty"`
PolicyIDs []string `json:"policy_ids,omitempty"`
PolicyCategories []string `json:"policy_categories,omitempty"`
Audience *AudienceConstraints `json:"audience,omitempty"`
RestrictedAttributes []RestrictedAttribute `json:"restricted_attributes,omitempty"`
RestrictedAttributesCustom []string `json:"restricted_attributes_custom,omitempty"`
MinAudienceSize int `json:"min_audience_size,omitempty"`
HumanReviewRequired bool `json:"human_review_required,omitempty"`
HumanOverride *HumanOverride `json:"human_override,omitempty"`
CustomPolicies []PolicyEntry `json:"custom_policies,omitempty"`
ApprovedSellers []string `json:"approved_sellers,omitempty"`
Delegations []PlanDelegation `json:"delegations,omitempty"`
Portfolio *PlanPortfolio `json:"portfolio,omitempty"`
Ext map[string]any `json:"ext,omitempty"`
}
Plan is a campaign governance plan — the authorized parameters for a campaign. Inline nested object in sync_plans_request.plans; must be hand-written because the generator does not descend into inline arrays.
func (*Plan) Validate ¶
func (p *Plan) Validate() []PlanValidationError
Validate enforces the cross-field invariants that the AdCP governance schema encodes as oneOf and if/then rules plus defense-in-depth size caps. Callers should run Validate before submitting a plan to a governance agent; governance-agent implementors MUST run it on receipt — Validate is advisory, not enforcing, and an agent that skips it accepts plans that violate the schema's load-bearing human-oversight invariants.
Enforced invariants:
- budget.reallocation_threshold XOR budget.reallocation_unlimited must be set
- policy_categories ∋ regulated vertical ⇒ human_review_required = true (case- and whitespace-insensitive to catch common obfuscations)
- policy_ids ∋ eu_ai_act_annex_iii ⇒ human_review_required = true (ditto)
- objectives ≤ 2000 chars (schema maxLength)
- custom_policies[].policy ≤ 5000 chars; .description ≤ 500 chars
- human_override.reason ≥ 20 chars; .approver parses as an email address; .approved_at parses as RFC 3339 when non-empty
- portfolio.member_plan_ids required when portfolio is set
- delegations[].agent_url and .authority required
- brand.data_subject_contestation URL must be https; email must parse
Not enforced (governance-agent responsibility): semantic industry matching, prompt-injection content filtering beyond size, registry vs inline policy segmentation in LLM prompts.
Returns nil when the plan has no violations. Errors use stable codes — callers embedding Validate in a server should return the code, not the raw message, to avoid leaking the untrusted input values back to the caller.
type PlanAuditBudget ¶
type PlanAuditBudget struct {
Authorized *float64 `json:"authorized,omitempty"` // Total authorized budget from the plan.
Committed *float64 `json:"committed,omitempty"` // Total budget committed from confirmed outcomes.
Remaining *float64 `json:"remaining,omitempty"` // Authorized minus committed.
UtilizationPct *float64 `json:"utilization_pct,omitempty"` // Committed as a percentage of authorized.
}
PlanAuditBudget — Budget state.
type PlanAuditDriftMetrics ¶
type PlanAuditDriftMetrics struct {
EscalationRate *float64 `json:"escalation_rate,omitempty"` // Fraction of checks that resulted in escalation.
EscalationRateTrend string `json:"escalation_rate_trend,omitempty"` // Direction of escalation rate over the plan's lifetime.
AutoApprovalRate *float64 `json:"auto_approval_rate,omitempty"` // Fraction of checks approved without human intervention.
HumanOverrideRate *float64 `json:"human_override_rate,omitempty"` // Fraction of escalations where the human overrode the governance agent's
MeanConfidence *float64 `json:"mean_confidence,omitempty"` // Average confidence score across all findings. Present when findings include
Thresholds *PlanAuditDriftThresholds `json:"thresholds,omitempty"` // Organization-defined thresholds for drift metrics. When a metric crosses its
}
PlanAuditDriftMetrics — Aggregate governance metrics for detecting oversight drift. A declining escalation rate may
type PlanAuditDriftThresholds ¶
type PlanAuditDriftThresholds struct {
EscalationRateMax *float64 `json:"escalation_rate_max,omitempty"` // Maximum acceptable escalation rate. A rate above this suggests policy
EscalationRateMin *float64 `json:"escalation_rate_min,omitempty"` // Minimum acceptable escalation rate. A rate below this may indicate eroding
AutoApprovalRateMax *float64 `json:"auto_approval_rate_max,omitempty"` // Maximum acceptable auto-approval rate.
HumanOverrideRateMax *float64 `json:"human_override_rate_max,omitempty"` // Maximum acceptable human override rate. A high rate suggests the governance
}
PlanAuditDriftThresholds — Organization-defined thresholds for drift metrics. When a metric crosses its threshold, the
type PlanAuditEntry ¶
type PlanAuditEntry struct {
ID string `json:"id"` // Entry identifier.
Type string `json:"type"` // Entry type.
Timestamp string `json:"timestamp"` // ISO 8601 timestamp.
PlanID string `json:"plan_id,omitempty"` // Plan this entry belongs to. Present when querying multiple plans or a portfolio.
Caller string `json:"caller,omitempty"` // URL of the agent that made the request. Resolved from the credentials used on
Tool string `json:"tool,omitempty"` // The AdCP tool (present for check entries).
Verdict *GovernanceDecision `json:"verdict,omitempty"` // Governance verdict (present for check entries). Renamed from `status` in 3.1
CheckType string `json:"check_type,omitempty"` // Whether the check was an intent check (orchestrator) or execution check
Mode *GovernanceMode `json:"mode,omitempty"` // Governance mode active at the moment this specific check was evaluated.
Explanation string `json:"explanation,omitempty"` // Human-readable explanation of the governance decision (present for check
PoliciesEvaluated []string `json:"policies_evaluated,omitempty"` // Policy IDs evaluated during this check. Includes registry policy IDs (resolved
CategoriesEvaluated []string `json:"categories_evaluated,omitempty"` // Governance categories evaluated (e.g., 'budget_authority'
Findings []PlanAuditFinding `json:"findings,omitempty"` // Findings from this check or outcome. Same structure as check_governance
Outcome *OutcomeType `json:"outcome,omitempty"` // Outcome type (present for outcome entries).
CommittedBudget *float64 `json:"committed_budget,omitempty"` // Budget committed (present for completed outcome entries).
GovernanceContext string `json:"governance_context,omitempty"` // Governance context for this entry (present for check and outcome entries).
PlanHash string `json:"plan_hash,omitempty"` // Audit-layer binding to the plan revision this attestation was evaluated over —
PurchaseType *PurchaseType `json:"purchase_type,omitempty"` // Purchase type for this entry.
OutcomeStatus string `json:"outcome_status,omitempty"` // Outcome status (present for outcome entries).
}
type PlanAuditEscalation ¶
type PlanAuditEscalation struct {
CheckID string `json:"check_id"` // The escalated governance check.
Reason string `json:"reason"` // Why it was escalated.
Resolution string `json:"resolution,omitempty"` // How it was resolved (e.g., 'approved_by_human', 'rejected_by_human').
ResolvedAt string `json:"resolved_at,omitempty"` // ISO 8601 resolution timestamp.
}
type PlanAuditFinding ¶
type PlanAuditFinding struct {
CategoryID string `json:"category_id"`
PolicyID string `json:"policy_id,omitempty"`
Severity EscalationSeverity `json:"severity"`
Explanation string `json:"explanation"`
Confidence *float64 `json:"confidence,omitempty"`
}
type PlanAuditGovernedAction ¶
type PlanAuditGovernedAction struct {
GovernanceContext string `json:"governance_context"` // Governance context correlating this action's lifecycle.
PurchaseType PurchaseType `json:"purchase_type"` // Type of financial commitment.
Status string `json:"status"` // Action status.
Committed float64 `json:"committed"` // Budget committed for this action.
CheckCount int `json:"check_count"` // Number of governance checks performed for this action.
SellerReference string `json:"seller_reference,omitempty"` // The seller's identifier for the resource (e.g., media_buy_id
}
type PlanAuditLog ¶
type PlanAuditLog struct {
PlanID string `json:"plan_id"` // Plan identifier.
PlanVersion int `json:"plan_version"` // Current plan version.
Status string `json:"status"` // Plan lifecycle status.
Budget PlanAuditBudget `json:"budget"` // Budget state.
ChannelAllocation map[string]PlanAuditChannelAllocation `json:"channel_allocation,omitempty"` // Current channel mix. Keyed by channel ID.
Summary PlanAuditSummary `json:"summary"` // Aggregate validation and outcome statistics.
Entries []PlanAuditEntry `json:"entries,omitempty"` // Ordered audit trail. Only present when include_entries is true.
GovernedActions []PlanAuditGovernedAction `json:"governed_actions"` // Per-action breakdown grouped by governance context.
}
type PlanAuditStatusCounts ¶
type PlanAuditStatusCounts struct {
Approved *int `json:"approved,omitempty"`
Denied *int `json:"denied,omitempty"`
Conditions *int `json:"conditions,omitempty"`
HumanReviewed *int `json:"human_reviewed,omitempty"` // Supplementary count of checks that went through internal human review. These
}
PlanAuditStatusCounts — Count of each governance check status.
type PlanAuditSummary ¶
type PlanAuditSummary struct {
ChecksPerformed *int `json:"checks_performed,omitempty"` // Total governance checks performed.
OutcomesReported *int `json:"outcomes_reported,omitempty"` // Total outcomes reported.
Statuses *PlanAuditStatusCounts `json:"statuses,omitempty"` // Count of each governance check status.
FindingsCount *int `json:"findings_count,omitempty"` // Total findings across all checks and outcomes.
Escalations []PlanAuditEscalation `json:"escalations,omitempty"` // All escalations and their resolutions.
DriftMetrics *PlanAuditDriftMetrics `json:"drift_metrics,omitempty"` // Aggregate governance metrics for detecting oversight drift. A declining
}
PlanAuditSummary — Aggregate validation and outcome statistics.
type PlanBudget ¶
type PlanBudget struct {
Total float64 `json:"total"`
Currency string `json:"currency"`
PerSellerMaxPct float64 `json:"per_seller_max_pct,omitempty"`
ReallocationThreshold *float64 `json:"reallocation_threshold,omitempty"`
ReallocationUnlimited bool `json:"reallocation_unlimited,omitempty"`
Allocations map[string]PlanBudgetAllocation `json:"allocations,omitempty"`
}
PlanBudget authorizes spend for a plan. Exactly one of ReallocationThreshold or ReallocationUnlimited must be set (the schema's oneOf constraint). Use Validate to enforce this invariant at runtime; struct types alone cannot.
type PlanBudgetAllocation ¶
type PlanBudgetAllocation struct {
Amount float64 `json:"amount,omitempty"`
MaxPct float64 `json:"max_pct,omitempty"`
}
PlanBudgetAllocation caps spend for a single purchase type within a plan.
type PlanChannelMixTarget ¶
type PlanChannelMixTarget struct {
MinPct float64 `json:"min_pct,omitempty"`
MaxPct float64 `json:"max_pct,omitempty"`
}
PlanChannelMixTarget is a per-channel target allocation range.
type PlanChannels ¶
type PlanChannels struct {
Required []string `json:"required,omitempty"`
Allowed []string `json:"allowed,omitempty"`
MixTargets map[string]PlanChannelMixTarget `json:"mix_targets,omitempty"`
}
PlanChannels constrains channel selection for a plan.
type PlanDelegation ¶
type PlanDelegation struct {
AgentURL string `json:"agent_url"`
Authority string `json:"authority"`
BudgetLimit *PlanDelegationBudget `json:"budget_limit,omitempty"`
Markets []string `json:"markets,omitempty"`
ExpiresAt string `json:"expires_at,omitempty"`
}
PlanDelegation grants an agent authority to execute against a plan.
type PlanDelegationBudget ¶
type PlanDelegationBudget struct {
Amount float64 `json:"amount"`
Currency string `json:"currency"`
}
PlanDelegationBudget caps the budget a delegated agent can commit.
type PlanFlight ¶
PlanFlight defines the authorized flight window (ISO 8601 timestamps).
type PlanPortfolio ¶
type PlanPortfolio struct {
MemberPlanIDs []string `json:"member_plan_ids"`
TotalBudgetCap *PlanPortfolioBudgetCap `json:"total_budget_cap,omitempty"`
}
PlanPortfolio marks a plan as a portfolio plan governing member plans.
type PlanPortfolioBudgetCap ¶
type PlanPortfolioBudgetCap struct {
Amount float64 `json:"amount"`
Currency string `json:"currency"`
}
PlanPortfolioBudgetCap caps aggregate spend across member plans.
type PlanValidationError ¶
PlanValidationError describes a single invariant violation on a Plan. Field is a JSON pointer-style path; Code is a stable machine-readable token suitable for direct mapping to AdCP INVALID_FIELD error responses.
func (PlanValidationError) Error ¶
func (e PlanValidationError) Error() string
type PlannedDelivery ¶
type PlannedDelivery struct {
Geo *PlannedDeliveryGeo `json:"geo,omitempty"` // Geographic targeting the seller will apply.
Channels []Channels `json:"channels,omitempty"` // Channels the seller will deliver on.
StartTime string `json:"start_time,omitempty"` // Actual flight start the seller will use.
EndTime string `json:"end_time,omitempty"` // Actual flight end the seller will use.
FrequencyCap *FrequencyCap `json:"frequency_cap,omitempty"` // Frequency cap the seller will apply.
AudienceSummary string `json:"audience_summary,omitempty"` // Human-readable summary of the audience the seller will target.
AudienceTargeting []AudienceSelector `json:"audience_targeting,omitempty"` // Structured audience targeting the seller will activate. Each entry is either a
TotalBudget float64 `json:"total_budget,omitempty"` // Total budget the seller will deliver against.
Currency string `json:"currency,omitempty"` // ISO 4217 currency code for the budget.
EnforcedPolicies []string `json:"enforced_policies,omitempty"` // Registry policy IDs the seller will enforce for this delivery.
Ext any `json:"ext,omitempty"`
}
PlannedDelivery — The seller's interpreted delivery parameters for a media buy. Represents what the seller will
type PlannedDeliveryGeo ¶
type PlannedDeliveryGeo struct {
Countries []string `json:"countries,omitempty"` // ISO 3166-1 alpha-2 country codes where ads will deliver.
Regions []string `json:"regions,omitempty"` // ISO 3166-2 subdivision codes where ads will deliver.
}
PlannedDeliveryGeo — Geographic targeting the seller will apply.
type PlatformExtensionRef ¶
type PlatformExtensionRef struct {
URI string `json:"uri"` // HTTPS URL identifying the extension. `https://` is mandatory — `http://`
Digest string `json:"digest"` // SHA-256 content digest of the extension definition (sha256:<hex>). Used to
}
PlatformExtensionRef — Reference to a platform extension definition. The agent that owns the URI is authoritative for the
type PolicyCategory ¶
type PolicyCategory = string
PolicyCategory — The nature of the obligation a policy represents.
const ( PolicyCategoryRegulation PolicyCategory = "regulation" PolicyCategoryStandard PolicyCategory = "standard" )
func KnownPolicyCategoryValues ¶
func KnownPolicyCategoryValues() []PolicyCategory
KnownPolicyCategoryValues returns the current schema-defined values for PolicyCategory.
func ParsePolicyCategory ¶
func ParsePolicyCategory(s string) (PolicyCategory, error)
ParsePolicyCategory returns s as PolicyCategory when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type PolicyCategoryDefinition ¶
type PolicyCategoryDefinition struct {
CategoryID string `json:"category_id"` // Unique identifier for this category. Used in plan.policy_categories
Name string `json:"name"` // Human-readable name (e.g., 'Children-Directed Content').
Description string `json:"description"` // What this category covers. Defines the boundary — what campaigns or data fall
RegulatoryFrameworks []PolicyRegulatoryFramework `json:"regulatory_frameworks,omitempty"` // Key regulations and standards grouped under this category. Governance agents
RestrictedAttributes []RestrictedAttribute `json:"restricted_attributes,omitempty"` // Restricted attribute categories that regulations in this category prohibit for
RequiresHumanReview *bool `json:"requires_human_review,omitempty"` // When true, any plan declaring this category MUST set
Industries []string `json:"industries,omitempty"` // Industries where this category commonly applies (e.g., 'pharmaceutical' for
Guidance string `json:"guidance,omitempty"` // Implementation notes for governance agents. Edge cases, disambiguation, and
RelatedCategories []string `json:"related_categories,omitempty"` // Categories that frequently co-occur (e.g., 'children_directed' often appears
}
PolicyCategoryDefinition — Definition of a policy category in the registry. Policy categories group related regulatory
type PolicyEnforcement ¶
type PolicyEnforcement = string
PolicyEnforcement — How governance agents treat violations of a policy. Uses RFC 2119 keywords.
const ( PolicyEnforcementMust PolicyEnforcement = "must" PolicyEnforcementShould PolicyEnforcement = "should" PolicyEnforcementMay PolicyEnforcement = "may" )
func KnownPolicyEnforcementValues ¶
func KnownPolicyEnforcementValues() []PolicyEnforcement
KnownPolicyEnforcementValues returns the current schema-defined values for PolicyEnforcement.
func ParsePolicyEnforcement ¶
func ParsePolicyEnforcement(s string) (PolicyEnforcement, error)
ParsePolicyEnforcement returns s as PolicyEnforcement when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type PolicyEntry ¶
type PolicyEntry struct {
PolicyID string `json:"policy_id"` // Unique identifier for this policy. Registry-published ids are canonical (e.g.
Source string `json:"source,omitempty"` // Origin of this policy. 'registry' = published to the shared AdCP policy
Version string `json:"version,omitempty"` // Semver version string (e.g., "1.0.0"). Incremented when policy content
Name string `json:"name,omitempty"` // Human-readable name (e.g., "UK HFSS Restrictions"). Optional for inline
Description string `json:"description,omitempty"` // Brief summary of what this policy covers.
Category PolicyCategory `json:"category,omitempty"` // The nature of the obligation: regulation (legal requirement) or standard (best
Enforcement PolicyEnforcement `json:"enforcement"` // How governance agents treat violations. Regulations are typically "must"
RequiresHumanReview *bool `json:"requires_human_review,omitempty"` // When true, plans subject to this policy MUST set plan.human_review_required =
Jurisdictions []string `json:"jurisdictions,omitempty"` // ISO 3166-1 alpha-2 country codes where this policy applies. Empty array means
RegionAliases map[string][]string `json:"region_aliases,omitempty"` // Named groups of jurisdictions for convenience (e.g., {"EU"
PolicyCategories []string `json:"policy_categories,omitempty"` // Regulatory categories this policy belongs to (e.g., ["children_directed"
Channels []Channels `json:"channels,omitempty"` // Advertising channels this policy applies to. If omitted or null, the policy
GovernanceDomains []GovernanceDomain `json:"governance_domains,omitempty"` // Governance sub-domains this policy applies to. Determines which types of
EffectiveDate string `json:"effective_date,omitempty"` // ISO 8601 date when the regulation or standard takes effect. Before this date
SunsetDate string `json:"sunset_date,omitempty"` // ISO 8601 date when the regulation or standard is no longer enforced. After
SourceURL string `json:"source_url,omitempty"` // Link to the source regulation, standard, or legislation.
SourceName string `json:"source_name,omitempty"` // Name of the issuing body (e.g., "UK Food Standards Agency", "US Federal Trade
Policy string `json:"policy"` // Natural language policy text describing what is required, prohibited, or
Guidance string `json:"guidance,omitempty"` // Implementation notes for governance agent developers. Not used in evaluation
Exemplars *PolicyExemplars `json:"exemplars,omitempty"` // Calibration examples for governance agents, following the Content Standards
Ext any `json:"ext,omitempty"`
}
PolicyEntry — A policy — either published to the shared registry (with full regulatory metadata) or authored
type PolicyExemplar ¶
type PolicyExemplars ¶
type PolicyExemplars struct {
Pass []PolicyExemplar `json:"pass,omitempty"` // Scenarios that comply with this policy.
Fail []PolicyExemplar `json:"fail,omitempty"` // Scenarios that violate this policy.
}
PolicyExemplars — Calibration examples for governance agents, following the Content Standards pattern.
type PolicyRegulatoryFramework ¶
type PolicyRegulatoryFramework struct {
Name string `json:"name"` // Name of the regulation or standard (e.g., 'US COPPA').
Jurisdictions []string `json:"jurisdictions,omitempty"` // ISO 3166-1 alpha-2 codes where this framework applies.
Summary string `json:"summary"` // Brief summary of what the framework requires or prohibits.
PolicyIDs []string `json:"policy_ids,omitempty"` // Registry policy IDs that implement this framework.
}
type PortfolioCaps ¶
type PortfolioCaps struct {
PublisherDomains []string `json:"publisher_domains"`
PrimaryChannels []string `json:"primary_channels,omitempty"`
PrimaryCountries []string `json:"primary_countries,omitempty"`
Description string `json:"description,omitempty"`
AdvertisingPolicies string `json:"advertising_policies,omitempty"`
}
PortfolioCaps describes the seller's inventory portfolio. publisher_domains is required when present.
type PostalSystem ¶
type PostalSystem = string
PostalSystem — Postal code system names for geographic targeting. Prefer country-local values
const ( PostalSystemPostalCode PostalSystem = "postal_code" PostalSystemZip PostalSystem = "zip" PostalSystemZipPlusFour PostalSystem = "zip_plus_four" PostalSystemOutward PostalSystem = "outward" PostalSystemFull PostalSystem = "full" PostalSystemFsa PostalSystem = "fsa" PostalSystemPlz PostalSystem = "plz" PostalSystemCodePostal PostalSystem = "code_postal" PostalSystemPostcode PostalSystem = "postcode" PostalSystemCep PostalSystem = "cep" PostalSystemPin PostalSystem = "pin" PostalSystemCustom PostalSystem = "custom" PostalSystemUsZip PostalSystem = "us_zip" PostalSystemUsZipPlusFour PostalSystem = "us_zip_plus_four" PostalSystemGbOutward PostalSystem = "gb_outward" PostalSystemGbFull PostalSystem = "gb_full" PostalSystemCaFsa PostalSystem = "ca_fsa" PostalSystemCaFull PostalSystem = "ca_full" PostalSystemDePlz PostalSystem = "de_plz" PostalSystemFrCodePostal PostalSystem = "fr_code_postal" PostalSystemAuPostcode PostalSystem = "au_postcode" PostalSystemChPlz PostalSystem = "ch_plz" PostalSystemAtPlz PostalSystem = "at_plz" )
func KnownPostalSystemValues ¶
func KnownPostalSystemValues() []PostalSystem
KnownPostalSystemValues returns the current schema-defined values for PostalSystem.
func ParsePostalSystem ¶
func ParsePostalSystem(s string) (PostalSystem, error)
ParsePostalSystem returns s as PostalSystem when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Preview ¶
type Preview struct {
PreviewID string `json:"preview_id"`
Input map[string]any `json:"input"`
Renders []PreviewRender `json:"renders"`
}
type PreviewCreativeBatchRequest ¶
type PreviewCreativeBatchRequest struct {
FormatID *FormatRef `json:"format_id,omitempty"` // Format identifier for rendering the preview. Defaults to
CreativeManifest CreativeManifest `json:"creative_manifest"` // Complete creative manifest with all required assets.
Inputs []PreviewCreativeInput `json:"inputs,omitempty"` // Array of input sets for generating multiple preview variants
TemplateID string `json:"template_id,omitempty"` // Specific template ID for custom format rendering
Quality CreativeQuality `json:"quality,omitempty"` // Render quality for this preview. Overrides batch-level default.
OutputFormat PreviewOutputFormat `json:"output_format,omitempty"` // Output format for this preview. Overrides batch-level default.
ItemLimit int `json:"item_limit,omitempty"` // Maximum number of catalog items to render in this preview.
}
type PreviewCreativeInput ¶
type PreviewCreativeInput struct {
Name string `json:"name"` // Human-readable name for this input set (e.g., 'Sunny morning on mobile'
Macros map[string]string `json:"macros,omitempty"` // Macro values to use for this preview. Supports all universal macros from the
ContextDescription string `json:"context_description,omitempty"` // Natural language description of the context for AI-generated content (e.g.
}
type PreviewCreativeRequest ¶
type PreviewCreativeRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
RequestType string `json:"request_type"` // Preview mode. 'single' previews one creative manifest. 'batch' previews
CreativeManifest *CreativeManifest `json:"creative_manifest,omitempty"` // Complete creative manifest with all required assets for the format. Required
FormatID *FormatRef `json:"format_id,omitempty"` // Always a structured object {agent_url, id} — never a plain string. Format
Inputs []PreviewCreativeInput `json:"inputs,omitempty"` // Array of input sets for generating multiple preview variants. Each input set
TemplateID string `json:"template_id,omitempty"` // Specific template ID for custom format rendering. Used in single mode.
Quality CreativeQuality `json:"quality,omitempty"` // Render quality. 'draft' produces fast, lower-fidelity renderings. 'production'
OutputFormat PreviewOutputFormat `json:"output_format,omitempty"` // Output format. 'url' returns preview_url (iframe-embeddable URL), 'html'
ItemLimit int `json:"item_limit,omitempty"` // Maximum number of catalog items to render per preview variant. Used in single
Requests []PreviewCreativeBatchRequest `json:"requests,omitempty"` // Array of preview requests (1-50 items). Required when request_type is 'batch'.
VariantID string `json:"variant_id,omitempty"` // Platform-assigned variant identifier from get_creative_delivery response.
CreativeID string `json:"creative_id,omitempty"` // Creative identifier for context. Used in variant mode.
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
PreviewCreativeRequest — Request to generate previews of creative manifests. Uses request_type to select single, batch, or
type PreviewOutputFormat ¶
type PreviewOutputFormat = string
PreviewOutputFormat — Output format for creative previews
const ( PreviewOutputFormatURL PreviewOutputFormat = "url" PreviewOutputFormatHTML PreviewOutputFormat = "html" )
func KnownPreviewOutputFormatValues ¶
func KnownPreviewOutputFormatValues() []PreviewOutputFormat
KnownPreviewOutputFormatValues returns the current schema-defined values for PreviewOutputFormat.
func ParsePreviewOutputFormat ¶
func ParsePreviewOutputFormat(s string) (PreviewOutputFormat, error)
ParsePreviewOutputFormat returns s as PreviewOutputFormat when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type PreviewRender ¶
type PreviewResult ¶
type PriceAdjustment ¶
type PriceAdjustment struct {
Kind AdjustmentKind `json:"kind"`
Name string `json:"name"` // Specific adjustment name. Use well-known values where applicable for
Rate float64 `json:"rate,omitempty"` // Adjustment as a decimal proportion (e.g., 0.15 for 15%). Always positive —
Amount float64 `json:"amount,omitempty"` // Adjustment as a fixed monetary amount in the pricing option's currency. Always
Description string `json:"description,omitempty"` // Human-readable description of this adjustment (e.g., 'Malstaffel 12x', '2%
Beneficiary string `json:"beneficiary,omitempty"` // Identifies who receives this adjustment's value. For commissions, the
}
type PriceBreakdown ¶
type PriceBreakdown struct {
ListPrice float64 `json:"list_price"` // Rate card or base price before any adjustments. The starting point from which
Adjustments []PriceAdjustment `json:"adjustments"` // Ordered list of price adjustments. Fee and discount adjustments walk
}
PriceBreakdown — Breaks down the composition of fixed_price from a list (rate card) price through adjustments.
type PricingModel ¶
type PricingModel = string
PricingModel — Supported pricing models for advertising products
const ( PricingModelCPM PricingModel = "cpm" PricingModelVcpm PricingModel = "vcpm" PricingModelCPC PricingModel = "cpc" PricingModelCpcv PricingModel = "cpcv" PricingModelCpv PricingModel = "cpv" PricingModelCpp PricingModel = "cpp" PricingModelCPA PricingModel = "cpa" PricingModelFlatRate PricingModel = "flat_rate" PricingModelTime PricingModel = "time" )
func KnownPricingModelValues ¶
func KnownPricingModelValues() []PricingModel
KnownPricingModelValues returns the current schema-defined values for PricingModel.
func ParsePricingModel ¶
func ParsePricingModel(s string) (PricingModel, error)
ParsePricingModel returns s as PricingModel when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type PricingOption ¶
type PricingOption struct {
PricingOptionID string `json:"pricing_option_id"`
PricingModel string `json:"pricing_model"`
Currency string `json:"currency"`
FixedPrice *float64 `json:"fixed_price,omitempty"`
FloorPrice float64 `json:"floor_price,omitempty"`
MinSpendPerPackage float64 `json:"min_spend_per_package,omitempty"`
MaxBid *bool `json:"max_bid,omitempty"`
PriceGuidance any `json:"price_guidance,omitempty"`
PriceBreakdown any `json:"price_breakdown,omitempty"`
EventSourceID string `json:"event_source_id,omitempty"`
EventType string `json:"event_type,omitempty"`
CustomEventName string `json:"custom_event_name,omitempty"`
EligibleAdjustments []string `json:"eligible_adjustments,omitempty"`
Parameters any `json:"parameters,omitempty"`
}
PricingOption is the flattened union of all variants in pricing-option.json. The schema is a oneOf of 9 pricing models (cpm, vcpm, cpc, cpcv, cpv, cpp, cpa, flat_rate, time); the Go representation carries every variant's fields so a single struct type can be constructed for any model. PricingModel is the discriminator; callers MUST only set fields that apply to their model.
Fields by variant:
cpm / vcpm / cpc / cpcv / cpv / cpp: FixedPrice present for fixed-price models OR FloorPrice + PriceGuidance for auction models; MaxBid for auction models to interpret bid_price as a ceiling. cpa: FixedPrice present, EventSourceID, EventType; CustomEventName when EventType="custom"; EligibleAdjustments for adjustment filtering. flat_rate: FixedPrice present. time: FixedPrice present, Parameters for duration/unit specifics. All variants: PricingOptionID, Currency, MinSpendPerPackage, PriceBreakdown.
FixedPrice is a pointer because the schema oneOf requires field presence for fixed-price variants. Go represents that presence with non-nil; use Float64(0) if an explicit zero fixed price is intentional.
type Product ¶
type Product struct {
ProductID string `json:"product_id"` // Unique identifier for the product
Name string `json:"name"` // Human-readable product name
Description string `json:"description"` // Detailed description of the product and its inventory
PublisherProperties []PublisherPropertySelector `json:"publisher_properties"` // SDK implementers MUST enforce singular-only at runtime: each entry uses the
Channels []Channels `json:"channels,omitempty"` // Advertising channels this product is sold as. Products inherit from their
FormatIDs []FormatRef `json:"format_ids,omitempty"` // Legacy named-format path: array of supported creative format IDs (structured
FormatOptions []ProductFormatDeclaration `json:"format_options,omitempty"` // 3.1+ format-option path: one or more inline format declarations the product
Placements []Placement `json:"placements,omitempty"` // Optional array of specific public placements within this product. Placement
VideoPlacementTypes []VideoPlacementType `json:"video_placement_types,omitempty"` // Declared video placement types that may be included in this product, using IAB
AudioDistributionTypes []AudioDistributionType `json:"audio_distribution_types,omitempty"` // Declared audio distribution types that may be included in this product, using
SponsoredPlacementTypes []SponsoredPlacementType `json:"sponsored_placement_types,omitempty"` // Declared sponsored-placement types that may be included in this product
SocialPlacementSurfaces []SocialPlacementSurface `json:"social_placement_surfaces,omitempty"` // Declared social-placement surfaces that may be included in this product
DeliveryType DeliveryType `json:"delivery_type"`
Exclusivity Exclusivity `json:"exclusivity,omitempty"` // Whether this product offers exclusive access to its inventory. Defaults to
PricingOptions []PricingOption `json:"pricing_options"` // Available pricing models for this product
Forecast *DeliveryForecast `json:"forecast,omitempty"` // Forecasted delivery metrics for this product. Gives buyers an estimate of
OutcomeMeasurement *OutcomeMeasurement `json:"outcome_measurement,omitempty"` // **Deprecated as of this minor.** Outcome capabilities (incremental sales lift
DeliveryMeasurement *ProductDeliveryMeasurement `json:"delivery_measurement,omitempty"` // Measurement vendors and methodology for delivery metrics. The buyer accepts
MeasurementTerms *MeasurementTerms `json:"measurement_terms,omitempty"` // Seller's default billing measurement and makegood terms. Declares who counts
PerformanceStandards []PerformanceStandard `json:"performance_standards,omitempty"` // Seller's default performance standards for this product: viewability, IVT
CancellationPolicy *CancellationPolicy `json:"cancellation_policy,omitempty"` // Cancellation terms for this product. Declares the minimum notice period
AllowedActions []ProductAllowedAction `json:"allowed_actions,omitempty"` // Actions buyers may perform on buys created against this product, scoped to
ReportingCapabilities ReportingCapabilities `json:"reporting_capabilities"`
CreativePolicy *CreativePolicy `json:"creative_policy,omitempty"`
IsCustom *bool `json:"is_custom,omitempty"` // Whether this is a custom product
PropertyTargetingAllowed *bool `json:"property_targeting_allowed,omitempty"` // Whether buyers can filter this product to a subset of its
// Deprecated: Deprecated.
DataProviderSignals []DataProviderSignalSelector `json:"data_provider_signals,omitempty"` // Deprecated. Legacy/non-selectable metadata for data-provider signals already
IncludedSignals []SignalListing `json:"included_signals,omitempty"` // Non-selectable signal metadata for signals already included in, bundled with
SignalTargetingOptions []ProductSignalTargetingOption `json:"signal_targeting_options,omitempty"` // Inline seller-offered signals that may be applied to packages for this product
SignalTargetingRules *SignalTargetingRules `json:"signal_targeting_rules,omitempty"` // Composition rules for selecting signals on this product. The selectable signal
SignalTargetingAllowed *bool `json:"signal_targeting_allowed,omitempty"` // Whether this product has a package-level signal_targeting_groups surface. When
CatalogTypes []CatalogType `json:"catalog_types,omitempty"` // Catalog types this product supports for catalog-driven campaigns. A sponsored
MetricOptimization *ProductMetricOptimization `json:"metric_optimization,omitempty"` // Metric optimization capabilities for this product. Presence indicates the
VendorMetricOptimization *VendorMetricOptimization `json:"vendor_metric_optimization,omitempty"` // Vendor-attested metric optimization capabilities for this product. Presence
MaxOptimizationGoals int `json:"max_optimization_goals,omitempty"` // Maximum number of optimization_goals this product accepts on a package. When
MeasurementReadiness *MeasurementReadiness `json:"measurement_readiness,omitempty"` // Assessment of whether the buyer's event source setup is sufficient for this
ConversionTracking *ProductConversionTracking `json:"conversion_tracking,omitempty"` // Conversion event tracking for this product. Presence indicates the product
CatalogMatch *ProductCatalogMatch `json:"catalog_match,omitempty"` // When the buyer provides a catalog on get_products, indicates which catalog
BriefRelevance string `json:"brief_relevance,omitempty"` // Explanation of why this product matches the brief (only included when brief is
ExpiresAt string `json:"expires_at,omitempty"` // Expiration timestamp. After this time, the product may no longer be available
ProductCard *ProductCard `json:"product_card,omitempty"` // Optional standard visual card for displaying this product in user interfaces
ProductCardDetailed *ProductCardDetailed `json:"product_card_detailed,omitempty"` // Optional detailed card with hero + carousel + structured specifications, for
Collections []CollectionSelector `json:"collections,omitempty"` // Collections available in this product. Each entry references collections
CollectionTargetingAllowed *bool `json:"collection_targeting_allowed,omitempty"` // Whether buyers can target a subset of this product's collections. When false
Installments []Installment `json:"installments,omitempty"` // Specific installments included in this product. Each installment references
EnforcedPolicies []string `json:"enforced_policies,omitempty"` // Registry policy IDs the seller enforces for this product. Enforcement level
TrustedMatch *ProductTrustedMatch `json:"trusted_match,omitempty"` // Trusted Match Protocol capabilities for this product. When present, the
MaterialSubmission *ProductMaterialSubmission `json:"material_submission,omitempty"` // Instructions for submitting physical creative materials (print, static OOH
Ext any `json:"ext,omitempty"`
}
Product — Represents available advertising inventory
type ProductAllocation ¶
type ProductAllocation struct {
ProductID string `json:"product_id"` // ID of the product (must reference a product in the products array)
AllocationPercentage float64 `json:"allocation_percentage"` // Percentage of total budget allocated to this product (0-100)
PricingOptionID string `json:"pricing_option_id,omitempty"` // Recommended pricing option ID from the product's pricing_options array
Rationale string `json:"rationale,omitempty"` // Explanation of why this product and allocation are recommended
Sequence int `json:"sequence,omitempty"` // Optional ordering hint for multi-line-item plans (1-based)
Tags []string `json:"tags,omitempty"` // Categorical tags for this allocation (e.g., 'desktop', 'german', 'mobile')
StartTime string `json:"start_time,omitempty"` // Recommended flight start date/time for this allocation in ISO 8601 format.
EndTime string `json:"end_time,omitempty"` // Recommended flight end date/time for this allocation in ISO 8601 format.
DaypartTargets []DaypartTarget `json:"daypart_targets,omitempty"` // Recommended time windows for this allocation in spot-plan proposals.
Forecast *DeliveryForecast `json:"forecast,omitempty"` // Forecasted delivery metrics for this allocation
Ext any `json:"ext,omitempty"`
}
ProductAllocation — A budget allocation for a specific product within a proposal. Percentages across all allocations
type ProductAllowedAction ¶
type ProductAllowedAction struct {
Action MediaBuyValidAction `json:"action"` // The action identifier.
Modes []MediaBuyActionMode `json:"modes"` // Modes available for this action on this product. A product may declare
AllowedStatuses []MediaBuyStatus `json:"allowed_statuses,omitempty"` // Media buy statuses in which this action is permitted. When absent, the action
Sla *SlaWindow `json:"sla,omitempty"` // Optional SLA commitment for this action on this product. Absence means no
TermsRef string `json:"terms_ref,omitempty"` // Optional pointer into buy-terms negotiation (forward-references the buy-terms
}
ProductAllowedAction — An action a seller declares as allowed on buys created against this product, scoped to the buy
type ProductCard ¶
type ProductCard struct {
Image *ImageAsset `json:"image,omitempty"` // Hero image for the card. Recommended ~300x400 (4:3 portrait) for the standard
Title string `json:"title,omitempty"` // Card title (typically the product name).
Description string `json:"description,omitempty"` // Short descriptive blurb shown below the title.
PriceLabel string `json:"price_label,omitempty"` // Formatted price or pricing summary (e.g., 'From $5 CPM', 'Auction floor $0.50
CTALabel string `json:"cta_label,omitempty"` // Call-to-action button label (e.g., 'View details', 'Get proposal').
}
ProductCard — Optional standard visual card for displaying this product in user interfaces (catalog browsers
type ProductCardDetailed ¶
type ProductCardDetailed struct {
HeroImage *ImageAsset `json:"hero_image,omitempty"` // Primary hero image at the top of the detailed view.
CarouselImages []ImageAsset `json:"carousel_images,omitempty"` // Additional images for a swipeable carousel below the hero.
Title string `json:"title,omitempty"` // Page title (typically the product name).
Description string `json:"description,omitempty"` // Full descriptive copy. Markdown allowed in client renderers that support it
Specifications []ProductCardSpecification `json:"specifications,omitempty"` // Structured key/value specifications (e.g., 'Aspect ratio: 9:16', 'Duration
PriceLabel string `json:"price_label,omitempty"` // Formatted price or pricing summary.
CTALabel string `json:"cta_label,omitempty"` // Call-to-action button label.
}
ProductCardDetailed — Optional detailed card with hero + carousel + structured specifications, for rich product
type ProductCatalogMatch ¶
type ProductCatalogMatch struct {
MatchedGtins []string `json:"matched_gtins,omitempty"` // GTINs from the buyer's catalog that are eligible on this product's inventory.
MatchedIDs []string `json:"matched_ids,omitempty"` // Item IDs from the buyer's catalog that matched this product's inventory. The
MatchedCount int `json:"matched_count,omitempty"` // Number of catalog items that matched this product's inventory.
SubmittedCount int `json:"submitted_count"` // Total catalog items evaluated from the buyer's catalog.
}
ProductCatalogMatch — When the buyer provides a catalog on get_products, indicates which catalog items are eligible for
type ProductConversionTracking ¶
type ProductConversionTracking struct {
ActionSources []ActionSource `json:"action_sources,omitempty"` // Action sources relevant to this product (e.g. a retail media product might
SupportedTargets []string `json:"supported_targets,omitempty"` // Target kinds available for event goals on this product. Values match
PlatformManaged *bool `json:"platform_managed,omitempty"` // Whether the seller provides its own always-on measurement (e.g. Amazon sales
}
ProductConversionTracking — Conversion event tracking for this product. Presence indicates the product supports
type ProductDeliveryMeasurement ¶
type ProductDeliveryMeasurement struct {
Vendors []BrandReference `json:"vendors,omitempty"` // Measurement vendors used for this product, as structured `BrandRef`
Provider string `json:"provider,omitempty"` // **Deprecated as of this minor.** Free-form measurement provider description
Notes string `json:"notes,omitempty"` // Additional details about measurement methodology in plain language (e.g.
}
ProductDeliveryMeasurement — Measurement vendors and methodology for delivery metrics. The buyer accepts the declared vendors
type ProductFilterBudgetRange ¶
type ProductFilterBudgetRange struct {
Min *float64 `json:"min,omitempty"` // Minimum budget amount
Max *float64 `json:"max,omitempty"` // Maximum budget amount
Currency string `json:"currency"` // ISO 4217 currency code (e.g., 'USD', 'EUR', 'GBP')
}
ProductFilterBudgetRange — Budget range to filter appropriate products
type ProductFilterGeoProximity ¶
type ProductFilterGeoProximity struct {
Lat *float64 `json:"lat,omitempty"` // Latitude in decimal degrees (WGS 84)
Lng *float64 `json:"lng,omitempty"` // Longitude in decimal degrees (WGS 84)
Label string `json:"label,omitempty"` // Human-readable label (e.g., 'Düsseldorf', 'Heathrow Airport')
TravelTime *ProductFilterTravelTime `json:"travel_time,omitempty"` // Travel time limit for isochrone calculation
TransportMode TransportMode `json:"transport_mode,omitempty"` // Transportation mode for isochrone calculation. Required when travel_time is
Radius *ProductFilterRadius `json:"radius,omitempty"` // Simple radius from the point
Geometry *ProductFilterGeometry `json:"geometry,omitempty"` // Pre-computed GeoJSON geometry defining the proximity boundary
}
type ProductFilterGeoTargetingRequirement ¶
type ProductFilterGeoTargetingRequirement struct {
Level GeoLevel `json:"level"` // Geographic targeting level (country, region, metro, postal_area)
Country string `json:"country,omitempty"` // ISO 3166-1 alpha-2 country code. Required for native postal_area system
System string `json:"system,omitempty"` // Optional classification system within the level. Use for a specific metro
}
type ProductFilterGeometry ¶
type ProductFilterGeometry struct {
Type string `json:"type"` // GeoJSON geometry type
Coordinates []any `json:"coordinates"` // GeoJSON coordinates array
}
ProductFilterGeometry — Pre-computed GeoJSON geometry defining the proximity boundary
type ProductFilterKeyword ¶
type ProductFilterMetro ¶
type ProductFilterMetro struct {
System MetroSystem `json:"system"` // Metro classification system
Code string `json:"code"` // Metro code within the system (e.g., '501' for NYC DMA)
}
type ProductFilterPostalArea ¶
type ProductFilterPostalArea struct {
Country string `json:"country,omitempty"` // ISO 3166-1 alpha-2 country code for the postal values.
System LegacyPostalSystem `json:"system,omitempty"` // Deprecated country-fused postal code system (e.g., 'us_zip', 'gb_outward').
Values []string `json:"values,omitempty"` // Postal codes within the legacy system.
}
type ProductFilterRadius ¶
type ProductFilterRadius struct {
Value float64 `json:"value"` // Radius distance
Unit DistanceUnit `json:"unit"` // Distance unit
}
ProductFilterRadius — Simple radius from the point
type ProductFilterTravelTime ¶
type ProductFilterTravelTime struct {
Value float64 `json:"value"` // Travel time limit
Unit TravelTimeUnit `json:"unit"`
}
ProductFilterTravelTime — Travel time limit for isochrone calculation
type ProductFilterTrustedMatch ¶
type ProductFilterTrustedMatch struct {
Providers []ProductFilterTrustedMatchProvider `json:"providers,omitempty"` // Filter to products with specific TMP providers and match types. Each entry
ResponseTypes []ResponseType `json:"response_types,omitempty"` // Filter to products supporting specific TMP response types (e.g., 'activation'
}
ProductFilterTrustedMatch — Filter products by Trusted Match Protocol capabilities. Only products with matching TMP support
type ProductFilterTrustedMatchProvider ¶
type ProductFilterTrustedMatchProvider struct {
AgentURL string `json:"agent_url"` // Provider's agent URL from the registry.
ContextMatch *bool `json:"context_match,omitempty"` // When true, require this provider to support context match.
IdentityMatch *bool `json:"identity_match,omitempty"` // When true, require this provider to support identity match.
}
type ProductFilters ¶
type ProductFilters struct {
DeliveryType DeliveryType `json:"delivery_type,omitempty"`
Exclusivity Exclusivity `json:"exclusivity,omitempty"` // Filter by exclusivity level. Returns products matching the specified
IsFixedPrice *bool `json:"is_fixed_price,omitempty"` // Filter by pricing availability and returned pricing options: true = products
PricingCurrencies []string `json:"pricing_currencies,omitempty"` // Filter by currencies the buyer can use for the media product transaction
FormatIDs []FormatRef `json:"format_ids,omitempty"` // Filter by specific format IDs
StandardFormatsOnly *bool `json:"standard_formats_only,omitempty"` // Only return products accepting IAB standard formats
MinExposures int `json:"min_exposures,omitempty"` // Minimum exposures/impressions needed for measurement validity
StartDate string `json:"start_date,omitempty"` // Campaign start date (ISO 8601 date format: YYYY-MM-DD) for availability checks
EndDate string `json:"end_date,omitempty"` // Campaign end date (ISO 8601 date format: YYYY-MM-DD) for availability checks
BudgetRange *ProductFilterBudgetRange `json:"budget_range,omitempty"` // Budget range to filter appropriate products
Countries []string `json:"countries,omitempty"` // Filter by country coverage using ISO 3166-1 alpha-2 codes (e.g., ['US', 'CA'
Regions []string `json:"regions,omitempty"` // Filter by region coverage using ISO 3166-2 codes (e.g., ['US-NY', 'US-CA'
Metros []ProductFilterMetro `json:"metros,omitempty"` // Filter by metro coverage for locally-bound inventory (radio, DOOH, local TV).
Channels []Channels `json:"channels,omitempty"` // Filter by advertising channels (e.g., ['display', 'ctv', 'dooh'])
VideoPlacementTypes []VideoPlacementType `json:"video_placement_types,omitempty"` // Filter video products by acceptable declared video placement types, using IAB
AudioDistributionTypes []AudioDistributionType `json:"audio_distribution_types,omitempty"` // Filter audio products by acceptable declared audio distribution types, using
SponsoredPlacementTypes []SponsoredPlacementType `json:"sponsored_placement_types,omitempty"` // Filter retail-media products by acceptable declared sponsored-placement types
SocialPlacementSurfaces []SocialPlacementSurface `json:"social_placement_surfaces,omitempty"` // Filter social products by acceptable declared social-placement surfaces (feed
// Deprecated: Use trusted_match filter instead.
RequiredAxeIntegrations []string `json:"required_axe_integrations,omitempty"` // Deprecated: Use trusted_match filter instead. Filter to products executable
TrustedMatch *ProductFilterTrustedMatch `json:"trusted_match,omitempty"` // Filter products by Trusted Match Protocol capabilities. Only products with
RequiredFeatures map[string]bool `json:"required_features,omitempty"` // Filter to products from sellers supporting specific protocol features. Only
RequiredGeoTargeting []ProductFilterGeoTargetingRequirement `json:"required_geo_targeting,omitempty"` // Filter to products from sellers supporting specific geo targeting
SignalTargeting []SignalTargeting `json:"signal_targeting,omitempty"` // Filter to products where the requested signals are buyer-selectable and
PostalAreas []ProductFilterPostalArea `json:"postal_areas,omitempty"` // Filter by postal area coverage for locally-bound inventory (direct mail, DOOH
GeoProximity []ProductFilterGeoProximity `json:"geo_proximity,omitempty"` // Filter by proximity to geographic points. Returns products with inventory
RequiredPerformanceStandards []PerformanceStandard `json:"required_performance_standards,omitempty"` // Filter to products that can meet the buyer's performance standard
RequiredMetrics []AvailableMetric `json:"required_metrics,omitempty"` // Filter to products whose `reporting_capabilities.available_metrics` is a
RequiredVendorMetrics []RequiredVendorMetric `json:"required_vendor_metrics,omitempty"` // Filter to products whose `reporting_capabilities.vendor_metrics` matches these
Keywords []ProductFilterKeyword `json:"keywords,omitempty"` // Filter by keyword relevance for search and retail media platforms. Returns
Ext any `json:"ext,omitempty"` // Vendor-namespaced extension parameters for seller-specific filter criteria not
}
ProductFilters — Structured filters for product discovery
type ProductFormatDeclaration ¶
type ProductFormatDeclaration struct {
FormatKind string `json:"format_kind"`
Params map[string]any `json:"params"` // Custom shape's params. Validated against the schema fetched from
FormatOptionID string `json:"format_option_id,omitempty"` // Stable identifier for this format declaration within its namespace. REQUIRED
PublisherDomain string `json:"publisher_domain,omitempty"` // Namespace for `format_option_id` when this declaration references or narrows a
DisplayName string `json:"display_name,omitempty"` // Optional seller-controlled human-readable label for this format declaration.
AppliesToChannels []Channels `json:"applies_to_channels,omitempty"` // Optional subset of the parent product's `channels` to which this declaration
SellerPreference string `json:"seller_preference,omitempty"` // Optional soft routing hint *within* a product's accepted set of formats — NOT
CanonicalFormatsOnly *bool `json:"canonical_formats_only,omitempty"` // When true, this format declaration has no clean v1 projection and SDKs MUST
Experimental *bool `json:"experimental,omitempty"` // When true, THIS seller's specific product declaration may not work as declared
FormatShape string `json:"format_shape,omitempty"` // REQUIRED when `format_kind: "custom"`; otherwise MUST be absent. Recognized
V1FormatRef []FormatRef `json:"v1_format_ref,omitempty"` // Authoritative v2 → v1 link, expressed as an array of one or more v1
FormatSchema *PlatformExtensionRef `json:"format_schema,omitempty"` // REQUIRED when `format_kind: "custom"`; otherwise MUST be absent. URI+digest
}
ProductFormatDeclaration — Inline format declaration on a product. The `format_kind` discriminator names which canonical
type ProductMaterialSubmission ¶
type ProductMaterialSubmission struct {
URL string `json:"url,omitempty"` // HTTPS URL for uploading or submitting physical creative materials
Email string `json:"email,omitempty"` // Email address for creative material submission
Instructions string `json:"instructions,omitempty"` // Human-readable instructions for material submission (file naming conventions
Ext any `json:"ext,omitempty"`
}
ProductMaterialSubmission — Instructions for submitting physical creative materials (print, static OOH, cinema). Present only
type ProductMetricOptimization ¶
type ProductMetricOptimization struct {
SupportedMetrics []string `json:"supported_metrics"` // Metric kinds this product can optimize for. Buyers should only request metric
SupportedReachUnits []ReachUnit `json:"supported_reach_units,omitempty"` // Reach units this product can optimize for. Required when supported_metrics
SupportedViewDurations []float64 `json:"supported_view_durations,omitempty"` // Video view duration thresholds (in seconds) this product supports for
SupportedTargets []string `json:"supported_targets,omitempty"` // Target kinds available for metric goals on this product. Values match
}
ProductMetricOptimization — Metric optimization capabilities for this product. Presence indicates the product supports
type ProductSignalTargetingOption ¶
type ProductSignalTargetingOption struct {
SignalRef SignalRef `json:"signal_ref"` // Canonical signal reference. Use scope 'product' for a product-local signal
// Deprecated: DEPRECATED.
SignalID *SignalID `json:"signal_id,omitempty"` // DEPRECATED. Use signal_ref instead. Legacy SignalId retained for compatibility
Name string `json:"name,omitempty"` // Human-readable signal name. Required when signal_ref.scope is 'product'. For
Description string `json:"description,omitempty"` // Detailed signal description. For data_provider and signal_source refs, this is
MethodologyURL string `json:"methodology_url,omitempty"` // Optional link to published methodology, media-kit, or data documentation. For
LastUpdated string `json:"last_updated,omitempty"` // When this listing record was last updated. This indicates freshness of the
ValueType SignalValueType `json:"value_type,omitempty"` // The data type of this signal's values. Required when signal_ref.scope is
Categories []string `json:"categories,omitempty"` // Valid values for categorical signals. Present when value_type is 'categorical'.
Range *SignalRange `json:"range,omitempty"` // Valid range for numeric signals. Present when value_type is 'numeric'.
SignalAgentSegmentID string `json:"signal_agent_segment_id,omitempty"` // Optional opaque resolved-segment or seller execution handle for this signal.
ActivationStatus string `json:"activation_status,omitempty"` // Whether this signal option is ready to select on create_media_buy for the
AllowedTargetingModes []string `json:"allowed_targeting_modes,omitempty"` // How this signal may be used when composing package-level signal targeting
DefaultSelected *bool `json:"default_selected,omitempty"` // Whether the seller recommends or preselects this signal when composing this
SelectionGroup string `json:"selection_group,omitempty"` // Optional product-defined composability bucket for signal options, such as
PricingOptions []VendorPricingOption `json:"pricing_options,omitempty"` // Signal pricing options available when this signal is selected on this product.
}
ProductSignalTargetingOption — A signal the seller makes available inline for package-level signal composition on this product.
type ProductTrustedMatch ¶
type ProductTrustedMatch struct {
ContextMatch bool `json:"context_match"` // Whether this product supports Context Match requests. When true, the
IdentityMatch *bool `json:"identity_match,omitempty"` // Whether this product supports Identity Match requests. When true, the
ResponseTypes []ResponseType `json:"response_types,omitempty"` // What the publisher can accept back from context match.
DynamicBrands *bool `json:"dynamic_brands,omitempty"` // Whether the buyer can select a brand at match time. When false (default), the
Providers []ProductTrustedMatchProvider `json:"providers,omitempty"` // TMP providers integrated with this product's inventory. Each entry identifies
}
ProductTrustedMatch — Trusted Match Protocol capabilities for this product. When present, the product supports real-time
type ProductTrustedMatchProvider ¶
type ProductTrustedMatchProvider struct {
AgentURL string `json:"agent_url"` // Provider's agent URL from the registry. Canonical identifier for this TMP
ContextMatch *bool `json:"context_match,omitempty"` // Whether this provider handles context match for this product.
IdentityMatch *bool `json:"identity_match,omitempty"` // Whether this provider handles identity match for this product.
Countries []string `json:"countries,omitempty"` // ISO 3166-1 alpha-2 country codes this provider serves for identity match. The
UIDTypes []UIDType `json:"uid_types,omitempty"` // Identity types this regional provider can resolve. The router filters
}
type ProductionQuality ¶
type ProductionQuality = string
ProductionQuality — Production quality tier for collection content. Maps to OpenRTB content.prodq
const ( ProductionQualityProfessional ProductionQuality = "professional" ProductionQualityProsumer ProductionQuality = "prosumer" ProductionQualityUgc ProductionQuality = "ugc" )
func KnownProductionQualityValues ¶
func KnownProductionQualityValues() []ProductionQuality
KnownProductionQualityValues returns the current schema-defined values for ProductionQuality.
func ParseProductionQuality ¶
func ParseProductionQuality(s string) (ProductionQuality, error)
ParseProductionQuality returns s as ProductionQuality when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ProductsData ¶
type ProductsData struct {
Products []Product `json:"products"`
RefinementApplied []GetProductsRefinementAppliedItem `json:"refinement_applied,omitempty"`
WholesaleFeedVersion string `json:"wholesale_feed_version,omitempty"`
PricingVersion string `json:"pricing_version,omitempty"`
CacheScope string `json:"cache_scope,omitempty"`
Unchanged *bool `json:"unchanged,omitempty"`
Sandbox bool `json:"sandbox,omitempty"`
Context any `json:"context,omitempty"`
}
type PropertyChangeSummary ¶
type PropertyChangeSummary struct {
PropertiesAdded int `json:"properties_added,omitempty"` // Number of properties added since last resolution
PropertiesRemoved int `json:"properties_removed,omitempty"` // Number of properties removed since last resolution
TotalProperties int `json:"total_properties,omitempty"` // Total properties in the resolved list
}
PropertyChangeSummary — Summary of changes to the resolved list
type PropertyListChangedWebhook ¶
type PropertyListChangedWebhook struct {
IdempotencyKey string `json:"idempotency_key"` // Sender-generated key stable across retries of the same webhook event.
Event string `json:"event"` // The event type
ListID string `json:"list_id"` // ID of the property list that changed
ListName string `json:"list_name,omitempty"` // Name of the property list
ChangeSummary *PropertyChangeSummary `json:"change_summary,omitempty"` // Summary of changes to the resolved list
ResolvedAt string `json:"resolved_at"` // When the list was re-resolved
CacheValidUntil string `json:"cache_valid_until,omitempty"` // When the consumer should refresh from the governance agent
Signature string `json:"signature"` // Cryptographic signature of the webhook payload, signed with the agent's
Ext any `json:"ext,omitempty"`
}
PropertyListChangedWebhook — Webhook notification sent when a property list's resolved properties change. Contains a summary
func (*PropertyListChangedWebhook) IdempotencyKeyPtr ¶
func (p *PropertyListChangedWebhook) IdempotencyKeyPtr() *string
type PropertyListRef ¶
type PropertyListRef struct {
AgentURL string `json:"agent_url"` // URL of the agent managing the property list
ListID string `json:"list_id"` // Identifier for the property list within the agent
AuthToken string `json:"auth_token,omitempty"` // JWT or other authorization token for accessing the list. Optional if the list
}
PropertyListRef — Reference to an externally managed property list. Enables passing large property sets (50,000+)
type PropertyType ¶
type PropertyType = string
PropertyType — Types of addressable advertising properties with verifiable ownership.
const ( PropertyTypeWebsite PropertyType = "website" PropertyTypeMobileApp PropertyType = "mobile_app" PropertyTypeCtvApp PropertyType = "ctv_app" PropertyTypeDesktopApp PropertyType = "desktop_app" PropertyTypeDooh PropertyType = "dooh" PropertyTypePodcast PropertyType = "podcast" PropertyTypeRadio PropertyType = "radio" PropertyTypeLinearTv PropertyType = "linear_tv" PropertyTypeStreamingAudio PropertyType = "streaming_audio" PropertyTypeAIAssistant PropertyType = "ai_assistant" )
func KnownPropertyTypeValues ¶
func KnownPropertyTypeValues() []PropertyType
KnownPropertyTypeValues returns the current schema-defined values for PropertyType.
func ParsePropertyType ¶
func ParsePropertyType(s string) (PropertyType, error)
ParsePropertyType returns s as PropertyType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Proposal ¶
type Proposal struct {
ProposalID string `json:"proposal_id"` // Unique identifier for this proposal. Used to finalize a draft proposal and to
Name string `json:"name"` // Human-readable name for this media plan proposal
Description string `json:"description,omitempty"` // Explanation of the proposal strategy and what it achieves
Allocations []ProductAllocation `json:"allocations"` // Budget allocations across products. Allocation percentages MUST sum to 100.
ProposalStatus ProposalStatus `json:"proposal_status,omitempty"` // Lifecycle status of this proposal and the per-proposal source of truth for
ExpiresAt string `json:"expires_at,omitempty"` // When this proposal expires and can no longer be executed. For draft proposals
InsertionOrder *InsertionOrder `json:"insertion_order,omitempty"` // Formal insertion order attached to a committed proposal. Present when the
TotalBudgetGuidance *ProposalBudgetGuidance `json:"total_budget_guidance,omitempty"` // Optional budget guidance for this proposal
BriefAlignment string `json:"brief_alignment,omitempty"` // Explanation of how this proposal aligns with the campaign brief
Forecast *DeliveryForecast `json:"forecast,omitempty"` // Aggregate forecasted delivery metrics for the entire proposal. When both
Ext any `json:"ext,omitempty"`
}
Proposal — A proposed media plan with budget allocations across products. Represents the publisher's
type ProposalBudgetGuidance ¶
type ProposalBudgetGuidance struct {
Min float64 `json:"min,omitempty"` // Minimum recommended budget
Recommended float64 `json:"recommended,omitempty"` // Recommended budget for optimal performance
Max float64 `json:"max,omitempty"` // Maximum budget before diminishing returns
Currency string `json:"currency,omitempty"` // ISO 4217 currency code
}
ProposalBudgetGuidance — Optional budget guidance for this proposal
type ProposalStatus ¶
type ProposalStatus = string
ProposalStatus — Lifecycle status of a proposal.
const ( ProposalStatusDraft ProposalStatus = "draft" ProposalStatusCommitted ProposalStatus = "committed" )
func KnownProposalStatusValues ¶
func KnownProposalStatusValues() []ProposalStatus
KnownProposalStatusValues returns the current schema-defined values for ProposalStatus.
func ParseProposalStatus ¶
func ParseProposalStatus(s string) (ProposalStatus, error)
ParseProposalStatus returns s as ProposalStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ProtocolEnvelope ¶
type ProtocolEnvelope struct {
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"` // Per-request opaque caller-supplied correlation object echoed unchanged in the
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
}
ProtocolEnvelope — Canonical envelope field-set for AdCP task responses, normalized across transports. Defines the
type Provenance ¶
type Provenance struct {
DigitalSourceType DigitalSourceType `json:"digital_source_type,omitempty"` // IPTC-aligned classification of AI involvement in producing this content
AITool *ProvenanceAITool `json:"ai_tool,omitempty"` // AI system used to generate or modify this content. Aligns with IPTC 2025.1 AI
HumanOversight string `json:"human_oversight,omitempty"` // Level of human involvement in the AI-assisted creation process. Independent of
DeclaredBy *ProvenanceDeclaredBy `json:"declared_by,omitempty"` // Party declaring this provenance. Identifies who attached the provenance claim
DeclaredAt string `json:"declared_at,omitempty"` // When this provenance claim was made (ISO 8601). Distinct from created_time
CreatedTime string `json:"created_time,omitempty"` // When this content was created or generated (ISO 8601)
C2PA *ProvenanceC2PA `json:"c2pa,omitempty"` // C2PA sidecar manifest reference. Links to a detached cryptographic provenance
EmbeddedProvenance []ProvenanceEmbeddedProvenance `json:"embedded_provenance,omitempty"` // Provenance metadata embedded within the content stream. Each entry declares
Watermarks []ProvenanceWatermark `json:"watermarks,omitempty"` // Content watermarks applied to this asset. Each entry declares one watermarking
Disclosure *ProvenanceDisclosure `json:"disclosure,omitempty"` // Regulatory disclosure requirements for this content. Indicates whether AI
Verification []ProvenanceVerification `json:"verification,omitempty"` // Third-party verification or detection results for this content. Multiple
Ext any `json:"ext,omitempty"`
}
Provenance — Declares how content was produced, whether AI was involved, and what disclosure obligations apply.
type ProvenanceAITool ¶
type ProvenanceAITool struct {
Name string `json:"name"` // Name of the AI tool or model (e.g., 'DALL-E 3', 'Stable Diffusion XL', 'Gemini')
Version string `json:"version,omitempty"` // Version identifier for the AI tool or model (e.g., '25.1', '0125', '2.1'). For
Provider string `json:"provider,omitempty"` // Organization that provides the AI tool (e.g., 'OpenAI', 'Stability AI'
}
ProvenanceAITool — AI system used to generate or modify this content. Aligns with IPTC 2025.1 AI metadata fields and
type ProvenanceAuditObservationsSuccess ¶
type ProvenanceAuditObservationsSuccess struct {
Success bool `json:"success"`
CreativeID string `json:"creative_id"` // Creative ID whose audit observations were queried.
AuditObservations []AuditObservation `json:"audit_observations"` // Audit observations recorded for the creative in the sandbox session.
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ProvenanceAuditObservationsSuccess — A query_provenance_audit_observations scenario returned sandbox-recorded audit observations for a
type ProvenanceC2PA ¶
type ProvenanceC2PA struct {
ManifestURL string `json:"manifest_url"` // URL to the C2PA manifest store for this content
}
ProvenanceC2PA — C2PA sidecar manifest reference. Links to a detached cryptographic provenance manifest for this
type ProvenanceDeclaredBy ¶
type ProvenanceDeclaredBy struct {
AgentURL string `json:"agent_url,omitempty"` // URL of the agent or service that declared this provenance
Role string `json:"role"` // Role of the declaring party in the supply chain
}
ProvenanceDeclaredBy — Party declaring this provenance. Identifies who attached the provenance claim, enabling receiving
type ProvenanceDisclosure ¶
type ProvenanceDisclosure struct {
Required bool `json:"required"` // The declaring party's claim that AI disclosure is required for this content
Jurisdictions []ProvenanceDisclosureJurisdiction `json:"jurisdictions,omitempty"` // Jurisdictions where disclosure obligations apply
}
ProvenanceDisclosure — Regulatory disclosure requirements for this content. Indicates whether AI disclosure is required
type ProvenanceDisclosureJurisdiction ¶
type ProvenanceDisclosureJurisdiction struct {
Country string `json:"country"` // ISO 3166-1 alpha-2 country code (e.g., 'US', 'DE', 'CN')
Region string `json:"region,omitempty"` // Sub-national region code (e.g., 'CA' for California, 'BY' for Bavaria)
Regulation string `json:"regulation"` // Regulation identifier (e.g., 'eu_ai_act_article_50', 'ca_sb_942'
LabelText string `json:"label_text,omitempty"` // Required disclosure label text for this jurisdiction, in the local language
RenderGuidance *ProvenanceDisclosureRenderGuidance `json:"render_guidance,omitempty"` // How the disclosure should be rendered for this jurisdiction. Expresses the
}
type ProvenanceDisclosureRenderGuidance ¶
type ProvenanceDisclosureRenderGuidance struct {
Persistence DisclosurePersistence `json:"persistence,omitempty"` // How long the disclosure must persist during content playback or display
MinDurationMs int `json:"min_duration_ms,omitempty"` // Minimum display duration in milliseconds for initial persistence. Recommended
Positions []DisclosurePosition `json:"positions,omitempty"` // Preferred disclosure positions in priority order. The first position a format
Ext any `json:"ext,omitempty"`
}
ProvenanceDisclosureRenderGuidance — How the disclosure should be rendered for this jurisdiction. Expresses the declaring party's
type ProvenanceEmbeddedProvenance ¶
type ProvenanceEmbeddedProvenance struct {
Method EmbeddedProvenanceMethod `json:"method"` // How provenance data is carried within the content
Standard string `json:"standard,omitempty"` // Standard the embedding conforms to, if any (e.g., 'c2pa' for C2PA Section A.7
Provider string `json:"provider"` // Organization that performed the embedding (e.g., 'Encypher', 'Digimarc').
VerifyAgent *ProvenanceVerifyAgent `json:"verify_agent,omitempty"` // Buyer's representation that this embedding can be verified by a governance
EmbeddedAt string `json:"embedded_at,omitempty"` // When the provenance data was embedded (ISO 8601)
}
type ProvenanceVerification ¶
type ProvenanceVerification struct {
VerifiedBy string `json:"verified_by"` // Name of the verification service (e.g., 'DoubleVerify', 'Hive Moderation'
VerifiedTime string `json:"verified_time,omitempty"` // When the verification was performed (ISO 8601)
Result string `json:"result"` // Verification outcome
Confidence float64 `json:"confidence,omitempty"` // Confidence score of the verification result (0.0 to 1.0)
DetailsURL string `json:"details_url,omitempty"` // URL to the full verification report
}
type ProvenanceVerifyAgent ¶
type ProvenanceVerifyAgent struct {
AgentURL string `json:"agent_url"` // URL of the governance agent the buyer represents was used to embed/verify this
FeatureID string `json:"feature_id,omitempty"` // Optional `feature_id` the buyer represents the seller should request via
}
ProvenanceVerifyAgent — Buyer's representation that this embedding can be verified by a governance agent on the seller's
type ProvenanceWatermark ¶
type ProvenanceWatermark struct {
MediaType WatermarkMediaType `json:"media_type"` // Media category of the watermarked content
Provider string `json:"provider"` // Organization that applied the watermark (e.g., 'Imatag', 'Steg.AI'
VerifyAgent *ProvenanceVerifyAgent `json:"verify_agent,omitempty"` // Buyer's representation that this watermark can be detected by a governance
C2PAAction C2PAWatermarkAction `json:"c2pa_action,omitempty"` // C2PA action classification for this watermark
EmbeddedAt string `json:"embedded_at,omitempty"` // When the watermark was applied (ISO 8601)
}
type ProvidePerformanceFeedbackError ¶
type ProvidePerformanceFeedbackError struct {
Errors []AdcpError `json:"errors"` // Array of errors explaining why feedback was rejected (e.g., invalid
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ProvidePerformanceFeedbackError — Error response - feedback rejected or could not be processed
type ProvidePerformanceFeedbackRequest ¶
type ProvidePerformanceFeedbackRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
MediaBuyID string `json:"media_buy_id"` // Seller's media buy identifier
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for this request. Prevents duplicate feedback
MeasurementPeriod DatetimeRange `json:"measurement_period"` // Time period for performance measurement
PerformanceIndex float64 `json:"performance_index"` // Normalized performance score (0.0 = no value, 1.0 = expected, >1.0 = above
PackageID string `json:"package_id,omitempty"` // Specific package within the media buy (if feedback is package-specific)
CreativeID string `json:"creative_id,omitempty"` // Specific creative asset (if feedback is creative-specific)
MetricType MetricType `json:"metric_type,omitempty"` // The business metric being measured
FeedbackSource FeedbackSource `json:"feedback_source,omitempty"` // Source of the performance data
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ProvidePerformanceFeedbackRequest — Request payload for provide_performance_feedback task
type ProvidePerformanceFeedbackResponse ¶
type ProvidePerformanceFeedbackResponse interface {
// contains filtered or unexported methods
}
ProvidePerformanceFeedbackResponse is a discriminated union — use one of the generated variant structs.
type ProvidePerformanceFeedbackSuccess ¶
type ProvidePerformanceFeedbackSuccess struct {
Success bool `json:"success"` // Whether the performance feedback was successfully received
Sandbox *bool `json:"sandbox,omitempty"` // When true, this response contains simulated data from sandbox mode.
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ProvidePerformanceFeedbackSuccess — Success response - feedback received and processed
type PublisherIdentifierTypes ¶
type PublisherIdentifierTypes = string
PublisherIdentifierTypes — Valid identifier types for publisher/legal entity identification
const ( PublisherIdentifierTypesTagID PublisherIdentifierTypes = "tag_id" PublisherIdentifierTypesDuns PublisherIdentifierTypes = "duns" PublisherIdentifierTypesLei PublisherIdentifierTypes = "lei" PublisherIdentifierTypesSellerID PublisherIdentifierTypes = "seller_id" PublisherIdentifierTypesGln PublisherIdentifierTypes = "gln" )
func KnownPublisherIdentifierTypesValues ¶
func KnownPublisherIdentifierTypesValues() []PublisherIdentifierTypes
KnownPublisherIdentifierTypesValues returns the current schema-defined values for PublisherIdentifierTypes.
func ParsePublisherIdentifierTypes ¶
func ParsePublisherIdentifierTypes(s string) (PublisherIdentifierTypes, error)
ParsePublisherIdentifierTypes returns s as PublisherIdentifierTypes when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type PublisherPropertySelector ¶
type PublisherPropertySelector struct {
PublisherDomain string `json:"publisher_domain"`
SelectionType string `json:"selection_type"`
PropertyIDs []string `json:"property_ids,omitempty"`
PropertyTags []string `json:"property_tags,omitempty"`
}
PublisherPropertySelector is the flattened union of the three variants in publisher-property-selector.json. SelectionType is the discriminator:
"all": set PublisherDomain only. "by_id": set PublisherDomain + PropertyIDs. "by_tag": set PublisherDomain + PropertyTags.
type PurchaseType ¶
type PurchaseType = string
PurchaseType — The type of financial commitment being governed.
const ( PurchaseTypeMediaBuy PurchaseType = "media_buy" PurchaseTypeRightsLicense PurchaseType = "rights_license" PurchaseTypeSignalActivation PurchaseType = "signal_activation" PurchaseTypeCreativeServices PurchaseType = "creative_services" )
func KnownPurchaseTypeValues ¶
func KnownPurchaseTypeValues() []PurchaseType
KnownPurchaseTypeValues returns the current schema-defined values for PurchaseType.
func ParsePurchaseType ¶
func ParsePurchaseType(s string) (PurchaseType, error)
ParsePurchaseType returns s as PurchaseType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type PushNotificationConfig ¶
type PushNotificationConfig struct {
URL string `json:"url"` // Webhook endpoint URL for task status notifications. The wire contract is
OperationID string `json:"operation_id,omitempty"` // Buyer-supplied correlation identifier for the operation that will produce
Token string `json:"token,omitempty"` // Optional client-provided token for webhook validation. The seller MUST echo
Authentication *LegacyWebhookAuthentication `json:"authentication,omitempty"` // Legacy authentication configuration (A2A-compatible). Opts the seller into
}
PushNotificationConfig — Webhook configuration for asynchronous task notifications. Uses A2A-compatible
type ReachUnit ¶
type ReachUnit = string
ReachUnit — Unit of measurement for reach and audience size metrics. Different channels
func KnownReachUnitValues ¶
func KnownReachUnitValues() []ReachUnit
KnownReachUnitValues returns the current schema-defined values for ReachUnit.
func ParseReachUnit ¶
ParseReachUnit returns s as ReachUnit when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ReachWindow ¶
type ReachWindow struct {
Kind string `json:"kind"` // Window semantics. `cumulative` — uniques since campaign start; the value is
Period *Duration `json:"period,omitempty"` // Duration of the measurement window. REQUIRED when `kind` is `period` or
}
ReachWindow — Measurement window for the reported `reach` and `frequency` values in this row. Declares whether
type ReferenceAsset ¶
type ReferenceAsset struct {
URL string `json:"url"` // URL to the reference asset (image, video, or document)
Role string `json:"role"` // How the creative agent should use this asset. style_reference: match the
Description string `json:"description,omitempty"` // Human-readable description of the asset and how it should inform creative
}
ReferenceAsset — A reference asset that provides creative context. Carries visual materials (mood boards, product
type Render ¶
Render is a rendering variant inside a CreativeFormat. Wired into generated CreativeFormat via schemas/generate.py's INLINE_TYPE_HINTS so the format.json renders[] oneOf items become []Render instead of []any.
type ReportPlanOutcomeDelivery ¶
type ReportPlanOutcomeDelivery struct {
ReportingPeriod *ReportPlanOutcomeDeliveryReportingPeriod `json:"reporting_period,omitempty"` // Start and end timestamps for the reporting window.
Impressions *int `json:"impressions,omitempty"` // Impressions delivered in the period.
Spend *float64 `json:"spend,omitempty"` // Spend in the period.
CPM *float64 `json:"cpm,omitempty"` // Effective CPM for the period.
ViewabilityRate *float64 `json:"viewability_rate,omitempty"` // Viewability rate (0-1).
CompletionRate *float64 `json:"completion_rate,omitempty"` // Video completion rate (0-1).
}
ReportPlanOutcomeDelivery — Delivery metrics. Required when outcome is 'delivery'.
type ReportPlanOutcomeDeliveryReportingPeriod ¶
type ReportPlanOutcomeDeliveryReportingPeriod struct {
Start string `json:"start"`
End string `json:"end"`
}
ReportPlanOutcomeDeliveryReportingPeriod — Start and end timestamps for the reporting window.
type ReportPlanOutcomeError ¶
type ReportPlanOutcomeError struct {
Code string `json:"code,omitempty"` // Error code from the seller.
Message string `json:"message,omitempty"` // Human-readable error description.
}
ReportPlanOutcomeError — Error details. Required when outcome is 'failed'.
type ReportPlanOutcomeFinding ¶
type ReportPlanOutcomeFinding struct {
CategoryID string `json:"category_id"` // Which validation category flagged the issue.
Severity EscalationSeverity `json:"severity"` // Finding severity.
Explanation string `json:"explanation"` // Human-readable description of the issue.
Details map[string]any `json:"details,omitempty"` // Structured details for programmatic consumption.
}
type ReportPlanOutcomePlanSummary ¶
type ReportPlanOutcomePlanSummary struct {
TotalCommitted *float64 `json:"total_committed,omitempty"` // Total budget committed across all campaigns in the plan.
BudgetRemaining *float64 `json:"budget_remaining,omitempty"` // Authorized budget minus total committed.
}
ReportPlanOutcomePlanSummary — Updated plan budget state. Present for 'completed' and 'failed' outcomes.
type ReportPlanOutcomeRequest ¶
type ReportPlanOutcomeRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
PlanID string `json:"plan_id"` // The plan this outcome is for. The plan uniquely scopes the account and
CheckID string `json:"check_id,omitempty"` // The check_id from check_governance. Links the outcome to the governance check
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for this request. Prevents duplicate outcome
PurchaseType PurchaseType `json:"purchase_type,omitempty"` // The type of financial commitment this outcome is for. Determines which budget
Outcome OutcomeType `json:"outcome"` // Outcome type.
SellerResponse *ReportPlanOutcomeSellerResponse `json:"seller_response,omitempty"` // The seller's full response. Required when outcome is 'completed'.
Delivery *ReportPlanOutcomeDelivery `json:"delivery,omitempty"` // Delivery metrics. Required when outcome is 'delivery'.
Error *ReportPlanOutcomeError `json:"error,omitempty"` // Error details. Required when outcome is 'failed'.
GovernanceContext string `json:"governance_context"` // Opaque governance context from the check_governance response that authorized
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ReportPlanOutcomeRequest — Report the outcome of an action to the governance agent. Called by the orchestrator (buyer-side
type ReportPlanOutcomeResponse ¶
type ReportPlanOutcomeResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
OutcomeID string `json:"outcome_id"` // Unique identifier for this outcome record.
OutcomeState string `json:"outcome_state"` // Outcome state. 'accepted' means state updated with no issues. 'findings' means
CommittedBudget float64 `json:"committed_budget,omitempty"` // Budget committed from this outcome. Present for 'completed' and 'failed'
Findings []ReportPlanOutcomeFinding `json:"findings,omitempty"` // Issues detected. Present only when outcome_state is 'findings'.
PlanSummary *ReportPlanOutcomePlanSummary `json:"plan_summary,omitempty"` // Updated plan budget state. Present for 'completed' and 'failed' outcomes.
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
ReportPlanOutcomeResponse — Response from reporting an action outcome. Only returned to the orchestrator (buyer-side agent)
type ReportPlanOutcomeSellerPackage ¶
type ReportPlanOutcomeSellerPackage struct {
Budget *float64 `json:"budget,omitempty"`
}
type ReportPlanOutcomeSellerResponse ¶
type ReportPlanOutcomeSellerResponse struct {
SellerReference string `json:"seller_reference,omitempty"` // The seller's identifier for the created resource (e.g., media_buy_id
CommittedBudget *float64 `json:"committed_budget,omitempty"` // Total budget committed across all confirmed packages. When present, the
Packages []ReportPlanOutcomeSellerPackage `json:"packages,omitempty"` // Confirmed packages with actual budget and targeting.
PlannedDelivery *PlannedDelivery `json:"planned_delivery,omitempty"` // What the seller said it will deliver. When seller-side governance is not
CreativeDeadline string `json:"creative_deadline,omitempty"` // ISO 8601 deadline for creative submission.
}
ReportPlanOutcomeSellerResponse — The seller's full response. Required when outcome is 'completed'.
type ReportedSpend ¶
ReportedSpend is the spend amount and currency.
type ReportingBucket ¶
type ReportingBucket struct {
Protocol CloudStorageProtocol `json:"protocol"` // Cloud storage protocol
Bucket string `json:"bucket"` // Bucket or container name
Prefix string `json:"prefix,omitempty"` // Path prefix within the bucket. Seller appends date-based partitioning beneath
Region string `json:"region,omitempty"` // Cloud region for the bucket
Format string `json:"format,omitempty"` // File format for delivered files. Parquet, Avro, and ORC use internal
Compression string `json:"compression,omitempty"` // Compression applied to delivered files
FileRetentionDays int `json:"file_retention_days"` // How long reporting files are retained in the bucket before deletion. Buyers
SetupInstructions string `json:"setup_instructions,omitempty"` // URL to documentation for configuring buyer read access to this bucket (IAM
}
ReportingBucket — Cloud storage bucket where the seller delivers offline reporting files for this account. Seller
type ReportingCapabilities ¶
type ReportingCapabilities struct {
AvailableReportingFrequencies []ReportingFrequency `json:"available_reporting_frequencies"` // Supported reporting frequency options
ExpectedDelayMinutes int `json:"expected_delay_minutes"` // Expected delay in minutes before reporting data becomes available (e.g., 240
Timezone string `json:"timezone"` // Timezone for reporting periods. Use 'UTC' or IANA timezone (e.g.
SupportsWebhooks bool `json:"supports_webhooks"` // Whether this product supports webhook-based reporting notifications
AvailableMetrics []AvailableMetric `json:"available_metrics"` // Metrics available in reporting. Impressions and spend are always implicitly
VendorMetrics []ReportingVendorMetric `json:"vendor_metrics,omitempty"` // Vendor-defined metrics this product can report, beyond the closed
SupportsCreativeBreakdown *bool `json:"supports_creative_breakdown,omitempty"` // Whether this product supports creative-level metric breakdowns in delivery
SupportsKeywordBreakdown *bool `json:"supports_keyword_breakdown,omitempty"` // Whether this product supports keyword-level metric breakdowns in delivery
SupportsGeoBreakdown *GeoBreakdownSupport `json:"supports_geo_breakdown,omitempty"` // Geographic breakdown support for this product. Declares which geo levels and
SupportsDeviceTypeBreakdown *bool `json:"supports_device_type_breakdown,omitempty"` // Whether this product supports device type breakdowns in delivery reporting
SupportsDevicePlatformBreakdown *bool `json:"supports_device_platform_breakdown,omitempty"` // Whether this product supports device platform breakdowns in delivery reporting
SupportsAudienceBreakdown *bool `json:"supports_audience_breakdown,omitempty"` // Whether this product supports audience segment breakdowns in delivery
SupportsPlacementBreakdown *bool `json:"supports_placement_breakdown,omitempty"` // Whether this product supports placement breakdowns in delivery reporting
DateRangeSupport string `json:"date_range_support"` // Whether delivery data can be filtered to arbitrary date ranges. 'date_range'
WindowedPullGranularities []ReportingFrequency `json:"windowed_pull_granularities,omitempty"` // Granularities at which this product honors per-window pulls on
MeasurementWindows []MeasurementWindow `json:"measurement_windows,omitempty"` // Measurement maturation stages available for this product. Used by any channel
}
ReportingCapabilities — Reporting capabilities available for a product
type ReportingFrequency ¶
type ReportingFrequency = string
ReportingFrequency — Available frequencies for delivery reports and metrics updates
const ( ReportingFrequencyHourly ReportingFrequency = "hourly" ReportingFrequencyDaily ReportingFrequency = "daily" ReportingFrequencyMonthly ReportingFrequency = "monthly" )
func KnownReportingFrequencyValues ¶
func KnownReportingFrequencyValues() []ReportingFrequency
KnownReportingFrequencyValues returns the current schema-defined values for ReportingFrequency.
func ParseReportingFrequency ¶
func ParseReportingFrequency(s string) (ReportingFrequency, error)
ParseReportingFrequency returns s as ReportingFrequency when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ReportingPeriod ¶
type ReportingVendorMetric ¶
type ReportingVendorMetric struct {
Vendor BrandReference `json:"vendor"` // Vendor that defines and computes this metric. The vendor's `brand.json` is the
MetricID string `json:"metric_id"` // Identifier for the metric within the vendor's vocabulary (e.g.
}
type ReportingWebhook ¶
type ReportingWebhook struct {
URL string `json:"url"` // Webhook endpoint URL for reporting notifications
Token string `json:"token,omitempty"` // Optional client-provided token for webhook validation. Echoed back in webhook
Authentication LegacyWebhookAuthentication `json:"authentication"` // Legacy authentication configuration for webhook delivery (A2A-compatible).
ReportingFrequency string `json:"reporting_frequency"` // Frequency for automated reporting delivery. Must be supported by all products
RequestedMetrics []AvailableMetric `json:"requested_metrics,omitempty"` // Optional list of metrics to include in webhook notifications. If omitted, all
}
ReportingWebhook — Webhook configuration for automated reporting delivery. Configures where and how campaign
type RequestSigningCapabilities ¶
type RequestSigningCapabilities struct {
Supported bool `json:"supported"`
CoversContentDigest string `json:"covers_content_digest,omitempty"`
RequiredFor []string `json:"required_for,omitempty"`
WarnFor []string `json:"warn_for,omitempty"`
SupportedFor []string `json:"supported_for,omitempty"`
ProtocolMethodsSupportedFor []string `json:"protocol_methods_supported_for,omitempty"`
ProtocolMethodsWarnFor []string `json:"protocol_methods_warn_for,omitempty"`
ProtocolMethodsRequiredFor []string `json:"protocol_methods_required_for,omitempty"`
}
RequestSigningCapabilities declares RFC 9421 signing policy.
type RequestedCommittedMetric ¶
type RequestedCommittedMetric struct {
Scope string `json:"scope,omitempty"` // Vendor-defined metric, identified by the tuple `(vendor, metric_id)`.
MetricID string `json:"metric_id,omitempty"` // Identifier for the metric within the vendor's vocabulary. MUST be present in
Qualifier *MetricQualifier `json:"qualifier,omitempty"` // Disambiguator — same shape as on the response-side `committed_metrics`.
Vendor *BrandReference `json:"vendor,omitempty"` // Vendor that defines and computes this metric. The vendor's `brand.json`
}
type RequiredVendorMetric ¶
type RequiredVendorMetric struct {
Vendor *BrandReference `json:"vendor,omitempty"` // Pin to a specific vendor. Optional — omit to match any vendor offering this
MetricID string `json:"metric_id,omitempty"` // Pin to an exact metric identifier within a vendor's vocabulary. Optional —
}
type ResolvedCollection ¶
type ResolvedCollection struct {
CollectionRID string `json:"collection_rid,omitempty"`
Name string `json:"name"`
DistributionIDs []DistributionID `json:"distribution_ids,omitempty"`
ContentRating *ContentRating `json:"content_rating,omitempty"`
Genre []string `json:"genre,omitempty"`
GenreTaxonomy string `json:"genre_taxonomy,omitempty"`
Kind string `json:"kind,omitempty"`
}
ResolvedCollection is a single collection entry in a get_collection_list response.
type ResponseType ¶
type ResponseType = string
ResponseType — What the publisher wants back from a TMP context match. Determines the
const ( ResponseTypeActivation ResponseType = "activation" ResponseTypeCatalogItems ResponseType = "catalog_items" ResponseTypeCreative ResponseType = "creative" ResponseTypeDeal ResponseType = "deal" )
func KnownResponseTypeValues ¶
func KnownResponseTypeValues() []ResponseType
KnownResponseTypeValues returns the current schema-defined values for ResponseType.
func ParseResponseType ¶
func ParseResponseType(s string) (ResponseType, error)
ParseResponseType returns s as ResponseType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type RestrictedAttribute ¶
type RestrictedAttribute = string
RestrictedAttribute — Personal data categories that may be restricted from use in audience
const ( RestrictedAttributeRacialEthnicOrigin RestrictedAttribute = "racial_ethnic_origin" RestrictedAttributePoliticalOpinions RestrictedAttribute = "political_opinions" RestrictedAttributeReligiousBeliefs RestrictedAttribute = "religious_beliefs" RestrictedAttributeTradeUnionMembership RestrictedAttribute = "trade_union_membership" RestrictedAttributeHealthData RestrictedAttribute = "health_data" RestrictedAttributeSexLifeSexualOrientation RestrictedAttribute = "sex_life_sexual_orientation" RestrictedAttributeGeneticData RestrictedAttribute = "genetic_data" RestrictedAttributeBiometricData RestrictedAttribute = "biometric_data" RestrictedAttributeAge RestrictedAttribute = "age" RestrictedAttributeFamilialStatus RestrictedAttribute = "familial_status" )
func KnownRestrictedAttributeValues ¶
func KnownRestrictedAttributeValues() []RestrictedAttribute
KnownRestrictedAttributeValues returns the current schema-defined values for RestrictedAttribute.
func ParseRestrictedAttribute ¶
func ParseRestrictedAttribute(s string) (RestrictedAttribute, error)
ParseRestrictedAttribute returns s as RestrictedAttribute when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type RevocationNotification ¶
type RevocationNotification struct {
IdempotencyKey string `json:"idempotency_key"` // Sender-generated key stable across retries of the same revocation
RightsID string `json:"rights_id"` // The revoked rights grant identifier
BrandID string `json:"brand_id"` // Brand identifier of the rights subject
Reason string `json:"reason"` // Human-readable reason for revocation
EffectiveAt string `json:"effective_at"` // When the revocation takes effect. Immediate revocations use current time.
RevokedUses []RightUse `json:"revoked_uses,omitempty"` // If present, only these uses are revoked (partial revocation). If absent, all
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
RevocationNotification — Payload sent by a rights holder to a buyer's revocation_webhook when rights are revoked. The buyer
func (*RevocationNotification) IdempotencyKeyPtr ¶
func (p *RevocationNotification) IdempotencyKeyPtr() *string
type RightType ¶
type RightType = string
RightType — Categories of intellectual property rights that can be licensed through the
func KnownRightTypeValues ¶
func KnownRightTypeValues() []RightType
KnownRightTypeValues returns the current schema-defined values for RightType.
func ParseRightType ¶
ParseRightType returns s as RightType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type RightUse ¶
type RightUse = string
RightUse — Types of rights usage that can be licensed through the brand protocol. Aligned
const ( RightUseLikeness RightUse = "likeness" RightUseVoice RightUse = "voice" RightUseName RightUse = "name" RightUseEndorsement RightUse = "endorsement" RightUseMotionCapture RightUse = "motion_capture" RightUseSignature RightUse = "signature" RightUseCatchphrase RightUse = "catchphrase" RightUseSync RightUse = "sync" RightUseBackgroundMusic RightUse = "background_music" RightUseEditorial RightUse = "editorial" RightUseCommercial RightUse = "commercial" RightUseAIGeneratedImage RightUse = "ai_generated_image" )
func KnownRightUseValues ¶
func KnownRightUseValues() []RightUse
KnownRightUseValues returns the current schema-defined values for RightUse.
func ParseRightUse ¶
ParseRightUse returns s as RightUse when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type RightsAgentRef ¶
type RightsAgentRef struct {
URL string `json:"url"` // MCP endpoint URL of the rights agent
ID string `json:"id"` // Agent identifier
}
RightsAgentRef — The agent that granted these rights
type RightsBillingPeriod ¶
type RightsBillingPeriod = string
RightsBillingPeriod — Billing period for brand rights pricing
const ( RightsBillingPeriodDaily RightsBillingPeriod = "daily" RightsBillingPeriodWeekly RightsBillingPeriod = "weekly" RightsBillingPeriodMonthly RightsBillingPeriod = "monthly" RightsBillingPeriodQuarterly RightsBillingPeriod = "quarterly" RightsBillingPeriodAnnual RightsBillingPeriod = "annual" RightsBillingPeriodOneTime RightsBillingPeriod = "one_time" )
func KnownRightsBillingPeriodValues ¶
func KnownRightsBillingPeriodValues() []RightsBillingPeriod
KnownRightsBillingPeriodValues returns the current schema-defined values for RightsBillingPeriod.
func ParseRightsBillingPeriod ¶
func ParseRightsBillingPeriod(s string) (RightsBillingPeriod, error)
ParseRightsBillingPeriod returns s as RightsBillingPeriod when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type RightsConstraint ¶
type RightsConstraint struct {
RightsID string `json:"rights_id"` // Rights grant identifier from the acquire_rights response
RightsAgent RightsAgentRef `json:"rights_agent"` // The agent that granted these rights
ValidFrom string `json:"valid_from,omitempty"` // Start of the rights validity period
ValidUntil string `json:"valid_until,omitempty"` // End of the rights validity period. Creative should not be served after this
Uses []RightUse `json:"uses"` // Rights uses covered by this constraint
Countries []string `json:"countries,omitempty"` // Countries where this creative may be served under these rights (ISO 3166-1
ExcludedCountries []string `json:"excluded_countries,omitempty"` // Countries excluded from rights availability (ISO 3166-1 alpha-2). Use when the
ImpressionCap int `json:"impression_cap,omitempty"` // Maximum total impressions allowed for the full validity period (valid_from to
RightType RightType `json:"right_type,omitempty"` // Type of rights (talent, music, etc.). Helps identify constraints when a
ApprovalStatus string `json:"approval_status,omitempty"` // Approval status from the rights holder at manifest creation time (snapshot
VerificationURL string `json:"verification_url,omitempty"` // URL where downstream supply chain participants can verify this rights grant is
Ext any `json:"ext,omitempty"`
}
RightsConstraint — Rights metadata attached to a creative manifest. Each entry represents constraints from a single
type SICapabilities ¶
type SICapabilities struct {
Endpoint SIEndpoint `json:"endpoint"`
Capabilities map[string]any `json:"capabilities"`
BrandURL string `json:"brand_url,omitempty"`
}
SICapabilities is the sponsored_intelligence protocol capability block. Callers declaring this block MUST populate Endpoint.Transports and Capabilities — the schema requires both, and a nil/empty value will fail upstream validation.
type SIEndpoint ¶
type SIEndpoint struct {
Transports []SITransport `json:"transports"`
Preferred string `json:"preferred,omitempty"`
}
type SITransport ¶
type ScanType ¶
type ScanType = string
ScanType — Video scan method. Modern digital delivery requires progressive scan
func KnownScanTypeValues ¶
func KnownScanTypeValues() []ScanType
KnownScanTypeValues returns the current schema-defined values for ScanType.
func ParseScanType ¶
ParseScanType returns s as ScanType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type SeedSuccess ¶
type SeedSuccess struct {
Success bool `json:"success"`
Message string `json:"message,omitempty"` // Human-readable acknowledgement.
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SeedSuccess — A seed_* scenario successfully pre-populated a fixture in the seller's test state
type ServeOption ¶
type ServeOption func(*serveConfig)
ServeOption configures the HTTP server.
func WithPath ¶
func WithPath(path string) ServeOption
WithPath sets the MCP endpoint path (default: /mcp).
func WithPort ¶
func WithPort(port int) ServeOption
WithPort sets the listen port (default: PORT env or 3001).
type SiSessionStatus ¶
type SiSessionStatus = string
SiSessionStatus — State of a Sponsored Intelligence session between a host and a brand agent
const ( SiSessionStatusActive SiSessionStatus = "active" SiSessionStatusPendingHandoff SiSessionStatus = "pending_handoff" SiSessionStatusComplete SiSessionStatus = "complete" SiSessionStatusTerminated SiSessionStatus = "terminated" )
func KnownSiSessionStatusValues ¶
func KnownSiSessionStatusValues() []SiSessionStatus
KnownSiSessionStatusValues returns the current schema-defined values for SiSessionStatus.
func ParseSiSessionStatus ¶
func ParseSiSessionStatus(s string) (SiSessionStatus, error)
ParseSiSessionStatus returns s as SiSessionStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Signal ¶
type Signal struct {
ID string `json:"id"` // Signal identifier within the publishing domain's adagents.json signals[]
Name string `json:"name"` // Human-readable signal name
Description string `json:"description,omitempty"` // Detailed description of what this signal represents and how it's derived
ValueType SignalValueType `json:"value_type"` // The data type of this signal's values
Tags []string `json:"tags,omitempty"` // Tags for grouping and filtering this domain's published signal definitions
AllowedValues []string `json:"allowed_values,omitempty"` // For categorical signals, the valid values users can be assigned
RestrictedAttributes []RestrictedAttribute `json:"restricted_attributes,omitempty"` // Restricted attribute categories this signal touches. Data providers SHOULD
PolicyCategories []string `json:"policy_categories,omitempty"` // Policy categories this signal is sensitive for (e.g., a children's interest
Range *SignalRange `json:"range,omitempty"` // For numeric signals, the valid value range
Taxonomy *SignalTaxonomy `json:"taxonomy,omitempty"` // Optional taxonomy metadata describing what this signal means in an external
SegmentationCriteria string `json:"segmentation_criteria,omitempty"` // Rules governing inclusion of identifiers in the segment. Aligns with IAB Data
CriteriaURL string `json:"criteria_url,omitempty"` // Optional URL to a longer-form methodology or criteria document. This is a
DataSources []string `json:"data_sources,omitempty"` // Origin categories of the raw data used to compile the signal, aligned with IAB
Methodology string `json:"methodology,omitempty"` // How the signal's audience membership or attribute was determined. 'modeled'
AudienceExpansion *bool `json:"audience_expansion,omitempty"` // Whether look-alike or similar-audience expansion was used to include
DeviceExpansion *bool `json:"device_expansion,omitempty"` // Whether the signal was expanded deterministically across devices of the same
RefreshCadence string `json:"refresh_cadence,omitempty"` // Cadence at which the signal definition's underlying segment membership is
LookbackWindow string `json:"lookback_window,omitempty"` // Time window in which a qualifying event can occur for inclusion.
Onboarder *SignalOnboarder `json:"onboarder,omitempty"` // Onboarder disclosure. Required when data_sources includes an offline_* or
SubjectType string `json:"subject_type,omitempty"` // What kind of subject this signal characterizes.
ResolutionMethod string `json:"resolution_method,omitempty"` // How the subject is resolved at decision time.
IDTypes []string `json:"id_types,omitempty"` // Identifier currencies analyzed to determine audience membership or attributes.
AudienceScope string `json:"audience_scope,omitempty"` // Context within which the audience attribute was determined. 'single_domain'
OriginatingDomain string `json:"originating_domain,omitempty"` // Domain of the digital property where the audience originates. Required when
Countries []string `json:"countries,omitempty"` // ISO 3166-1 alpha-2 country codes where the signal is applicable. Sellers must
ConsentBasis []ConsentBasis `json:"consent_basis,omitempty"` // Declared GDPR Article 6 lawful basis or consent basis under which this
Art9Basis string `json:"art9_basis,omitempty"` // GDPR Article 9 basis when restricted_attributes is non-empty and the signal is
Modeling *SignalModeling `json:"modeling,omitempty"` // Modeling disclosure for modeled data signals. Required when methodology is
DataSubjectRights *SignalDataSubjectRights `json:"data_subject_rights,omitempty"` // Per-signal data-subject-rights routing. Inline on the signal because upstream
LastUpdated string `json:"last_updated,omitempty"` // When this definition record was last updated. This indicates freshness of the
DtsCompliantVersion string `json:"dts_compliant_version,omitempty"` // IAB Data Transparency Standard version this signal definition self-attests as
}
Signal — Definition of a signal in published adagents.json signals[]. The publishing domain supplies the
type SignalCatalogType ¶
type SignalCatalogType = string
SignalCatalogType — Commercial/provenance types for signals available for audience targeting
const ( SignalCatalogTypeMarketplace SignalCatalogType = "marketplace" SignalCatalogTypeCustom SignalCatalogType = "custom" SignalCatalogTypeOwned SignalCatalogType = "owned" )
func KnownSignalCatalogTypeValues ¶
func KnownSignalCatalogTypeValues() []SignalCatalogType
KnownSignalCatalogTypeValues returns the current schema-defined values for SignalCatalogType.
func ParseSignalCatalogType ¶
func ParseSignalCatalogType(s string) (SignalCatalogType, error)
ParseSignalCatalogType returns s as SignalCatalogType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type SignalCoverageForecast ¶
type SignalCoverageForecast struct {
Points []ForecastPoint `json:"points"` // Coverage or availability points. Each point reuses the standard ForecastPoint
ForecastRangeUnit string `json:"forecast_range_unit"` // How to interpret the points array. Signal coverage forecasts always use
Method ForecastMethod `json:"method"` // Method used to produce this coverage forecast.
Scope SignalCoverageForecastScope `json:"scope"` // Explicit denominator for the coverage forecast. This identifies the inventory
BucketSemantics string `json:"bucket_semantics"` // 'exclusive' means the returned signal-value buckets do not overlap with each
BucketCompleteness string `json:"bucket_completeness"` // 'complete' means the returned buckets cover the declared denominator. For
GeneratedAt string `json:"generated_at,omitempty"` // When this coverage forecast was computed.
ValidUntil string `json:"valid_until,omitempty"` // When this coverage forecast expires.
Ext any `json:"ext,omitempty"`
}
SignalCoverageForecast — Forecast-shaped availability guidance for a signal. Use this when a seller or signal source can
type SignalCoverageForecastScope ¶
type SignalCoverageForecastScope struct {
Kind string `json:"kind"` // Denominator family for the coverage forecast.
Label string `json:"label"` // Human-readable denominator label, such as 'network price-priority inventory'.
ProductID string `json:"product_id,omitempty"` // Product denominator when kind is 'product'.
Countries []string `json:"countries,omitempty"` // Countries included in the denominator, as ISO 3166-1 alpha-2 codes.
LineItemTypes []string `json:"line_item_types,omitempty"` // Seller or ad-server line item types included in the denominator.
DateRange *DateRange `json:"date_range,omitempty"` // Historical or planned date window used to compute the denominator.
}
SignalCoverageForecastScope — Explicit denominator for the coverage forecast.
type SignalDataSubjectRights ¶
type SignalDataSubjectRights struct {
UpstreamSourceDomain string `json:"upstream_source_domain,omitempty"` // Domain of the upstream data source whose rights process these channels reach
Channels []SignalDataSubjectRightsChannel `json:"channels"` // Rights request channels and the rights each channel supports. At least one
ResponseSlaDays int `json:"response_sla_days,omitempty"` // Maximum response time in days for rights requests handled through the declared
CcpaOptOutURL string `json:"ccpa_opt_out_url,omitempty"` // US-specific 'Do Not Sell or Share' opt-out URL where required.
}
SignalDataSubjectRights — Per-signal data-subject-rights routing. Inline on the signal because upstream source, rights
type SignalDataSubjectRightsChannel ¶
type SignalDataSubjectRightsChannel struct {
Rights []string `json:"rights"` // Rights supported by this channel.
URL string `json:"url,omitempty"` // HTTPS URL for submitting the rights request.
Email string `json:"email,omitempty"` // Email address for submitting the rights request.
Languages []string `json:"languages,omitempty"` // BCP 47 language tags supported by this channel.
Countries []string `json:"countries,omitempty"` // ISO 3166-1 alpha-2 countries this channel serves, when the provider routes
}
type SignalFilters ¶
type SignalFilters struct {
MaxCPM float64 `json:"max_cpm,omitempty"`
MinCoveragePercentage float64 `json:"min_coverage_percentage,omitempty"`
CatalogTypes []string `json:"catalog_types,omitempty"`
}
SignalFilters contains optional filters for get_signals.
type SignalListing ¶
type SignalListing struct {
SignalRef *SignalRef `json:"signal_ref,omitempty"` // Canonical signal reference. Use scope 'product' for a product-local signal
// Deprecated: DEPRECATED.
SignalID *SignalID `json:"signal_id,omitempty"` // DEPRECATED. Use signal_ref instead. Legacy SignalId retained for compatibility
Name string `json:"name,omitempty"` // Human-readable signal name. Required when signal_ref.scope is 'product'. For
Description string `json:"description,omitempty"` // Detailed signal description. For data_provider and signal_source refs, this is
MethodologyURL string `json:"methodology_url,omitempty"` // Optional link to published methodology, media-kit, or data documentation. For
LastUpdated string `json:"last_updated,omitempty"` // When this listing record was last updated. This indicates freshness of the
ValueType SignalValueType `json:"value_type,omitempty"` // The data type of this signal's values. Required when signal_ref.scope is
Categories []string `json:"categories,omitempty"` // Valid values for categorical signals. Present when value_type is 'categorical'.
Range *SignalRange `json:"range,omitempty"` // Valid range for numeric signals. Present when value_type is 'numeric'.
}
SignalListing — Shared signal identity and definition metadata used when a signal is listed outside its
type SignalModeling ¶
type SignalModeling struct {
Method string `json:"method"`
SeedSource *SignalModelingSeedSource `json:"seed_source"`
TrainingDataJurisdictions []string `json:"training_data_jurisdictions"` // ISO 3166-1 alpha-2 country codes where the model's training data was collected.
AIActRiskClass string `json:"ai_act_risk_class"` // EU AI Act risk classification self-declared by the provider. Prohibited-risk
Disclosure *SignalModelingDisclosure `json:"disclosure,omitempty"` // Signal/modeling-specific disclosure requirements and jurisdictional notes.
}
SignalModeling — Modeling disclosure for modeled data signals. Required when methodology is 'modeled' or
type SignalModelingDisclosure ¶
type SignalModelingDisclosure struct {
Required bool `json:"required"` // The provider's claim that a modeling or AI-use disclosure is required for this
Jurisdictions []SignalModelingDisclosureJurisdiction `json:"jurisdictions,omitempty"` // Jurisdictions where a modeling or AI-use disclosure applies.
Notes string `json:"notes,omitempty"` // Optional provider notes on how the disclosure should be interpreted.
}
SignalModelingDisclosure — Disclosure requirements and jurisdictional notes for modeled data signals. This schema is
type SignalModelingDisclosureJurisdiction ¶
type SignalModelingDisclosureJurisdiction struct {
Country string `json:"country"` // ISO 3166-1 alpha-2 country code.
Region string `json:"region,omitempty"` // Provider-defined sub-national region code or name when the obligation is
Regulation string `json:"regulation"` // Provider-supplied regulation identifier for the disclosure obligation.
DisclosureText string `json:"disclosure_text,omitempty"` // Human-readable disclosure text or summary the provider expects buyers or
DisclosureURL string `json:"disclosure_url,omitempty"` // Optional URL to the provider's canonical disclosure or methodology page for
Audience string `json:"audience,omitempty"` // Primary audience for this disclosure entry.
}
type SignalOnboarder ¶
type SignalOnboarder struct {
MatchKeys []string `json:"match_keys"`
PreOnboardingAudienceExpansion *bool `json:"pre_onboarding_audience_expansion,omitempty"`
PreOnboardingDeviceExpansion *bool `json:"pre_onboarding_device_expansion,omitempty"`
PreOnboardingPrecisionLevel string `json:"pre_onboarding_precision_level,omitempty"`
}
SignalOnboarder — Onboarder disclosure. Required when data_sources includes an offline_* or public_record_* source.
type SignalPricing ¶
type SignalPricing = VendorPricingOption
SignalPricing is an alias for VendorPricingOption. Upstream's signal-pricing-option.json is a deprecated $ref to vendor-pricing-option.json; the two were always the same shape on the wire. Kept here so existing callers that reference SignalPricing continue to compile.
type SignalRange ¶
type SignalRange struct {
Min float64 `json:"min"` // Minimum value
Max float64 `json:"max"` // Maximum value
Unit string `json:"unit,omitempty"` // Unit of measurement (e.g., 'score', 'dollars', 'years')
}
SignalRange — For numeric signals, the valid value range
type SignalRef ¶
type SignalRef struct {
Scope string `json:"scope,omitempty"` // Discriminator indicating the signal resolves through the issuing signal source.
SignalID string `json:"signal_id,omitempty"` // Signal identifier within the issuing signal source's signal set.
DataProviderDomain string `json:"data_provider_domain,omitempty"` // Domain that publishes the signal definition in its adagents.json signals[].
SignalSourceURL string `json:"signal_source_url,omitempty"` // URL of the signal source that issues this source-native signal.
}
SignalRef — Reference to a named signal definition. Uses scope as discriminator: 'data_provider' for a signal
type SignalSelectionGroupRule ¶
type SignalSelectionGroupRule struct {
SelectionGroup string `json:"selection_group"` // ProductSignalTargetingOption.selection_group value this rule applies to.
TargetingMode string `json:"targeting_mode,omitempty"` // How options in this selection_group are intended to be used in
SelectionMode string `json:"selection_mode,omitempty"` // Selection behavior for this selection_group. 'required' means at least
MinSelectedSignals int `json:"min_selected_signals,omitempty"` // Minimum selected options from this selection_group. If selection_mode is
MaxSelectedSignals int `json:"max_selected_signals,omitempty"` // Maximum selected options from this selection_group.
}
SignalSelectionGroupRule — Product-scoped override for one ProductSignalTargetingOption.selection_group value. Use this when
type SignalSource ¶
type SignalSource = string
SignalSource — Source type for signal identifiers. Determines how the signal is referenced
const ( SignalSourceCatalog SignalSource = "catalog" SignalSourceAgent SignalSource = "agent" )
func KnownSignalSourceValues ¶
func KnownSignalSourceValues() []SignalSource
KnownSignalSourceValues returns the current schema-defined values for SignalSource.
func ParseSignalSource ¶
func ParseSignalSource(s string) (SignalSource, error)
ParseSignalSource returns s as SignalSource when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type SignalTargeting ¶
type SignalTargeting struct {
SignalRef *SignalRef `json:"signal_ref,omitempty"` // The signal to target. New targeting constraints SHOULD use signal_ref.
// Deprecated: DEPRECATED.
SignalID *SignalID `json:"signal_id,omitempty"` // DEPRECATED. Use signal_ref instead. Legacy SignalId retained for compatibility
ValueType string `json:"value_type,omitempty"` // Discriminator for numeric signals
Value *bool `json:"value,omitempty"` // Whether to include (true) or exclude (false) users matching this signal
Values []string `json:"values,omitempty"` // Values to target. Users with any of these values will be included.
MinValue *float64 `json:"min_value,omitempty"` // Minimum value (inclusive). Omit for no minimum. Must be <= max_value when both
MaxValue *float64 `json:"max_value,omitempty"` // Maximum value (inclusive). Omit for no maximum. Must be >= min_value when both
}
SignalTargeting — Targeting constraint for a specific signal. Uses value_type as discriminator to determine the
func (SignalTargeting) Validate ¶
func (t SignalTargeting) Validate(opts ...ValidationOption) []ValidationIssue
Validate checks SignalTargeting's current-schema oneOf invariants. It is intentionally opt-in and forward-compatible: unknown value_type values are ignored unless WithStrictEnums is supplied.
type SignalTargetingExpression ¶
type SignalTargetingExpression struct {
SignalRef *SignalRef `json:"signal_ref,omitempty"` // Named signal being targeted.
ValueType string `json:"value_type,omitempty"` // Discriminator for numeric signals.
Value *bool `json:"value,omitempty"` // Binary package signal entries match users for whom the signal is true. Use the
Values []string `json:"values,omitempty"` // Values to target. Users with any of these values match the expression.
MinValue *float64 `json:"min_value,omitempty"` // Minimum value, inclusive. Omit for no minimum. Should be within the signal
MaxValue *float64 `json:"max_value,omitempty"` // Maximum value, inclusive. Omit for no maximum. Should be within the signal
}
SignalTargetingExpression — Predicate over a named signal definition. Signals are typed dimensions, similar to feature values
type SignalTargetingRules ¶
type SignalTargetingRules struct {
ResolutionModel string `json:"resolution_model,omitempty"` // How selected signal_targeting_options are resolved against the product's
SelectionMode string `json:"selection_mode,omitempty"` // Default selection behavior for selectable signals on this product. 'optional'
MinSelectedSignals *int `json:"min_selected_signals,omitempty"` // Minimum number of signals the buyer must select when selection_mode is
MaxSelectedSignals int `json:"max_selected_signals,omitempty"` // Maximum number of signals the buyer may select for a package. Omit when there
MaxSelectedPerGroup int `json:"max_selected_per_group,omitempty"` // Maximum number of signal_targeting_options the buyer may select from the same
MaxSignalTargetingGroups int `json:"max_signal_targeting_groups,omitempty"` // Maximum number of child groups allowed in
MaxSignalsPerTargetingGroup int `json:"max_signals_per_targeting_group,omitempty"` // Maximum number of signals allowed in each
SelectionGroupRules []SignalSelectionGroupRule `json:"selection_group_rules,omitempty"` // Optional product-scoped overrides for specific
}
SignalTargetingRules — Product-level composition rules for selecting signals on packages. The selectable signal menu may
type SignalTaxonomy ¶
type SignalTaxonomy struct {
Ref string `json:"ref"` // URI identifying the taxonomy or taxonomy documentation.
Version string `json:"version,omitempty"` // Version identifier for the taxonomy when the taxonomy has versioned definitions.
Segtax int `json:"segtax,omitempty"` // OpenRTB segtax code when the taxonomy maps to an OpenRTB segment taxonomy.
Etag string `json:"etag,omitempty"` // Optional validator for custom taxonomy definitions so consumers can detect
Values []SignalTaxonomyValue `json:"values"` // Taxonomy node values that describe this signal. These are meaning/discovery
ValueMappings []SignalTaxonomyValueMapping `json:"value_mappings,omitempty"` // For categorical signals, maps package-targeting allowed_values[] strings to
ParentMatchBehavior string `json:"parent_match_behavior,omitempty"` // Whether this signal definition supports treating a parent taxonomy node as
}
SignalTaxonomy — Optional taxonomy metadata describing what this signal means in an external audience, content
type SignalTaxonomyValue ¶
type SignalTaxonomyValue struct {
ID string `json:"id"` // Taxonomy node identifier.
Path string `json:"path,omitempty"` // Optional human-readable or taxonomy-native path for display and review.
Modifiers []string `json:"modifiers,omitempty"` // Optional taxonomy-specific modifiers that qualify the node.
}
type SignalTaxonomyValueMapping ¶
type SignalTaxonomyValueMapping struct {
Value string `json:"value"` // Categorical value from allowed_values[].
TaxonomyValueID string `json:"taxonomy_value_id"` // Taxonomy node identifier corresponding to this categorical value.
Path string `json:"path,omitempty"` // Optional human-readable or taxonomy-native path for display and review.
Modifiers []string `json:"modifiers,omitempty"` // Optional taxonomy-specific modifiers that qualify the mapped value.
}
type SignalValueType ¶
type SignalValueType = string
SignalValueType — The data type of a signal's values, determining how it can be targeted
const ( SignalValueTypeBinary SignalValueType = "binary" SignalValueTypeCategorical SignalValueType = "categorical" SignalValueTypeNumeric SignalValueType = "numeric" )
func KnownSignalValueTypeValues ¶
func KnownSignalValueTypeValues() []SignalValueType
KnownSignalValueTypeValues returns the current schema-defined values for SignalValueType.
func ParseSignalValueType ¶
func ParseSignalValueType(s string) (SignalValueType, error)
ParseSignalValueType returns s as SignalValueType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type SignalsCapabilities ¶
type SignalsCapabilities struct {
DataProviderDomains []string `json:"data_provider_domains,omitempty"`
DiscoveryModes []string `json:"discovery_modes,omitempty"`
Features map[string]bool `json:"features,omitempty"`
}
SignalsCapabilities is the signals protocol capability block.
type SimulateBudgetParams ¶
type SimulateBudgetParams struct {
AccountID string `json:"account_id,omitempty"`
MediaBuyID string `json:"media_buy_id,omitempty"`
SpendPercentage float64 `json:"spend_percentage"`
}
SimulateBudgetParams contains budget simulation parameters.
type SimulateDeliveryParams ¶
type SimulateDeliveryParams struct {
Impressions int `json:"impressions,omitempty"`
Clicks int `json:"clicks,omitempty"`
ReportedSpend *ReportedSpend `json:"reported_spend,omitempty"`
Conversions int `json:"conversions,omitempty"`
Viewability *DeliveryViewability `json:"viewability,omitempty"`
}
SimulateDeliveryParams contains delivery simulation parameters.
type SimulationResult ¶
type SimulationResult struct {
Success bool `json:"success"`
Simulated any `json:"simulated"`
Cumulative any `json:"cumulative,omitempty"`
}
SimulationResult is returned by simulate_* scenarios.
type SimulationSuccess ¶
type SimulationSuccess struct {
Success bool `json:"success"`
Simulated map[string]any `json:"simulated"` // Values injected or applied by this call. Shape depends on scenario.
Cumulative map[string]any `json:"cumulative,omitempty"` // Running totals across all simulation calls (simulate_delivery only)
Message string `json:"message,omitempty"`
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SimulationSuccess — A simulate_delivery or simulate_budget_spend scenario succeeded. For delivery: simulated contains
type SlaWindow ¶
type SlaWindow struct {
ResponseMax string `json:"response_max,omitempty"` // Maximum time from when the buyer issues the action to when the seller
CompletionMax string `json:"completion_max,omitempty"` // Maximum time from buyer issuing the action to the seller completing it
}
SlaWindow — Service-level commitment a seller declares for a given action. Optional throughout: absence means
type SnapshotUnavailableReason ¶
type SnapshotUnavailableReason = string
SnapshotUnavailableReason — Machine-readable reason a delivery snapshot was requested but could not be
const ( )
func KnownSnapshotUnavailableReasonValues ¶
func KnownSnapshotUnavailableReasonValues() []SnapshotUnavailableReason
KnownSnapshotUnavailableReasonValues returns the current schema-defined values for SnapshotUnavailableReason.
func ParseSnapshotUnavailableReason ¶
func ParseSnapshotUnavailableReason(s string) (SnapshotUnavailableReason, error)
ParseSnapshotUnavailableReason returns s as SnapshotUnavailableReason when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type SocialPlacementSurface ¶
type SocialPlacementSurface = string
SocialPlacementSurface — Declared social-placement surface classification for social inventory
const ( SocialPlacementSurfaceFeed SocialPlacementSurface = "feed" SocialPlacementSurfaceStories SocialPlacementSurface = "stories" SocialPlacementSurfaceShortVideo SocialPlacementSurface = "short_video" SocialPlacementSurfaceExplore SocialPlacementSurface = "explore" SocialPlacementSurfaceSearch SocialPlacementSurface = "search" )
func KnownSocialPlacementSurfaceValues ¶
func KnownSocialPlacementSurfaceValues() []SocialPlacementSurface
KnownSocialPlacementSurfaceValues returns the current schema-defined values for SocialPlacementSurface.
func ParseSocialPlacementSurface ¶
func ParseSocialPlacementSurface(s string) (SocialPlacementSurface, error)
ParseSocialPlacementSurface returns s as SocialPlacementSurface when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type SortDirection ¶
type SortDirection = string
SortDirection — Sort direction for list queries
const ( SortDirectionAsc SortDirection = "asc" SortDirectionDesc SortDirection = "desc" )
func KnownSortDirectionValues ¶
func KnownSortDirectionValues() []SortDirection
KnownSortDirectionValues returns the current schema-defined values for SortDirection.
func ParseSortDirection ¶
func ParseSortDirection(s string) (SortDirection, error)
ParseSortDirection returns s as SortDirection when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type SortMetric ¶
type SortMetric = string
SortMetric — Numeric delivery metrics available for sorting breakdown rows. Subset of
const ( SortMetricImpressions SortMetric = "impressions" SortMetricSpend SortMetric = "spend" SortMetricClicks SortMetric = "clicks" SortMetricCtr SortMetric = "ctr" SortMetricViews SortMetric = "views" SortMetricCompletedViews SortMetric = "completed_views" SortMetricCompletionRate SortMetric = "completion_rate" SortMetricConversions SortMetric = "conversions" SortMetricConversionValue SortMetric = "conversion_value" SortMetricRoas SortMetric = "roas" SortMetricCostPerAcquisition SortMetric = "cost_per_acquisition" SortMetricNewToBrandRate SortMetric = "new_to_brand_rate" SortMetricLeads SortMetric = "leads" SortMetricGrps SortMetric = "grps" SortMetricReach SortMetric = "reach" SortMetricFrequency SortMetric = "frequency" SortMetricEngagements SortMetric = "engagements" SortMetricFollows SortMetric = "follows" SortMetricSaves SortMetric = "saves" SortMetricProfileVisits SortMetric = "profile_visits" SortMetricEngagementRate SortMetric = "engagement_rate" SortMetricCostPerClick SortMetric = "cost_per_click" )
func KnownSortMetricValues ¶
func KnownSortMetricValues() []SortMetric
KnownSortMetricValues returns the current schema-defined values for SortMetric.
func ParseSortMetric ¶
func ParseSortMetric(s string) (SortMetric, error)
ParseSortMetric returns s as SortMetric when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Special ¶
type Special struct {
Name string `json:"name"` // Name of the event (e.g., 'Olympics 2028', 'Super Bowl LXI')
Category SpecialCategory `json:"category,omitempty"` // Category of the event
Starts string `json:"starts,omitempty"` // When the event starts (ISO 8601)
Ends string `json:"ends,omitempty"` // When the event ends (ISO 8601). Omit for single-day events.
}
Special — Event-anchored content tied to a real-world event or occasion. When present on a collection
type SpecialCategory ¶
type SpecialCategory = string
SpecialCategory — Category of special or event-anchored content
const ( SpecialCategoryAwards SpecialCategory = "awards" SpecialCategoryChampionship SpecialCategory = "championship" SpecialCategoryConcert SpecialCategory = "concert" SpecialCategoryConference SpecialCategory = "conference" SpecialCategoryElection SpecialCategory = "election" SpecialCategoryFestival SpecialCategory = "festival" SpecialCategoryGala SpecialCategory = "gala" SpecialCategoryHoliday SpecialCategory = "holiday" SpecialCategoryPremiere SpecialCategory = "premiere" SpecialCategoryProductLaunch SpecialCategory = "product_launch" SpecialCategoryReunion SpecialCategory = "reunion" SpecialCategoryTribute SpecialCategory = "tribute" )
func KnownSpecialCategoryValues ¶
func KnownSpecialCategoryValues() []SpecialCategory
KnownSpecialCategoryValues returns the current schema-defined values for SpecialCategory.
func ParseSpecialCategory ¶
func ParseSpecialCategory(s string) (SpecialCategory, error)
ParseSpecialCategory returns s as SpecialCategory when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Specialism ¶
type Specialism = string
Specialism — Specialized capability claims an agent can make. Each specialism maps to a
const ( SpecialismAudienceSync Specialism = "audience-sync" SpecialismBrandRights Specialism = "brand-rights" SpecialismCollectionLists Specialism = "collection-lists" SpecialismContentStandards Specialism = "content-standards" SpecialismCreativeAdServer Specialism = "creative-ad-server" SpecialismCreativeGenerative Specialism = "creative-generative" SpecialismCreativeTemplate Specialism = "creative-template" SpecialismCreativeTransformers Specialism = "creative-transformers" SpecialismGovernanceAwareSeller Specialism = "governance-aware-seller" SpecialismGovernanceDeliveryMonitor Specialism = "governance-delivery-monitor" SpecialismGovernanceSpendAuthority Specialism = "governance-spend-authority" SpecialismPropertyLists Specialism = "property-lists" SpecialismSalesBroadcastTv Specialism = "sales-broadcast-tv" SpecialismSalesCatalogDriven Specialism = "sales-catalog-driven" SpecialismSalesGuaranteed Specialism = "sales-guaranteed" SpecialismSalesNonGuaranteed Specialism = "sales-non-guaranteed" SpecialismSalesProposalMode Specialism = "sales-proposal-mode" SpecialismSalesSocial Specialism = "sales-social" SpecialismSignalMarketplace Specialism = "signal-marketplace" SpecialismSignalOwned Specialism = "signal-owned" SpecialismSignedRequests Specialism = "signed-requests" SpecialismSponsoredIntelligence Specialism = "sponsored-intelligence" )
func KnownSpecialismValues ¶
func KnownSpecialismValues() []Specialism
KnownSpecialismValues returns the current schema-defined values for Specialism.
func ParseSpecialism ¶
func ParseSpecialism(s string) (Specialism, error)
ParseSpecialism returns s as Specialism when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type SponsoredPlacementType ¶
type SponsoredPlacementType = string
SponsoredPlacementType — Declared sponsored-placement classification for catalog-driven retail-media
const ( SponsoredPlacementTypeSponsoredSearch SponsoredPlacementType = "sponsored_search" SponsoredPlacementTypeSponsoredDisplay SponsoredPlacementType = "sponsored_display" SponsoredPlacementTypeSponsoredNative SponsoredPlacementType = "sponsored_native" )
func KnownSponsoredPlacementTypeValues ¶
func KnownSponsoredPlacementTypeValues() []SponsoredPlacementType
KnownSponsoredPlacementTypeValues returns the current schema-defined values for SponsoredPlacementType.
func ParseSponsoredPlacementType ¶
func ParseSponsoredPlacementType(s string) (SponsoredPlacementType, error)
ParseSponsoredPlacementType returns s as SponsoredPlacementType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type StateTransition ¶
type StateTransition struct {
Success bool `json:"success"`
PreviousState string `json:"previous_state"`
CurrentState string `json:"current_state"`
}
StateTransition is returned by force_* scenarios.
type StateTransitionSuccess ¶
type StateTransitionSuccess struct {
Success bool `json:"success"`
PreviousState string `json:"previous_state"` // State before this transition
CurrentState string `json:"current_state"` // State after this transition
Message string `json:"message,omitempty"` // Human-readable description of the transition
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
StateTransitionSuccess — A force_* scenario successfully transitioned the entity to the target state
type SyncAccountsRequest ¶
type SyncAccountsRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for at-most-once execution. Natural per-account
Accounts []AccountInput `json:"accounts"` // Per-account sync entries. Each entry uses one of two key shapes: the `account`
DeleteMissing *bool `json:"delete_missing,omitempty"` // When true, accounts previously synced by this agent but not included in this
DryRun *bool `json:"dry_run,omitempty"` // When true, preview what would change without applying. Returns what would be
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Webhook for async notifications when account status changes (e.g.
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SyncAccountsRequest — Sync advertiser account state with a seller. Two modes, distinguished by the key on each
type SyncCatalogsRequest ¶
type SyncCatalogsRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for at-most-once execution. `catalog_id` gives
Account AccountReference `json:"account"` // Account that owns these catalogs.
Catalogs []CatalogInput `json:"catalogs,omitempty"` // Array of catalog feeds to sync (create or update). When omitted, the call is
CatalogIDs []string `json:"catalog_ids,omitempty"` // Optional filter to limit sync scope to specific catalog IDs. When provided
DeleteMissing *bool `json:"delete_missing,omitempty"` // When true, buyer-managed catalogs on the account not included in this sync
DryRun *bool `json:"dry_run,omitempty"` // When true, preview changes without applying them. Returns what would be
ValidationMode ValidationMode `json:"validation_mode,omitempty"` // Validation strictness. 'strict' fails entire sync on any validation error.
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Optional webhook configuration for async sync notifications. Publisher will
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SyncCatalogsRequest — Request parameters for syncing catalog feeds with upsert semantics. Supports bulk operations
type SyncCreativeAssignment ¶
type SyncCreativeAssignment struct {
CreativeID string `json:"creative_id"`
PackageID string `json:"package_id"`
Weight *float64 `json:"weight,omitempty"`
PlacementIDs []string `json:"placement_ids,omitempty"`
}
SyncCreativeAssignment assigns a synced creative to an existing package.
type SyncCreativesRequest ¶
type SyncCreativesRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Account AccountReference `json:"account"` // Account that owns these creatives.
Creatives []CreativeInput `json:"creatives"` // Array of creative assets to sync (create or update)
CreativeIDs []string `json:"creative_ids,omitempty"` // Optional filter to limit sync scope to specific creative IDs. When provided
Assignments []SyncCreativeAssignment `json:"assignments,omitempty"` // Optional bulk assignment of creatives to packages. Each entry maps one
IdempotencyKey string `json:"idempotency_key"` // Client-generated idempotency key for safe retries. If a sync fails without a
DeleteMissing *bool `json:"delete_missing,omitempty"` // When true, creatives not included in this sync will be archived. Use with
DryRun *bool `json:"dry_run,omitempty"` // When true, preview changes without applying them. Returns what would be
ValidationMode ValidationMode `json:"validation_mode,omitempty"` // Validation strictness. 'strict' fails entire sync on any validation error.
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Optional webhook configuration for async sync notifications. The agent will
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SyncCreativesRequest — Request parameters for syncing creative assets with upsert semantics - supports bulk operations
type SyncEventSourcesRequest ¶
type SyncEventSourcesRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for at-most-once execution. `event_source_id`
Account AccountReference `json:"account"` // Account to configure event sources for.
EventSources []EventSourceInput `json:"event_sources,omitempty"` // Event sources to sync (create or update). When omitted, the call is
DeleteMissing *bool `json:"delete_missing,omitempty"` // When true, event sources not included in this sync will be removed
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SyncEventSourcesRequest — Request parameters for configuring event sources on an account with upsert semantics. Existing
type SyncGovernanceAccountResult ¶
type SyncGovernanceAccountResult struct {
Account AccountReference `json:"account"` // Account reference, echoed from request
Status string `json:"status"` // Sync result. synced: governance agents persisted. failed: could not complete
GovernanceAgents []SyncGovernanceAgentResult `json:"governance_agents,omitempty"` // Governance agent now synced on this account. Reflects the persisted state
Errors []AdcpError `json:"errors,omitempty"` // Per-account errors (only present when status is 'failed')
}
type SyncGovernanceAgentResult ¶
type SyncGovernanceAgentResult struct {
URL string `json:"url"` // Governance agent endpoint URL.
}
type SyncGovernanceError ¶
type SyncGovernanceError struct {
Errors []AdcpError `json:"errors"` // Operation-level errors (e.g., authentication failure, service unavailable)
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SyncGovernanceError — Operation failed completely, no accounts were processed
type SyncGovernanceRequest ¶
type SyncGovernanceRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for at-most-once execution. `account` gives
Accounts []GovernanceAccountInput `json:"accounts"` // Per-account governance agent configuration. Each entry pairs an account
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SyncGovernanceRequest — Sync the governance agent endpoint against specific accounts. The seller persists the governance
type SyncGovernanceResponse ¶
type SyncGovernanceResponse interface {
// contains filtered or unexported methods
}
SyncGovernanceResponse is a discriminated union — use one of the generated variant structs.
type SyncGovernanceSuccess ¶
type SyncGovernanceSuccess struct {
Accounts []SyncGovernanceAccountResult `json:"accounts"` // Per-account sync results
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SyncGovernanceSuccess — Sync processed — individual accounts may have errors
type SyncPlansPlan ¶
type SyncPlansPlan struct {
PlanID string `json:"plan_id"` // Plan identifier.
Status string `json:"status"` // Sync result status. 'active' means sync succeeded; 'error' means sync failed.
Version int `json:"version"` // Plan version (increments on each sync).
Categories []SyncPlansPlanCategory `json:"categories,omitempty"` // Validation categories active for this plan.
ResolvedPolicies []SyncPlansResolvedPolicy `json:"resolved_policies,omitempty"` // Policies the governance agent will enforce for this plan. Includes explicitly
}
type SyncPlansPlanCategory ¶
type SyncPlansRequest ¶
type SyncPlansRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for at-most-once execution. `plan_id` gives
Plans []Plan `json:"plans"` // One or more campaign plans to sync.
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
SyncPlansRequest — Push campaign plans to the governance agent. A plan defines the authorized parameters for a
type SyncPlansResolvedPolicy ¶
type SyncPlansResolvedPolicy struct {
PolicyID string `json:"policy_id"` // Registry policy ID.
Source string `json:"source"` // How this policy was included. 'explicit': referenced in the brand compliance
Enforcement PolicyEnforcement `json:"enforcement"` // Enforcement level for this policy.
Reason string `json:"reason,omitempty"` // Why this policy was included (e.g., 'Matched jurisdiction US and policy
}
type SyncPlansResponse ¶
type SyncPlansResponse struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ContextID string `json:"context_id,omitempty"` // Session/conversation identifier for tracking related operations across
Context any `json:"context,omitempty"`
TaskID string `json:"task_id,omitempty"` // Unique identifier for tracking asynchronous operations. Present when a task
Status TaskStatus `json:"status"` // Current task execution state. Indicates whether the task is completed, in
Message string `json:"message,omitempty"` // Human-readable summary of the task result. Provides natural language
Timestamp string `json:"timestamp,omitempty"` // ISO 8601 timestamp when the response was generated. Useful for debugging
Replayed *bool `json:"replayed,omitempty"` // Set to true when this response was returned from the idempotency cache rather
AdcpError AdcpError `json:"adcp_error,omitempty"` // Transport-envelope error signal for fatal task failures. Per the two-layer
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Push notification configuration for async task updates (A2A and REST
GovernanceContext string `json:"governance_context,omitempty"` // Governance context token issued by the account's governance agent during
Payload map[string]any `json:"payload,omitempty"` // Conceptual grouping for the task-specific response data defined by individual
Plans []SyncPlansPlan `json:"plans"` // Status for each synced plan.
Ext any `json:"ext,omitempty"`
}
SyncPlansResponse — Response from syncing campaign plans. Returns status and active validation categories for each plan.
type Talent ¶
type Talent struct {
Role TalentRole `json:"role"` // Role of this person on the collection or installment
Name string `json:"name"` // Person's name as credited on the collection
BrandURL string `json:"brand_url,omitempty"` // URL to this person's brand.json entry. Enables buyer agents to evaluate the
}
Talent — A person associated with a collection or installment, with an optional link to their brand.json
type TalentRole ¶
type TalentRole = string
TalentRole — Role of a person associated with a collection or installment
const ( TalentRoleHost TalentRole = "host" TalentRoleGuest TalentRole = "guest" TalentRoleCreator TalentRole = "creator" TalentRoleCast TalentRole = "cast" TalentRoleNarrator TalentRole = "narrator" TalentRoleProducer TalentRole = "producer" TalentRoleCorrespondent TalentRole = "correspondent" TalentRoleCommentator TalentRole = "commentator" TalentRoleAnalyst TalentRole = "analyst" )
func KnownTalentRoleValues ¶
func KnownTalentRoleValues() []TalentRole
KnownTalentRoleValues returns the current schema-defined values for TalentRole.
func ParseTalentRole ¶
func ParseTalentRole(s string) (TalentRole, error)
ParseTalentRole returns s as TalentRole when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type Targeting ¶
type Targeting struct {
GeoCountries []string `json:"geo_countries,omitempty"` // Restrict delivery to specific countries. ISO 3166-1 alpha-2 codes (e.g., 'US'
GeoCountriesExclude []string `json:"geo_countries_exclude,omitempty"` // Exclude specific countries from delivery. ISO 3166-1 alpha-2 codes (e.g.
GeoRegions []string `json:"geo_regions,omitempty"` // Restrict delivery to specific regions/states. ISO 3166-2 subdivision codes
GeoRegionsExclude []string `json:"geo_regions_exclude,omitempty"` // Exclude specific regions/states from delivery. ISO 3166-2 subdivision codes
GeoMetros []GeoMetroTarget `json:"geo_metros,omitempty"` // Restrict delivery to specific metro areas. Each entry specifies the
GeoMetrosExclude []GeoMetroTarget `json:"geo_metros_exclude,omitempty"` // Exclude specific metro areas from delivery. Each entry specifies the
GeoPostalAreas []GeoPostalAreaTarget `json:"geo_postal_areas,omitempty"` // Restrict delivery to specific postal areas. Prefer the native country + postal
GeoPostalAreasExclude []GeoPostalAreaTarget `json:"geo_postal_areas_exclude,omitempty"` // Exclude specific postal areas from delivery. Prefer the native country +
DaypartTargets []DaypartTarget `json:"daypart_targets,omitempty"` // Restrict delivery to specific time windows. Each entry specifies days of week
// Deprecated: Use TMP provider fields instead.
AxeIncludeSegment string `json:"axe_include_segment,omitempty"` // Deprecated: Use TMP provider fields instead. AXE segment ID to include for
// Deprecated: Use TMP provider fields instead.
AxeExcludeSegment string `json:"axe_exclude_segment,omitempty"` // Deprecated: Use TMP provider fields instead. AXE segment ID to exclude from
AudienceInclude []string `json:"audience_include,omitempty"` // Restrict delivery to members of these first-party CRM audiences. Only users
AudienceExclude []string `json:"audience_exclude,omitempty"` // Suppress delivery to members of these first-party CRM audiences. Matched users
SignalTargetingGroups *PackageSignalTargetingGroups `json:"signal_targeting_groups,omitempty"` // Basic Boolean grouping for seller-offered signals. v1 supports a required
// Deprecated: DEPRECATED.
SignalTargeting []SignalTargeting `json:"signal_targeting,omitempty"` // DEPRECATED. Use signal_targeting_groups for package-level signal targeting.
FrequencyCap *FrequencyCap `json:"frequency_cap,omitempty"`
PropertyList *PropertyListRef `json:"property_list,omitempty"` // Reference to a property list for targeting specific properties within this
CollectionList *CollectionListRef `json:"collection_list,omitempty"` // Reference to a collection list for including specific collections (programs
CollectionListExclude *CollectionListRef `json:"collection_list_exclude,omitempty"` // Reference to a collection list for excluding specific collections (programs
AgeRestriction *AgeRestriction `json:"age_restriction,omitempty"` // Age restriction for compliance. Use for legal requirements (alcohol
DevicePlatform []DevicePlatform `json:"device_platform,omitempty"` // Restrict to specific platforms. Use for technical compatibility (app only
DeviceType []DeviceType `json:"device_type,omitempty"` // Restrict to specific device form factors. Use for campaigns targeting hardware
DeviceTypeExclude []DeviceType `json:"device_type_exclude,omitempty"` // Exclude specific device form factors from delivery (e.g., exclude CTV for
StoreCatchments []TargetingStoreCatchment `json:"store_catchments,omitempty"` // Target users within store catchment areas from a synced store catalog. Each
GeoProximity []GeoProximityTarget `json:"geo_proximity,omitempty"` // Target users within travel time, distance, or a custom boundary around
Language []string `json:"language,omitempty"` // Restrict to users with specific language preferences. ISO 639-1 codes (e.g.
KeywordTargets []KeywordTarget `json:"keyword_targets,omitempty"` // Keyword targeting for search and retail media platforms. Restricts delivery to
NegativeKeywords []NegativeKeywordTarget `json:"negative_keywords,omitempty"` // Keywords to exclude from delivery. Queries matching these keywords will not
}
Targeting — Optional restriction overlays for media buys. Most targeting should be expressed in the brief and
type TargetingCaps ¶
type TargetingCaps struct {
GeoCountries *bool `json:"geo_countries,omitempty"`
GeoRegions *bool `json:"geo_regions,omitempty"`
GeoMetros *GeoMetrosCaps `json:"geo_metros,omitempty"`
GeoPostalAreas *GeoPostalAreasCaps `json:"geo_postal_areas,omitempty"`
GeoProximity *GeoProximityCaps `json:"geo_proximity,omitempty"`
AgeRestriction *AgeRestrictionCaps `json:"age_restriction,omitempty"`
Language *bool `json:"language,omitempty"`
KeywordTargets *KeywordMatchCaps `json:"keyword_targets,omitempty"`
NegativeKeywords *KeywordMatchCaps `json:"negative_keywords,omitempty"`
}
TargetingCaps declares which targeting dimensions the seller honors. Presence of a boolean/object indicates support; buyers can then send matching fields in targeting_overlay.
type TargetingStoreCatchment ¶
type TargetingStoreCatchment struct {
CatalogID string `json:"catalog_id"` // Synced store-type catalog ID from sync_catalogs.
StoreIDs []string `json:"store_ids,omitempty"` // Filter to specific stores within the catalog. Omit to target all stores.
CatchmentIDs []string `json:"catchment_ids,omitempty"` // Catchment zone IDs to target (e.g., 'walk', 'drive'). Omit to target all
}
type TaskStatus ¶
type TaskStatus = string
TaskStatus — Standardized task status values based on A2A TaskState enum. Indicates the
const ( TaskStatusSubmitted TaskStatus = "submitted" TaskStatusWorking TaskStatus = "working" TaskStatusInputRequired TaskStatus = "input-required" TaskStatusCompleted TaskStatus = "completed" TaskStatusCanceled TaskStatus = "canceled" TaskStatusFailed TaskStatus = "failed" TaskStatusRejected TaskStatus = "rejected" TaskStatusAuthRequired TaskStatus = "auth-required" TaskStatusUnknown TaskStatus = "unknown" )
func KnownTaskStatusValues ¶
func KnownTaskStatusValues() []TaskStatus
KnownTaskStatusValues returns the current schema-defined values for TaskStatus.
func ParseTaskStatus ¶
func ParseTaskStatus(s string) (TaskStatus, error)
ParseTaskStatus returns s as TaskStatus when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type TaskType ¶
type TaskType = string
TaskType — Valid AdCP task types across all domains. These represent the complete set of
const ( TaskTypeCreateMediaBuy TaskType = "create_media_buy" TaskTypeUpdateMediaBuy TaskType = "update_media_buy" TaskTypeMediaBuyDelivery TaskType = "media_buy_delivery" TaskTypeSyncCreatives TaskType = "sync_creatives" TaskTypeBuildCreative TaskType = "build_creative" TaskTypeActivateSignal TaskType = "activate_signal" TaskTypeGetProducts TaskType = "get_products" TaskTypeGetSignals TaskType = "get_signals" TaskTypeCreatePropertyList TaskType = "create_property_list" TaskTypeUpdatePropertyList TaskType = "update_property_list" TaskTypeGetPropertyList TaskType = "get_property_list" TaskTypeListPropertyLists TaskType = "list_property_lists" TaskTypeDeletePropertyList TaskType = "delete_property_list" TaskTypeSyncAccounts TaskType = "sync_accounts" TaskTypeGetAccountFinancials TaskType = "get_account_financials" TaskTypeGetCreativeDelivery TaskType = "get_creative_delivery" TaskTypeSyncEventSources TaskType = "sync_event_sources" TaskTypeSyncAudiences TaskType = "sync_audiences" TaskTypeSyncCatalogs TaskType = "sync_catalogs" TaskTypeLogEvent TaskType = "log_event" TaskTypeGetBrandIdentity TaskType = "get_brand_identity" TaskTypeSearchBrands TaskType = "search_brands" TaskTypeGetRights TaskType = "get_rights" TaskTypeAcquireRights TaskType = "acquire_rights" )
func KnownTaskTypeValues ¶
func KnownTaskTypeValues() []TaskType
KnownTaskTypeValues returns the current schema-defined values for TaskType.
func ParseTaskType ¶
ParseTaskType returns s as TaskType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type TestControllerError ¶
type TestControllerError struct {
Code string // NOT_FOUND, INVALID_TRANSITION, INVALID_PARAMS
Message string
CurrentState string
}
TestControllerError is a typed error for test controller store methods.
func (*TestControllerError) Error ¶
func (e *TestControllerError) Error() string
type TestControllerStore ¶
type TestControllerStore struct {
ForceAccountStatus func(accountID, status string) (*StateTransition, error)
ForceMediaBuyStatus func(mediaBuyID, status string, rejectionReason string) (*StateTransition, error)
ForceCreativeStatus func(creativeID, status string, rejectionReason string) (*StateTransition, error)
ForceSessionStatus func(sessionID, status string, terminationReason string) (*StateTransition, error)
SimulateDelivery func(mediaBuyID string, params SimulateDeliveryParams) (*SimulationResult, error)
SimulateBudgetSpend func(params SimulateBudgetParams) (*SimulationResult, error)
CustomScenario func(scenario string, params map[string]any) (any, error)
CustomScenarios []string
}
TestControllerStore is the seller-side interface for comply_test_controller. Implement the methods for each scenario you support. Unimplemented (nil) methods mean that scenario is excluded from list_scenarios.
type TransportMode ¶
type TransportMode = string
TransportMode — Transportation modes for isochrone-based catchment area calculations.
const ( TransportModeWalking TransportMode = "walking" TransportModeCycling TransportMode = "cycling" TransportModeDriving TransportMode = "driving" TransportModePublicTransport TransportMode = "public_transport" )
func KnownTransportModeValues ¶
func KnownTransportModeValues() []TransportMode
KnownTransportModeValues returns the current schema-defined values for TransportMode.
func ParseTransportMode ¶
func ParseTransportMode(s string) (TransportMode, error)
ParseTransportMode returns s as TransportMode when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type TravelTimeUnit ¶
type TravelTimeUnit = string
TravelTimeUnit — Time unit for isochrone (travel-time catchment) calculations.
const ( TravelTimeUnitMin TravelTimeUnit = "min" TravelTimeUnitHr TravelTimeUnit = "hr" )
func KnownTravelTimeUnitValues ¶
func KnownTravelTimeUnitValues() []TravelTimeUnit
KnownTravelTimeUnitValues returns the current schema-defined values for TravelTimeUnit.
func ParseTravelTimeUnit ¶
func ParseTravelTimeUnit(s string) (TravelTimeUnit, error)
ParseTravelTimeUnit returns s as TravelTimeUnit when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type TrustedMatchCaps ¶
type TrustedMatchCaps struct {
Surfaces []string `json:"surfaces,omitempty"`
}
type UIDType ¶
type UIDType = string
UIDType — Type of user identifier. Used in audience sync, event logging, and TMP
const ( UIDTypeRampid UIDType = "rampid" UIDTypeRampidDerived UIDType = "rampid_derived" UIDTypeId5 UIDType = "id5" UIDTypeUid2 UIDType = "uid2" UIDTypeEuid UIDType = "euid" UIDTypePairid UIDType = "pairid" UIDTypeMaid UIDType = "maid" UIDTypeHashedEmail UIDType = "hashed_email" UIDTypePublisherFirstParty UIDType = "publisher_first_party" UIDTypeWorldIDNullifier UIDType = "world_id_nullifier" UIDTypeOther UIDType = "other" )
func KnownUIDTypeValues ¶
func KnownUIDTypeValues() []UIDType
KnownUIDTypeValues returns the current schema-defined values for UIDType.
func ParseUIDType ¶
ParseUIDType returns s as UIDType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type URLAssetType ¶
type URLAssetType = string
URLAssetType — Types of URL assets for tracking and click-through purposes
const ( URLAssetTypeClickthrough URLAssetType = "clickthrough" URLAssetTypeTrackerPixel URLAssetType = "tracker_pixel" URLAssetTypeTrackerScript URLAssetType = "tracker_script" )
func KnownURLAssetTypeValues ¶
func KnownURLAssetTypeValues() []URLAssetType
KnownURLAssetTypeValues returns the current schema-defined values for URLAssetType.
func ParseURLAssetType ¶
func ParseURLAssetType(s string) (URLAssetType, error)
ParseURLAssetType returns s as URLAssetType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type UniversalMacro ¶
type UniversalMacro = string
UniversalMacro — Standardized macro placeholders for dynamic value substitution in creative
const ( UniversalMacroMEDIABUYID UniversalMacro = "MEDIA_BUY_ID" UniversalMacroPACKAGEID UniversalMacro = "PACKAGE_ID" UniversalMacroCREATIVEID UniversalMacro = "CREATIVE_ID" UniversalMacroCACHEBUSTER UniversalMacro = "CACHEBUSTER" UniversalMacroTIMESTAMP UniversalMacro = "TIMESTAMP" UniversalMacroCLICKURL UniversalMacro = "CLICK_URL" UniversalMacroGDPR UniversalMacro = "GDPR" UniversalMacroGDPRCONSENT UniversalMacro = "GDPR_CONSENT" UniversalMacroUSPRIVACY UniversalMacro = "US_PRIVACY" UniversalMacroGPPSTRING UniversalMacro = "GPP_STRING" UniversalMacroGPPSID UniversalMacro = "GPP_SID" UniversalMacroIPADDRESS UniversalMacro = "IP_ADDRESS" UniversalMacroLIMITADTRACKING UniversalMacro = "LIMIT_AD_TRACKING" UniversalMacroDEVICETYPE UniversalMacro = "DEVICE_TYPE" UniversalMacroOS UniversalMacro = "OS" UniversalMacroOSVERSION UniversalMacro = "OS_VERSION" UniversalMacroDEVICEMAKE UniversalMacro = "DEVICE_MAKE" UniversalMacroDEVICEMODEL UniversalMacro = "DEVICE_MODEL" UniversalMacroUSERAGENT UniversalMacro = "USER_AGENT" UniversalMacroAPPBUNDLE UniversalMacro = "APP_BUNDLE" UniversalMacroAPPNAME UniversalMacro = "APP_NAME" UniversalMacroCOUNTRY UniversalMacro = "COUNTRY" UniversalMacroREGION UniversalMacro = "REGION" UniversalMacroCITY UniversalMacro = "CITY" UniversalMacroZIP UniversalMacro = "ZIP" UniversalMacroDMA UniversalMacro = "DMA" UniversalMacroLAT UniversalMacro = "LAT" UniversalMacroLONG UniversalMacro = "LONG" UniversalMacroDEVICEID UniversalMacro = "DEVICE_ID" UniversalMacroDEVICEIDTYPE UniversalMacro = "DEVICE_ID_TYPE" UniversalMacroDOMAIN UniversalMacro = "DOMAIN" UniversalMacroPAGEURL UniversalMacro = "PAGE_URL" UniversalMacroREFERRER UniversalMacro = "REFERRER" UniversalMacroKEYWORDS UniversalMacro = "KEYWORDS" UniversalMacroPLACEMENTID UniversalMacro = "PLACEMENT_ID" UniversalMacroFOLDPOSITION UniversalMacro = "FOLD_POSITION" UniversalMacroADWIDTH UniversalMacro = "AD_WIDTH" UniversalMacroADHEIGHT UniversalMacro = "AD_HEIGHT" UniversalMacroVIDEOID UniversalMacro = "VIDEO_ID" UniversalMacroVIDEOTITLE UniversalMacro = "VIDEO_TITLE" UniversalMacroVIDEODURATION UniversalMacro = "VIDEO_DURATION" UniversalMacroVIDEOCATEGORY UniversalMacro = "VIDEO_CATEGORY" UniversalMacroCONTENTGENRE UniversalMacro = "CONTENT_GENRE" UniversalMacroCONTENTRATING UniversalMacro = "CONTENT_RATING" UniversalMacroPLAYERWIDTH UniversalMacro = "PLAYER_WIDTH" UniversalMacroPLAYERHEIGHT UniversalMacro = "PLAYER_HEIGHT" UniversalMacroPODPOSITION UniversalMacro = "POD_POSITION" UniversalMacroPODSIZE UniversalMacro = "POD_SIZE" UniversalMacroADBREAKID UniversalMacro = "AD_BREAK_ID" UniversalMacroSTATIONID UniversalMacro = "STATION_ID" UniversalMacroCOLLECTIONNAME UniversalMacro = "COLLECTION_NAME" UniversalMacroINSTALLMENTID UniversalMacro = "INSTALLMENT_ID" UniversalMacroAUDIODURATION UniversalMacro = "AUDIO_DURATION" UniversalMacroTMPX UniversalMacro = "TMPX" UniversalMacroIMPRESSIONID UniversalMacro = "IMPRESSION_ID" UniversalMacroAXEM UniversalMacro = "AXEM" UniversalMacroCATALOGID UniversalMacro = "CATALOG_ID" UniversalMacroSKU UniversalMacro = "SKU" UniversalMacroGTIN UniversalMacro = "GTIN" UniversalMacroOFFERINGID UniversalMacro = "OFFERING_ID" UniversalMacroJOBID UniversalMacro = "JOB_ID" UniversalMacroHOTELID UniversalMacro = "HOTEL_ID" UniversalMacroFLIGHTID UniversalMacro = "FLIGHT_ID" UniversalMacroVEHICLEID UniversalMacro = "VEHICLE_ID" UniversalMacroLISTINGID UniversalMacro = "LISTING_ID" UniversalMacroSTOREID UniversalMacro = "STORE_ID" UniversalMacroPROGRAMID UniversalMacro = "PROGRAM_ID" UniversalMacroDESTINATIONID UniversalMacro = "DESTINATION_ID" UniversalMacroCREATIVEVARIANTID UniversalMacro = "CREATIVE_VARIANT_ID" UniversalMacroAPPITEMID UniversalMacro = "APP_ITEM_ID" UniversalMacroITEMNAME UniversalMacro = "ITEM_NAME" UniversalMacroITEMDESCRIPTION UniversalMacro = "ITEM_DESCRIPTION" UniversalMacroITEMTAGLINE UniversalMacro = "ITEM_TAGLINE" UniversalMacroITEMPRICE UniversalMacro = "ITEM_PRICE" UniversalMacroITEMPRICECURRENCY UniversalMacro = "ITEM_PRICE_CURRENCY" )
func KnownUniversalMacroValues ¶
func KnownUniversalMacroValues() []UniversalMacro
KnownUniversalMacroValues returns the current schema-defined values for UniversalMacro.
func ParseUniversalMacro ¶
func ParseUniversalMacro(s string) (UniversalMacro, error)
ParseUniversalMacro returns s as UniversalMacro when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type UpdateCollectionListRequest ¶
type UpdateCollectionListRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
ListID string `json:"list_id"` // ID of the collection list to update
Account *AccountReference `json:"account,omitempty"` // Account that owns the list. Required when the authenticated agent has access
Name string `json:"name,omitempty"` // New name for the list
Description string `json:"description,omitempty"` // New description
BaseCollections []BaseCollectionSource `json:"base_collections,omitempty"` // Complete replacement for the base collections list (not a patch). Each entry
Filters *CollectionListFilters `json:"filters,omitempty"` // Complete replacement for the filters (not a patch)
Brand *BrandReference `json:"brand,omitempty"` // Update brand reference. Resolved to full brand identity at execution time.
WebhookURL string `json:"webhook_url,omitempty"` // Update the webhook URL for list change notifications (set to empty string to
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
IdempotencyKey string `json:"idempotency_key"` // Client-generated unique key for at-most-once execution. If a request with the
}
UpdateCollectionListRequest — Request parameters for updating an existing collection list
type UpdateFrequency ¶
type UpdateFrequency = string
UpdateFrequency — Frequency of product catalog updates
const ( UpdateFrequencyRealtime UpdateFrequency = "realtime" UpdateFrequencyHourly UpdateFrequency = "hourly" UpdateFrequencyDaily UpdateFrequency = "daily" UpdateFrequencyWeekly UpdateFrequency = "weekly" )
func KnownUpdateFrequencyValues ¶
func KnownUpdateFrequencyValues() []UpdateFrequency
KnownUpdateFrequencyValues returns the current schema-defined values for UpdateFrequency.
func ParseUpdateFrequency ¶
func ParseUpdateFrequency(s string) (UpdateFrequency, error)
ParseUpdateFrequency returns s as UpdateFrequency when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type UpdateMediaBuyRequest ¶
type UpdateMediaBuyRequest struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
Account AccountReference `json:"account"` // Account that owns this media buy. Pass a natural key (brand, operator
MediaBuyID string `json:"media_buy_id"` // Seller's ID of the media buy to update
Revision int `json:"revision,omitempty"` // Expected current revision for optimistic concurrency. Optional for backward
Paused *bool `json:"paused,omitempty"` // Pause/resume the entire media buy (true = paused, false = active)
Canceled *bool `json:"canceled,omitempty"` // Cancel the entire media buy. Cancellation is irreversible — canceled media
CancellationReason string `json:"cancellation_reason,omitempty"` // Reason for cancellation. Sellers SHOULD store this and return it in subsequent
StartTime string `json:"start_time,omitempty"`
EndTime string `json:"end_time,omitempty"` // New end date/time in ISO 8601 format
Packages []PackageUpdate `json:"packages,omitempty"` // Package-specific updates for existing packages
InvoiceRecipient *BusinessEntity `json:"invoice_recipient,omitempty"` // Update who receives the invoice for this buy. When provided, the seller
NewPackages []PackageInput `json:"new_packages,omitempty"` // New packages to add to this media buy. Uses the same schema as
ReportingWebhook *ReportingWebhook `json:"reporting_webhook,omitempty"` // Optional webhook configuration for automated reporting delivery. Updates the
PushNotificationConfig *PushNotificationConfig `json:"push_notification_config,omitempty"` // Optional webhook configuration for async update notifications. Publisher will
IdempotencyKey string `json:"idempotency_key"` // Client-generated idempotency key for safe retries. If an update fails without
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
UpdateMediaBuyRequest — Request parameters for updating campaign and package settings
type UpstreamRecordedCall ¶
type UpstreamRecordedCall struct {
AttestationMode string `json:"attestation_mode"` // Per-call attestation mode echoing the request's `params.attestation_mode`.
Method string `json:"method"` // HTTP method of the outbound call.
Endpoint string `json:"endpoint"` // Composed `<METHOD> <URL>` string used for `endpoint_pattern` matching, e.g.
URL string `json:"url"` // Full URL of the outbound call (scheme + host + path + query). Treated as
Host string `json:"host,omitempty"` // Host portion of the URL, useful for grouping calls by upstream platform.
Path string `json:"path,omitempty"` // Path portion of the URL (without query string).
ContentType string `json:"content_type"` // Media type of the outbound request body, mirroring the agent's outbound
Purpose string `json:"purpose,omitempty"` // Optional adopter-supplied semantic tag for the call's role. Values
Payload any `json:"payload,omitempty"` // Request body the agent sent. Required when `attestation_mode` is `raw` (or
PayloadDigestSha256 string `json:"payload_digest_sha256,omitempty"` // SHA-256 digest of the canonicalized outbound request body, lowercase hex (64
PayloadLength int `json:"payload_length"` // Byte length of the post-redaction body bytes represented by this
IdentifierMatchProofs []IdentifierMatchProof `json:"identifier_match_proofs,omitempty"` // Per-identifier echo proofs for digest-mode calls. Required when
Timestamp string `json:"timestamp"` // ISO 8601 timestamp the adopter recorded the outbound call. MUST reflect the
StatusCode int `json:"status_code,omitempty"` // HTTP status code returned by the upstream. Optional — adopters MAY omit when
}
type UpstreamTrafficSuccess ¶
type UpstreamTrafficSuccess struct {
Success bool `json:"success"`
RecordedCalls []UpstreamRecordedCall `json:"recorded_calls"` // Outbound HTTP calls caused by the requesting principal in the requested
TotalCount int `json:"total_count"` // Total calls in the requested window before any pagination —
Truncated *bool `json:"truncated,omitempty"` // True when `total_count > recorded_calls.length`. Runners MAY raise the `limit`
SinceTimestamp string `json:"since_timestamp"` // Echo of the `since_timestamp` the runner requested (or the session-start
Context any `json:"context,omitempty"`
Ext any `json:"ext,omitempty"`
}
UpstreamTrafficSuccess — A query_upstream_traffic scenario returned the outbound HTTP calls the agent has made since the
type UserMatch ¶
type UserMatch struct {
UIDs []UserMatchUID `json:"uids,omitempty"` // Universal ID values for user matching
HashedEmail string `json:"hashed_email,omitempty"` // SHA-256 hash of lowercase, trimmed email address. Buyer must normalize before
HashedPhone string `json:"hashed_phone,omitempty"` // SHA-256 hash of E.164-formatted phone number (e.g. +12065551234). Buyer must
ClickID string `json:"click_id,omitempty"` // Platform click identifier (fbclid, gclid, ttclid, ScCid, etc.)
ClickIDType string `json:"click_id_type,omitempty"` // Type of click identifier (e.g. fbclid, gclid, ttclid, msclkid, ScCid)
ClientIP string `json:"client_ip,omitempty"` // Client IP address for probabilistic matching
ClientUserAgent string `json:"client_user_agent,omitempty"` // Client user agent string for probabilistic matching
Ext any `json:"ext,omitempty"`
}
UserMatch — User identifiers for attribution matching. Supports universal IDs, hashed identifiers, click IDs
type UserMatchUID ¶
type ValidationIssue ¶
ValidationIssue describes one opt-in SDK validation finding. Field is a JSON-style field path; Code is a stable machine-readable token suitable for mapping to AdCP INVALID_FIELD responses.
func ValidateAudienceSelector ¶
func ValidateAudienceSelector(selector AudienceSelector, opts ...ValidationOption) []ValidationIssue
ValidateAudienceSelector checks required fields and branch-specific fields for AudienceSelector's flattened type/value_type oneOf representation. Unknown discriminator values are allowed unless WithStrictEnums is supplied.
func ValidateOptimizationGoal ¶
func ValidateOptimizationGoal(goal OptimizationGoal, opts ...ValidationOption) []ValidationIssue
ValidateOptimizationGoal checks required fields and current-schema invariants that Go zero values cannot express. It is intentionally not a full JSON Schema validator: unknown enum values are allowed unless WithStrictEnums is supplied, branch-specific fields are validated only for the active kind, and product/account capability checks still belong to the seller.
func ValidateSignalTargeting ¶
func ValidateSignalTargeting(targeting SignalTargeting, opts ...ValidationOption) []ValidationIssue
ValidateSignalTargeting checks required fields and branch-specific fields for SignalTargeting's flattened value_type oneOf representation. Unknown value_type values are allowed unless WithStrictEnums is supplied.
func (ValidationIssue) Error ¶
func (i ValidationIssue) Error() string
type ValidationMode ¶
type ValidationMode = string
ValidationMode — Creative validation strictness levels
const ( ValidationModeStrict ValidationMode = "strict" ValidationModeLenient ValidationMode = "lenient" )
func KnownValidationModeValues ¶
func KnownValidationModeValues() []ValidationMode
KnownValidationModeValues returns the current schema-defined values for ValidationMode.
func ParseValidationMode ¶
func ParseValidationMode(s string) (ValidationMode, error)
ParseValidationMode returns s as ValidationMode when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ValidationOption ¶
type ValidationOption func(*validationConfig)
ValidationOption configures opt-in SDK validators.
func WithStrictEnums ¶
func WithStrictEnums() ValidationOption
WithStrictEnums reports values outside the current schema enum or oneOf variant set. Validators are forward-compatible by default and only require current-schema membership when this option is supplied.
type VastTrackingEvent ¶
type VastTrackingEvent = string
VastTrackingEvent — Tracking events for video ads. Includes the IAB VAST 4.2 `Tracking@event`
const ( VastTrackingEventImpression VastTrackingEvent = "impression" VastTrackingEventCreativeView VastTrackingEvent = "creativeView" VastTrackingEventLoaded VastTrackingEvent = "loaded" VastTrackingEventStart VastTrackingEvent = "start" VastTrackingEventFirstQuartile VastTrackingEvent = "firstQuartile" VastTrackingEventMidpoint VastTrackingEvent = "midpoint" VastTrackingEventThirdQuartile VastTrackingEvent = "thirdQuartile" VastTrackingEventComplete VastTrackingEvent = "complete" VastTrackingEventMute VastTrackingEvent = "mute" VastTrackingEventUnmute VastTrackingEvent = "unmute" VastTrackingEventPause VastTrackingEvent = "pause" VastTrackingEventResume VastTrackingEvent = "resume" VastTrackingEventRewind VastTrackingEvent = "rewind" VastTrackingEventSkip VastTrackingEvent = "skip" VastTrackingEventPlayerExpand VastTrackingEvent = "playerExpand" VastTrackingEventPlayerCollapse VastTrackingEvent = "playerCollapse" VastTrackingEventFullscreen VastTrackingEvent = "fullscreen" VastTrackingEventExitFullscreen VastTrackingEvent = "exitFullscreen" VastTrackingEventProgress VastTrackingEvent = "progress" VastTrackingEventAcceptInvitation VastTrackingEvent = "acceptInvitation" VastTrackingEventAdExpand VastTrackingEvent = "adExpand" VastTrackingEventAdCollapse VastTrackingEvent = "adCollapse" VastTrackingEventMinimize VastTrackingEvent = "minimize" VastTrackingEventOverlayViewDuration VastTrackingEvent = "overlayViewDuration" VastTrackingEventOtherAdInteraction VastTrackingEvent = "otherAdInteraction" VastTrackingEventInteractiveStart VastTrackingEvent = "interactiveStart" VastTrackingEventClickTracking VastTrackingEvent = "clickTracking" VastTrackingEventCustomClick VastTrackingEvent = "customClick" VastTrackingEventClose VastTrackingEvent = "close" VastTrackingEventCloseLinear VastTrackingEvent = "closeLinear" VastTrackingEventError VastTrackingEvent = "error" VastTrackingEventViewable VastTrackingEvent = "viewable" VastTrackingEventNotViewable VastTrackingEvent = "notViewable" VastTrackingEventViewUndetermined VastTrackingEvent = "viewUndetermined" VastTrackingEventMeasurableImpression VastTrackingEvent = "measurableImpression" VastTrackingEventViewableImpression VastTrackingEvent = "viewableImpression" )
func KnownVastTrackingEventValues ¶
func KnownVastTrackingEventValues() []VastTrackingEvent
KnownVastTrackingEventValues returns the current schema-defined values for VastTrackingEvent.
func ParseVastTrackingEvent ¶
func ParseVastTrackingEvent(s string) (VastTrackingEvent, error)
ParseVastTrackingEvent returns s as VastTrackingEvent when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type VastVersion ¶
type VastVersion = string
VastVersion — Supported VAST (Video Ad Serving Template) specification versions
const ( VastVersion20 VastVersion = "2.0" VastVersion30 VastVersion = "3.0" VastVersion40 VastVersion = "4.0" VastVersion41 VastVersion = "4.1" VastVersion42 VastVersion = "4.2" )
func KnownVastVersionValues ¶
func KnownVastVersionValues() []VastVersion
KnownVastVersionValues returns the current schema-defined values for VastVersion.
func ParseVastVersion ¶
func ParseVastVersion(s string) (VastVersion, error)
ParseVastVersion returns s as VastVersion when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type VendorMetricOptimization ¶
type VendorMetricOptimization struct {
SupportedMetrics []VendorMetricOptimizationSupportedMetric `json:"supported_metrics"` // Vendor-defined metrics this product can steer delivery toward. Each entry
}
VendorMetricOptimization — Vendor-attested metric optimization capabilities for a product. Presence indicates the product
type VendorMetricOptimizationSupportedMetric ¶
type VendorMetricOptimizationSupportedMetric struct {
Vendor BrandReference `json:"vendor"` // Vendor that defines and computes this metric. The vendor's `brand.json` is the
MetricID string `json:"metric_id"` // Identifier for the metric within the vendor's vocabulary (e.g.
SupportedTargets []string `json:"supported_targets,omitempty"` // Target kinds available for `vendor_metric` goals against this `(vendor
}
VendorMetricOptimizationSupportedMetric — One vendor-defined metric that a product can optimize toward. Identified by the tuple `(vendor
type VendorMetricValue ¶
type VendorMetricValue struct {
Vendor BrandReference `json:"vendor"` // Vendor that produced this value. Matches a `vendor_metrics[].vendor`
MetricID string `json:"metric_id"` // Identifier for the metric within the vendor's vocabulary. Matches a
Value float64 `json:"value"` // The reported value. Unit semantics are vendor-defined — see `unit` field below
Unit string `json:"unit,omitempty"` // Unit of the value. Free-form to accommodate the heterogeneity of vendor
MeasurableImpressions float64 `json:"measurable_impressions,omitempty"` // Number of impressions in this reporting period that the vendor was able to
Breakdown map[string]any `json:"breakdown,omitempty"` // Optional structured payload for vendor metrics that don't fit a single scalar
}
VendorMetricValue — A reported value for a vendor-defined metric, emitted in `delivery-metrics.json`
type VendorPricingOption ¶
type VendorPricingOption struct {
PricingOptionID string `json:"pricing_option_id"`
Model string `json:"model"`
CPM float64 `json:"cpm,omitempty"`
Percent float64 `json:"percent,omitempty"`
MaxCPM float64 `json:"max_cpm,omitempty"`
Amount float64 `json:"amount,omitempty"`
Period string `json:"period,omitempty"`
Unit string `json:"unit,omitempty"`
UnitPrice float64 `json:"unit_price,omitempty"`
Description string `json:"description,omitempty"`
Metadata map[string]any `json:"metadata,omitempty"`
Currency string `json:"currency,omitempty"`
AppliesToOutputFormatIDs []FormatRef `json:"applies_to_output_format_ids,omitempty"`
Ext any `json:"ext,omitempty"`
}
VendorPricingOption wires the vendor-pricing-option.json schema — a pricing_option_id wrapper around the signal-pricing.json oneOf. Discriminated by Model: cpm, percent_of_media, flat_fee, per_unit, custom. Custom pricing requires Description + Metadata; buyers should route it through operator review rather than auto-selecting. PricingOptionID is the wrapper field, not part of the oneOf.
Go cannot express JSON Schema oneOf at the type level, so required-field enforcement per variant is deferred to the schema validator; omitempty on numeric fields means legitimate zero values (e.g. CPM: 0) do not round-trip.
type VersionEnvelope ¶
type VersionEnvelope struct {
AdcpVersion string `json:"adcp_version,omitempty"` // Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1"
AdcpMajorVersion int `json:"adcp_major_version,omitempty"` // DEPRECATED in favor of adcp_version (release-precision string). Servers MUST
}
VersionEnvelope — Release-precision AdCP protocol version negotiation fields. Composed via `allOf` into every AdCP
func VersionEnvelopeFor ¶
func VersionEnvelopeFor(version string) (VersionEnvelope, bool)
VersionEnvelopeFor returns a request/response version envelope for a release-precision or full-semver AdCP version.
type VideoPlacementType ¶
type VideoPlacementType = string
VideoPlacementType — Declared video placement classification for OLV and other video inventory
const ( VideoPlacementTypeInstream VideoPlacementType = "instream" VideoPlacementTypeAccompanyingContent VideoPlacementType = "accompanying_content" VideoPlacementTypeInterstitial VideoPlacementType = "interstitial" VideoPlacementTypeStandalone VideoPlacementType = "standalone" )
func KnownVideoPlacementTypeValues ¶
func KnownVideoPlacementTypeValues() []VideoPlacementType
KnownVideoPlacementTypeValues returns the current schema-defined values for VideoPlacementType.
func ParseVideoPlacementType ¶
func ParseVideoPlacementType(s string) (VideoPlacementType, error)
ParseVideoPlacementType returns s as VideoPlacementType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type ViewabilityStandard ¶
type ViewabilityStandard = string
ViewabilityStandard — Viewability measurement standard applied to determine whether an impression
const ( ViewabilityStandardMrc ViewabilityStandard = "mrc" ViewabilityStandardGroupm ViewabilityStandard = "groupm" )
func KnownViewabilityStandardValues ¶
func KnownViewabilityStandardValues() []ViewabilityStandard
KnownViewabilityStandardValues returns the current schema-defined values for ViewabilityStandard.
func ParseViewabilityStandard ¶
func ParseViewabilityStandard(s string) (ViewabilityStandard, error)
ParseViewabilityStandard returns s as ViewabilityStandard when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type WatermarkMediaType ¶
type WatermarkMediaType = string
WatermarkMediaType — Media category of a content watermark. Identifies what kind of content the
const ( WatermarkMediaTypeAudio WatermarkMediaType = "audio" WatermarkMediaTypeImage WatermarkMediaType = "image" WatermarkMediaTypeVideo WatermarkMediaType = "video" WatermarkMediaTypeText WatermarkMediaType = "text" )
func KnownWatermarkMediaTypeValues ¶
func KnownWatermarkMediaTypeValues() []WatermarkMediaType
KnownWatermarkMediaTypeValues returns the current schema-defined values for WatermarkMediaType.
func ParseWatermarkMediaType ¶
func ParseWatermarkMediaType(s string) (WatermarkMediaType, error)
ParseWatermarkMediaType returns s as WatermarkMediaType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type WcagLevel ¶
type WcagLevel = string
WcagLevel — Web Content Accessibility Guidelines conformance level
func KnownWcagLevelValues ¶
func KnownWcagLevelValues() []WcagLevel
KnownWcagLevelValues returns the current schema-defined values for WcagLevel.
func ParseWcagLevel ¶
ParseWcagLevel returns s as WcagLevel when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type WebhookActivityRecord ¶
type WebhookActivityRecord struct {
IdempotencyKey string `json:"idempotency_key"` // Equals the `idempotency_key` carried in the webhook payload itself (see
SubscriberID string `json:"subscriber_id,omitempty"` // Identifies which registered webhook subscriber received this fire. **Required
FiredAt string `json:"fired_at"` // ISO 8601 timestamp when the seller initiated the HTTP request for this attempt.
CompletedAt *string `json:"completed_at,omitempty"` // ISO 8601 timestamp when the seller observed the response (or terminal timeout
NotificationType NotificationType `json:"notification_type"` // Notification type carried by this fire, verbatim from the webhook payload.
SequenceNumber int `json:"sequence_number,omitempty"` // Sequence number from the webhook payload. Surfaced here so the buyer can spot
Attempt int `json:"attempt"` // 1-indexed retry counter for this logical fire. Initial fire is attempt=1
Status string `json:"status"` // Outcome of this attempt. `success` — response received with 2xx
URL string `json:"url"` // Target URL for this fire. Query string and fragment MUST be stripped before
HTTPStatusCode *int `json:"http_status_code,omitempty"` // HTTP status code returned by the buyer's endpoint. Explicitly `null` when no
ResponseTimeMs *int `json:"response_time_ms,omitempty"` // Wall-clock latency between request send and response receipt, in milliseconds.
PayloadSizeBytes int `json:"payload_size_bytes,omitempty"` // Size of the request body the seller sent, in bytes. Useful for diagnosing
ErrorMessage *string `json:"error_message,omitempty"` // Short human-readable server-side classification of why this attempt did not
Ext any `json:"ext,omitempty"` // Resource-specific extension slot. Adopters MAY surface a resource-specific
}
WebhookActivityRecord — Single webhook delivery attempt surfaced to a calling principal as a buyer-side debug aid.
type WebhookResponseType ¶
type WebhookResponseType = string
WebhookResponseType — Expected response content type from webhook endpoints
const ( WebhookResponseTypeHTML WebhookResponseType = "html" WebhookResponseTypeJSON WebhookResponseType = "json" WebhookResponseTypeXML WebhookResponseType = "xml" WebhookResponseTypeJavascript WebhookResponseType = "javascript" )
func KnownWebhookResponseTypeValues ¶
func KnownWebhookResponseTypeValues() []WebhookResponseType
KnownWebhookResponseTypeValues returns the current schema-defined values for WebhookResponseType.
func ParseWebhookResponseType ¶
func ParseWebhookResponseType(s string) (WebhookResponseType, error)
ParseWebhookResponseType returns s as WebhookResponseType when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type WebhookSecurityMethod ¶
type WebhookSecurityMethod = string
WebhookSecurityMethod — Security methods for authenticating webhook requests
const ( WebhookSecurityMethodHmacSha256 WebhookSecurityMethod = "hmac_sha256" WebhookSecurityMethodAPIKey WebhookSecurityMethod = "api_key" WebhookSecurityMethodNone WebhookSecurityMethod = "none" )
func KnownWebhookSecurityMethodValues ¶
func KnownWebhookSecurityMethodValues() []WebhookSecurityMethod
KnownWebhookSecurityMethodValues returns the current schema-defined values for WebhookSecurityMethod.
func ParseWebhookSecurityMethod ¶
func ParseWebhookSecurityMethod(s string) (WebhookSecurityMethod, error)
ParseWebhookSecurityMethod returns s as WebhookSecurityMethod when s is one of the current schema-defined values. It is an opt-in strict helper; JSON unmarshalling preserves unknown values.
type WebhookSigningCapabilities ¶
type WebhookSigningCapabilities struct {
Supported bool `json:"supported"`
Profile string `json:"profile,omitempty"`
Algorithms []string `json:"algorithms,omitempty"`
LegacyHMACFallback *bool `json:"legacy_hmac_fallback,omitempty"`
}
WebhookSigningCapabilities declares RFC 9421 webhook-signature policy — what this agent emits on outbound webhook deliveries. Top-level peer of RequestSigning. Profile is a closed enum ("adcp/webhook-signing/v1"); the value MUST match the tag= on the on-wire Signature-Input header.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
adcp-signing-keygen
command
Command adcp-signing-keygen generates an AdCP request-signing keypair and emits the PEM-encoded private key plus the public JWK.
|
Command adcp-signing-keygen generates an AdCP request-signing keypair and emits the PEM-encoded private key plus the public JWK. |
|
Package idempotency provides canonicalization, hashing, typed errors, storage backends, and handler middleware for AdCP idempotency_key support.
|
Package idempotency provides canonicalization, hashing, typed errors, storage backends, and handler middleware for AdCP idempotency_key support. |
|
Package signing implements the AdCP RFC 9421 request-signing profile: signs outgoing HTTP requests and verifies inbound ones for AdCP agent identity, with replay protection via per-(keyid, nonce) deduplication and tampering protection via optional RFC 9530 Content-Digest coverage.
|
Package signing implements the AdCP RFC 9421 request-signing profile: signs outgoing HTTP requests and verifies inbound ones for AdCP agent identity, with replay protection via per-(keyid, nonce) deduplication and tampering protection via optional RFC 9530 Content-Digest coverage. |
|
Package webhook provides sender and receiver helpers for AdCP webhook payloads.
|
Package webhook provides sender and receiver helpers for AdCP webhook payloads. |