Skip to main content
This page compares the Meta Ads capabilities represented in the Apostra adapter with what Apostra currently makes available to buyers. It answers a practical question: what can I do through Apostra today, and what would still require another path?
Last reviewed 2026-08-27. This is Apostra’s description of its own adapter, based on the implementation and the linked provider documentation. Meta Ads has not reviewed or endorsed this page. Availability can still vary by account permissions, market, and provider access.

At a glance

How to read availability

  • 🟢 Available — Offered through Apostra now, subject to your ad account’s permissions and eligibility with the provider.
  • 🟡 Partial — Some of the workflow is available; the Comments column explains the boundary.
  • 🔵 Testing — Apostra is validating the workflow before offering it broadly.
  • Planned — Not offered through Apostra yet. The provider may still support it directly; Comments explains why and links a roadmap reference.

Roadmap

The adapter roadmap is tracked in AI-1940 (a plain-text reference — Apostra’s internal issue tracker is not public). This roadmap tracks Meta adapter product completeness, safety, and live readiness. Every row that is not currently available shows that reference or a more specific one in its References column, so customers and partners can quote a stable identifier when asking about a capability.

Connection, accounts, and identity

Meta Ads connects to Apostra through an OAuth grant. Connecting a Business Manager / Business Portfolio account gives Apostra access to each Ad account (act_…) it can reach — you then map each one to your advertisers. The mapped account decides which Meta Ads tenant a buy runs on: a media buy for an unmapped advertiser fails closed with account_mapping_required rather than silently using another account. Connection, account-discovery, and revocation behavior is the same across ad platforms — see Platform accounts and advertiser mapping for the full model and the Meta Ads section of the connecting guide for Meta Ads-specific permissions.

Campaign products

Pricing notes

pricing_options omits floor_price and price_guidance for every Meta product. Meta exposes no discovery-time bid estimate, so a static guess would be no more reliable than no guidance at all, and for a non-USD ad account it would mean silently relabeling a USD number or, as it did before, showing an outright zero. Each product is still priced (pricing_model, currency, max_bid); there is simply no platform-backed number to bid against yet.

Creative formats

These rows describe Apostra availability, not a claim that the ad platform itself prohibits an unavailable format.

What the adapter can do

Placement choices

Targeting

Reporting

Apostra reports Meta Ads delivery day by day (there is no hourly delivery breakdown), aggregated nightly from adapter-reported delivery, in the advertiser’s home currency using the booked or historical exchange rate — any cross-currency rollup is always labeled an estimate and is never used for billing. See Reporting overview for the full model. Apostra does not currently publish an attribution-finality window for Meta Ads; the table below lists every metric the adapter surfaces today.

Webhooks and async lifecycle

Meta Ads campaign products declare supports_webhooks: false, so there is no product-level provider webhook contract for status, delivery, or reporting. Apostra separately accepts Meta’s native ad-account webhook events.
  • Status. A native Meta ad-account webhook event can trigger a media-buy status refresh for affected campaigns. Apostra does not otherwise poll Meta Ads in the background for creative or media-buy status changes; an explicit adapter read refreshes provider campaign state.
  • Delivery. Apostra fetches delivery numbers (spend, impressions, clicks) live from Meta Ads on demand, only when you call get_media_buy_delivery directly. The /reporting/metrics endpoints never call the adapter either way — they read from a separately-populated store (see Reporting below), so a reporting request does not itself refresh provider delivery.
This is separate from Apostra’s own buyer webhook subscriptions — an unrelated account-level event feed (currently discovery.revision only), documented in Buyer webhooks. Meta is the one adapter with a genuine provider-pushed channel: Apostra can receive Meta’s native ad-account webhook events and surface account-health signals such as disapproved ads or creative fatigue as ext.scope3_provider_signals, a Scope3 extension rather than a canonical AdCP status field. Processing an event can also refresh media-buy status for affected campaigns. The channel does not carry delivery numbers; on-demand delivery reads and the separately populated reporting store remain the sources for delivery.

Market and account availability

Apostra does not promise that every feature is enabled for every account or market. Availability is checked against your selected ad account rather than a global market list on this page.

Important limitations

  • Apostra implementation/testing. Messenger Inbox, Messenger Stories, and Threads Feed are not offered as selectable placements.
  • Apostra implementation/testing. Promoting an existing post is still being tested and is not generally available.
  • Apostra implementation/testing. Budget and bidding settings cannot be replaced atomically; create a replacement media buy instead.
  • the ad platform’s API or your account’s eligibility. Account permissions, Page, Instagram, and WhatsApp ownership, and objective eligibility can narrow what is available.
  • the ad platform’s API or your account’s eligibility. Sales Website Value (`meta_sales_website_value`) requires the ad account’s business to have been actively advertising for several weeks or to be verified with Meta; new or unverified businesses are rejected until then. Use Conversions (`meta_conversions`) instead in the meantime.
  • the ad platform’s API. The Awareness product (`meta_awareness`) uses Meta’s REACH optimization goal. When no `targeting_overlay.frequency_cap` is provided, Meta automatically applies a platform default of 2 impressions per 7 days. To use a different cap, pass `targeting_overlay.frequency_cap` explicitly in your `save_media_buy` or `create_media_buys` call. All other Meta products use auction delivery and have no platform-applied default frequency cap.

Technical mapping

Engineering-level detail — raw provider objectives, billing enums, optimization codes, and object-field mappings. Not required reading to understand what Apostra can do with Meta Ads; see the tables above for that.

Provider documentation