> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Caching & Fill Retention

> How the CloudX SDK caches ads, and best practices for retaining fill

The CloudX SDK handles ad caching automatically — there is nothing custom you need to build. When an impression opportunity arises, an auction runs, bids come back from the demand sources, and the SDK caches the winning ad and expires it automatically. There is no publisher-facing cache TTL to configure.

<Tip>
  **Rule of thumb:** Retain ads that were loaded successfully — this avoids wasting loaded fill and ensures fill is utilized effectively. Load as close to show time as possible for the best price; avoid preloading far ahead of the impression.
</Tip>

## Consistent across setups

The caching fundamentals do not change with your mediation setup. They are the same whether CloudX runs in **First Look**, **Parallel**, or **CloudX-only** mode, and the same for **MAX** and **AdMob**. Only the integration path differs — see [Trusted Arbiter](/en/android/trusted-arbiter) for parallel arbitration and the First Look integration guides under each platform tab.

## Per-format handling

The differences between formats are about how you drive freshness at show time, not the caching mechanism itself.

| Format                             | Freshness / caching handling                                                                                                                                                                                                  |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Banner & MREC                      | Auto-refresh is on by default; use `stopAutoRefresh` / `startAutoRefresh` for manual control. In multi-network arbitration, retain non-winning fills for the next round (see [Trusted Arbiter](/en/android/trusted-arbiter)). |
| Interstitial / Rewarded / App Open | Gate the show call on `isAdReady` (Android) / `isReady` (iOS). Retain a loaded ad until it is shown, then reload after it is consumed.                                                                                        |
| Native                             | Check `isExpired` before rendering, and handle `onNativeAdExpired` (Android) / `didExpireNativeAd` (iOS) to destroy and reload the ad. See the [Native ad format page](/en/ad-formats/native).                                |

## Related

* [Trusted Arbiter](/en/android/trusted-arbiter) — parallel arbitration and retaining non-winning fills.
* First Look — CloudX loads first with no held cache; see the First Look integration guide under your platform tab.
* Per-format integration code lives under the Android, iOS, Unity, and React Native tabs.
