
Cold Start Splash Best Practice Implementation Flowchart
- The fill timeout duration = kATSplashExtraTolerateTimeoutKey - the time difference between the waterfall start time and this load start time - 0.1s.
- Do not set kATSplashExtraTolerateTimeoutKey to 0.
- The default value of kATSplashExtraTolerateTimeoutKey is 5 seconds. Decimal values are supported.
loadADWithPlacementID method to load the splash ad. You can pass kATSplashExtraTolerateTimeoutKey in this step to specify the timeout duration.When the didFinishLoadingSplashADWithPlacementID:isTimeout: callback is triggered, the following conditions must be met before calling showSplashWithPlacementID to display:
The load has not timed out (isTimeout==NO).
The app is in an active state (didBecomeActive).
The controller or window displaying the splash ad is visible.
didTimeoutLoadingSplashADWithPlacementID)didFailToLoadADWithPlacementID: error:)splashDidCloseForPlacementID:extra:)Note:
- Be sure to prevent duplicate navigation.
- When debugging, please release breakpoints, as breakpoint operations may affect the internal timer and cause unexpected behavior.

Custom Timer + Cold Start Splash Best Practice Implementation Flowchart
loadADWithPlacementID method to load the splash ad immediately after the timer starts.kATSplashExtraTolerateTimeoutKey passed when loading the ad should not be greater than the duration of your own timer.You can call loadADWithPlacementID after entering the home page to initiate warm start splash ad preloading.
Call the loadADWithPlacementID method in the splash ad splashDidShowForPlacementID: extra: display callback to preload the splash ad.
When the app returns to the foreground from the background, call the splashReadyForPlacementID method to determine whether there is currently an ad cache:
showSplashWithPlacementID method to display the ad.loadADWithPlacementID method to load the ad.When the app switches to the background, you can check the ad's isReady status. When no ad cache is available, you can execute preloading. This avoids situations where the warm start judgment returns NO due to ad cache expiration, which would require re-initiating a load and waiting for the load to complete before displaying the ad.