@adcp/sdk API Reference - v14.0.0-beta.6
    Preparing search index...

    Interface LegacySyncCreativesRequest

    Request parameters for syncing creative assets with upsert semantics. Provide at least one of creatives, assignments, or assignment_operations. assignments and assignment_operations are mutually exclusive; delete_missing: true requires creatives; assignment_operations requires validation_mode: strict.

    interface LegacySyncCreativesRequest {
        adcp_version?: string;
        adcp_major_version?: number;
        account: AccountReference;
        creatives?: (
            LegacyCompatibleCreativeAsset & {
                localization?: CreativeLocalization
                | null;
            }
        )[];
        creative_ids?: string[];
        assignments?: {
            creative_id: string;
            package_id: string;
            weight?: number;
            placement_ids?: string[];
        }[];
        assignment_operations?: (AssignOrUpdate | Unassign | ReplaceAssignment)[];
        idempotency_key: string;
        delete_missing?: boolean;
        dry_run?: boolean;
        validation_mode?: ValidationMode;
        push_notification_config?: PushNotificationConfig;
        context?: ContextObject;
        ext?: ExtensionObject;
    }
    Index

    Properties

    adcp_version?: string

    Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer's release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release's schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.

    adcp_major_version?: number

    DEPRECATED in favor of adcp_version (release-precision string). Servers MUST continue to honor this field through 3.x. Removed in 4.0. Original semantics: the AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.

    creatives?: (
        LegacyCompatibleCreativeAsset & {
            localization?: CreativeLocalization
            | null;
        }
    )[]

    Array of creative assets to sync (create or update)

    Type Declaration

    • Optionallocalization?: CreativeLocalization | null

      Sync-only materialized-localization mutation. The top-level assets are the source variant; optional locale_fallbacks declare buyer-approved language-family substitutions, and default_locale_variant_id selects the final serving fallback. An object transactionally replaces the source assets and complete locale set, omission preserves existing localization only when the top-level source assets are unchanged, and null removes localization. This field never requests translation or generation. Receivers MUST advertise get_adcp_capabilities creative.localization before accepting it.

    creative_ids?: string[]

    Optional filter to limit sync scope to specific creative IDs. When provided, only these creatives will be created/updated. Other creatives in the library are unaffected. Useful for partial updates and error recovery.

    assignments?: {
        creative_id: string;
        package_id: string;
        weight?: number;
        placement_ids?: string[];
    }[]

    Type Declaration

    • creative_id: string

      ID of the creative to assign

    • package_id: string

      ID of the package to assign the creative to

    • Optionalweight?: number

      Relative delivery weight (0-100). When multiple creatives are assigned to the same package, weights determine impression distribution proportionally. When omitted, the creative receives equal rotation with other unweighted creatives. A weight of 0 means the creative is assigned but paused (receives no delivery).

      0

      100

    • Optionalplacement_ids?: string[]

      Restrict this creative to specific placements within the package. When omitted, the creative is eligible for all placements.

    Deprecated additive assignment shorthand. Each entry upserts one creative-to-package assignment. Use assignment_operations for explicit assign, unassign, and replace semantics. Standalone creative agents that do not manage media buys ignore this field.

    assignment_operations?: (AssignOrUpdate | Unassign | ReplaceAssignment)[]

    Explicit, ordered assignment mutations. These operations may be sent without creatives to traffic existing creative IDs independently from MediaBuy commercial control. The entire request is atomic under idempotency_key and therefore requires strict validation; lenient partial processing is not permitted.

    idempotency_key: string

    Client-generated idempotency key for safe retries. If a sync fails without a response, resending with the same idempotency_key guarantees at-most-once execution. MUST be unique per (seller, request) pair to prevent cross-seller correlation. Use a fresh UUID v4 for each request.

    16

    255

    ^[A-Za-z0-9_.:-]{16,255}$

    delete_missing?: boolean

    When true, creatives not included in this sync will be archived. Use with caution for full library replacement. Invalid when creative_ids is provided — delete_missing applies to the entire library scope, not a filtered subset.

    dry_run?: boolean

    When true, rehearse this sync_creatives operation without applying it. Validates the actual trafficking request in the seller's current context, including library upsert semantics, creative IDs, assignments, account-scoped gates, and seller policies, then returns what would be created/updated/deleted. This is distinct from validate_input, which only validates manifest structure against canonical/product format targets.

    validation_mode?: ValidationMode
    push_notification_config?: PushNotificationConfig
    context?: ContextObject