Emitted when the app resumes after a click handed the link to an external
browser (or a deep-linked app). Counterpart to InAppBrowserClosed — exactly
one of the two fires per click, chosen by the ad's navigation type.
The request could not complete — a transport failure, a non-2xx response, or
a response that failed to decode. Distinct from KoahAdNoFill, which is a
successful "no inventory" answer.
Outcome of a Koah.requestAd call: exactly one of KoahAdFilled,
KoahAdNoFill, or KoahAdError. switch over the three cases to handle
success, no-fill, and failure separately. Mirrors KoahAdResult on iOS and
Android.
How a Koah ad slot is sized along one axis (width or height). Pass null
(the default) for an unbounded axis: the ad wraps its content and every
renderable format is eligible. A wrap against a parent that leaves the axis
unbounded (e.g. the cross axis of a scroller) still hugs a finite design-max
width, so long ad copy cannot stretch the card indefinitely.
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.
Emitted when a served ad can't fit its slot — the chosen format's content is
taller than a forced/capped height axis — so the SDK renders nothing (zero
size) instead of clipping. The publisher signature is AdServed then
SlotTooSmall with no ImpressionTracked (a de-rendered card bills
nothing). Give the slot more height, or leave the axis unbounded, to let a
smaller format fill instead.
The opaque render formats the SDK can display, one case per ladder name —
size lives in the name, there is no separate size axis. Pass one to
KoahSampleAd to render a hand-built specimen, or to Koah.requestPreviewAd
to ask the server for a canned specimen of that format (useful for
integration testing every format without seeding ads in the dashboard;
specimens are not impressions and do not record events).