Overview
A Package is the delivery unit beneath a Media Buy: one package per product, multiplied by the number of pacing periods. Packages are created when a media buy executes — like media buys, they are not directly creatable. Each package carries its own budget, pacing strategy, bid price, and optimization goals, and reports its own delivery metrics.Packages are spawned at execution. A product selected on a
DRAFT campaign becomes one package per pacing period once the campaign executes and the media buy submits to ADCP.Where a package sits in the hierarchy
Per-package fields
| Field | Type | Notes |
|---|---|---|
packageId | string | Stable package identifier |
budget | number | Budget allocated to this package |
pacing | enum | Pacing strategy: even, asap, front_loaded |
bid price | number | Per-package bid |
optimizationGoals | array | Inherited from the media buy at execution (event- or metric-based) |
Pacing strategies
| Strategy | Behavior |
|---|---|
even | Spread spend evenly across the package window |
asap | Spend as fast as inventory allows |
front_loaded | Weight spend toward the start of the window |
Delivery metrics
Delivery metrics roll up per package:impressionsspendclicks
How pacing periods create packages
Each product becomes one package per pacing period. The campaign’spacingPeriods defines time-windowed spend intensity within the flight, in one of two modes:
weight— relative weights (e.g.3.0= 3x normal); budget is distributed proportionally across periods.budget— an explicit dollar amount per period.
Example: three periods → three packages per product
Cancel a single package
To cancel one package without touching the rest of its media buy, passpackageIds on a mediaBuys[] entry in PUT /api/v2/buyer/campaigns/:id:
packages[] array with action: "update":
Related concepts
Media Buy
The parent ADCP transaction that spawns packages
Pacing periods
Time-windowed spend intensity that multiplies products into packages
Campaign
The parent media plan