Get directed campaign delivery (alpha)
Task Reference
Get directed campaign delivery (alpha)
Read delivery through the connected seller and refresh the mirror
GET
Get directed campaign delivery (alpha)
Calls the connected account’s AdCP
The
get_media_buy_delivery operation with the
mirrored upstream media-buy ID, persists the latest totals/package delivery,
and returns the seller response.
This is live read-through: every request calls the connected seller. The raw
response is returned to this caller but is not persisted or served later. Only
the latest aggregate media-buy and package metrics, the exact requested
windowStart/windowEnd, and the refresh timestamp are persisted on the
mirror. Subscription does not pre-fetch delivery.
Interchange handles provider report-window limits inside the adapter. For
example, TikTok daily delivery ranges longer than 30 days are split into
consecutive windows and aggregated into the single response; callers can still
request the full one-year directed-campaign window.
Named operation: get_campaign_delivery
endDate must be on or after startDate. Discovery and performance campaigns
return a validation error on this mode-scoped operation.
Response
delivery object is the connected seller’s AdCP response, so optional
metrics depend on provider support. A later get_campaign response exposes the
persisted aggregate snapshot under mediaBuys[].performance, including
windowStart, windowEnd, and lastUpdated; use those fields together when
displaying it. They describe the latest requested window, not lifetime delivery.
For Meta connected accounts, by_package is the ad-set-level billing breakdown
even when the campaign has no optional catalog-item mapping. Its package IDs are
the same ad-set IDs returned by media-buy creation and mirroring, spend stays in
the ad account’s currency and major unit, and the media-buy delivery status
reflects Meta’s current effective_status (not only its configured status).
Every enumerated ad set remains in by_package, including packages with zero
delivery in the requested window. If Meta cannot return an authoritative
package report or returns malformed billing metrics, the read fails instead of
returning an empty or partially trusted package snapshot. The same fail-closed
rule applies to requested device breakdowns. Geography rows that exceed the
campaign aggregate also fail closed. If Meta returns a smaller attributable
geography total, the campaign totals remain authoritative and
by_geo_truncated is true, so callers can distinguish incomplete attribution
from a complete breakdown. Spend that cannot be represented in the ad account
currency’s ISO-4217 minor unit is rejected.
For Snap connected accounts, the response currency always comes from the
selected Snap ad account; Interchange never substitutes USD when that read is
missing or invalid. by_package contains the complete paginated ad-squad
inventory, including zero-delivery squads Snap omits from its stats response.
Package impressions, clicks, spend, views, and completed views must reconcile
exactly to the campaign report before the response is returned. Both Snap TOTAL
reports must describe the exact requested window and agree before package rows
are accepted; shifted, partial, or out-of-range evidence fails the read. Snap spend is
converted from integer microcurrency to the account currency’s major unit by
dividing by 1,000,000. Unique reach is labeled with
reach_unit: "accounts"; campaign reach is not computed by summing package
reach because the same account can appear in more than one package. Missing,
duplicate, foreign, malformed, or partial Snap reporting evidence fails the
read instead of returning a partial snapshot. An active campaign is labeled
active only when Snap also reports its provider-computed delivery status as
DELIVERING.
Errors and recovery
See Directed campaigns (alpha).