Declarative pool ownership. Creates pools for the configs it is given and
destroys them on unmount, reconciling by poolId on every render rather
than by array identity.
Returns the static capability snapshot for this binary.
Renders a multi-format request banner handle.
Read a pool created by AdPoolProvider or AdPools.create.
retry keeps a stable identity for the life of the hook instance.
React Hook for App Open Ad.
App-open manager hook aligned with Google's AppOpenAdManager sample and
app-open guidance.
A custom hook that invokes a callback when the app transitions to the foreground.
React Hook for Google Ad Manager Interstitial Ad.
React Hook for Interstitial Ad.
Multi-format request as a hook. One request, several eligible formats, one
winner (requestCount 1 in v1).
React Hook for Native Ads.
Poll-on-demand against a pool. Never polls during render.
React Hook for Rewarded Ad.
React Hook for Rewarded Interstitial Ad.
A class for interacting and showing Interstitial Ads.
A class for interacting and showing Interstitial Ads.
One AdLoader / GADAdLoader request that may return native and/or GAM banner.
A class for loading Native Ads.
A class for interacting and showing Rewarded Ads.
A class for interacting and showing Rewarded Interstitial Ads.
The result of requesting info about a users consent status.
The options used when requesting consent information.
The options used when requesting consent information.
A AdShowOptions interface used when showing an ad.
An app event received from Google Ad Manager ads.
An interface for a Banner advert component.
An interface for a GAM Banner advert component.
The RequestOptions interface. Used when passing additional request options before an advert is loaded.
The RequestConfiguration used when setting global ad settings via setRequestConfiguration.
The RequestOptions interface. Used when passing additional request options before an advert is loaded.
A RewardedAdReward returned from rewarded ads.
One waterfall row. outcome narrows adError without pretending the shared
adapter identity and latency fields disappear when a row fails.
Fields every waterfall row reports, whether or not that row failed. Latency on failed rows is what makes waterfall debugging useful, so these are never dropped in the error case.
An immutable snapshot of a mediation adapter's initialization status.
The single error type every v17 hook and multi-format load result uses.
OPEN union. Known members are stable; anything else is a passthrough for error codes added after release.
ERROR payloads remain Error instances at runtime (NativeError) and gain
additive AdErrorPayload fields (reason, phase, optional responseInfo).
Intersecting with Error keeps (error: Error) => void handlers assignable.
PAID payloads are impression-level revenue (PaidEvent).
Publisher-owned staleness policy on inventory the consumer holds.
Identity carried by every piece of inventory the library hands to a consumer, for correlation and diagnostics.
Who performed the load for this handed-out object.
Snapshot of pool buffer readiness from AdPool.getAvailability().
Degradation reasons reported on resolved.
Pool lifecycle events.
Override bag for AdPoolPresets.*. Omits formats and adUnitId so a
preset cannot be type-undercut into a different family or unit. poolId
remains overridable when you need a stable custom id; overriding it widens
the preset return's poolId to string.
Effective pool configuration after capability and app-wide accounting.
Where the applied staleness window on a handed-out object came from.
emulated = library-implemented, not SDK-provided. Distinct from degraded.
Collapsible Placement. The collapsible placement defines how the expanded region anchors to the banner ad.
Default poolId for AdPoolPresets.display. Prefer reading
AdPoolPresets.display(unit).poolId (or this template with the same unit
constant) at both provider and consumer so a typo fails at compile time.
Options object accepted by the second call form of every fullscreen ad hook.
Default poolId for AdPoolPresets.fullscreen. Prefer reading
AdPoolPresets.fullscreen(format, unit).poolId at both ends of the joint.
The winning row. A loaded response cannot carry an error, so adError is
statically null and needs no consumer null-check.
The ad unit plus the request that describes one multi-format load.
One AdLoader-style request where native and/or GAM banner formats compete for a single winner.
Fixed GAM sizes safe in an AdLoader request; adaptive/fluid are not.
Outcome of one multi-format load, discriminated on status.
Impression-level revenue snapshot.
Outcome of poll(). Replaces a bare null, which could not distinguish an
exhausted buffer from a timeout, a no-fill, or a transport failure: cases
that call for different consumer responses.
Publisher-policy staleness surface on the object the consumer owns after
poll().
Identity carried by every pooled ad, for correlation and diagnostics.
Ad-server and mediation-waterfall metadata for one request.
Pool lookup state.
Status discriminant for useAdPool. Derived from UseAdPoolResult so the
string union cannot drift from the result arms. Also the type of
usePooledAd(...).poolStatus.
Options for useAppOpenAdManager.
Result of useAppOpenAdManager.
Where the managed app-open ad is right now. Vocabulary matches the fullscreen options-form hooks where applicable.
Options object accepted by the v17 call form of useAppOpenAd.
Result of the v17 call form. App open ads carry no reward.
The options-form result, discriminated by status.
Where the ad is right now. Exactly one value applies at a time.
Options object accepted by useGAMInterstitialAd.
Result of useGAMInterstitialAd. GAM interstitials carry no reward.
Options object accepted by the v17 call form of useInterstitialAd.
Result of the v17 call form. Interstitials carry no reward.
Arguments to useMultiFormatAd: the shared request config plus its
automatic-load policy.
Multi-format hook state, discriminated on status.
Status discriminant for useMultiFormatAd. Derived from
UseMultiFormatAdResult so the string union cannot drift from the result
arms.
Options object accepted by useNativeAd.
Result of useNativeAd, discriminated by status.
Where the native ad request is right now. Exactly one value applies at a time.
Poll-on-demand hook state, discriminated on status.
Options object accepted by the v17 call form of useRewardedAd.
Result of the v17 call form, including the reward facts.
Options object accepted by the v17 call form of useRewardedInterstitialAd.
Result of the v17 call form, including the reward facts.
Backend-aware pool config presets. Return plain AdPoolConfig objects; AdPools.create validates them the same as hand-written config.
Google's published guidance figures used as publisher policy defaults,
not as the SDK's cache timeout. The real preload TTL is server-delivered and
unreadable; these millis are only the defaults applied when the publisher
does not configure a window. Public contract: Option 1 — report and hand over
inventory that already exceeds the window; do not auto-discard on poll
(isStaleByPolicy / onStaleByPolicy on the held object).
Multi-format request presets. Return plain MultiFormatAdRequestOptions, so
they drop straight into the requestOptions slot of a MultiFormatAdConfig
and the ad unit stays at the top level beside it.
Convenience identifiers for RequestConfiguration.testDeviceIdentifiers.
AdsConsentDebugGeography enum.
AdsConsentPrivacyOptionsRequirementStatus enum.
AdsConsentStatus enum.
React Native bindings for Google Mobile Ads.
Choose the smallest API that fits
Start with the classic classes and components (
BannerAd,NativeAd, direct create/load/show), move to the options-form hooks when React should own one ad's lifecycle, and reach for preload pools or multi-format requests only when you need warmed inventory or one flexible slot. Pools and multi-format requests are additive. Existing direct APIs remain supported.The full decision list, including the
show()error channels and consent gates, lives in theAGENTS.mdshipped with the npm package. See also Ad formats, Preload pools and multi-format recipes, and For AI agents.Deliberate v17 boundaries
Multi-format requests return one winner; custom native formats and multi-count (
numberOfAds/requestCountabove 1) are outside this surface. Scoped mediation adapter packages integrate networks with Google Ad Manager; they are not alternative ad-pool hosts. Compatibility shims remain in v17, with deprecated positional fullscreen-hook overloads scheduled for removal in v18.Common v17 migrations
load()effectautoLoad; branch onstatusMigration is optional. Do not add a provider to classic flows that do not need warmed inventory, and do not use a pool when one hook-owned fullscreen ad is enough.
First diagnostics
useAdPoolreportingabsentmeans the provider/config does not own thatpoolId; it is not a slow create.usePooledAdinstances sharing a depth-1 display pool can starve each other. Give each placement an id or centralize polling.usePooledAdoruseMultiFormatAd, callrelease()first when ownership must leave the hook; other hooks keep ownership, so use the hook's owndestroy().idlewhenautoLoadis false oradUnitIdis null.closed; callload()when another impression is plausible.Mediation adapters
This generated reference covers core. Public scoped adapters are published as
@react-native-google-mobile-ads/applovin,facebook,inmobi,mintegral,moloco,pangle,unity,vungle, andyandex. Their package READMEs are the adapter references; the private_templateworkspace is not published.