Observe ad state for a request from a Flutter widget. Triggers a prefetch
on construction if the messageId isn't already cached or in flight,
then notifies listeners on transitions (idle → loading → filled | noFill).
A widget that displays a card-style ad. Appearance is driven by the
ambient KoahTheme — wrap your subtree in KoahThemeProvider to
customize accent, color scheme, font, and card radius.
A hand-constructable sample ad for previews, demo galleries, and snapshot
fixtures. This is the public mirror of the SDK's internal, server-decoded
ad model: it carries the same renderable fields but can never be produced
from a network response, which keeps the contract clear — publishers render
ads through KoahCard/Koah.requestAd, they do not fetch ad content and
lay it out themselves.
Public theming surface for Koah ad components. Wrap your subtree with a
KoahThemeProvider passing one of these to customize the look-and-feel
of every Koah ad below it in the widget tree. Mirrors Android's
KoahTheme and iOS's KoahTheme, plus the web SDK's publisher token
surface.
Observable projection of an ad request's lifecycle. Callers hold this via
KoahAdLoader (or read it once from Koah.resolveAd) to drive feed
layout decisions before committing to a view — collapse no-fills, reserve
height for pending fills, etc.
Publisher-side preview formats. When supplied to Koah.requestPreviewAd,
the server short-circuits the ad pipeline and returns a canned specimen
for the requested format — useful for previewing every format/size combo
during integration without seeding ads in the dashboard. Specimens are
not impressions and do not record events.