Menu

Best practices for splash Ads

Cold Start Splash Best Practice Implementation Flowchart

1.1 Load the Ad and Pass the Timeout Duration

  • 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.
  1. After the app starts, call the 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:

  1. The load has not timed out (isTimeout==NO).

  2. The app is in an active state (didBecomeActive).

  3. The controller or window displaying the splash ad is visible.

  • Entry timing 1: Ad load timeout (receive didTimeoutLoadingSplashADWithPlacementID)
  • Entry timing 2: Ad load failure (receive didFailToLoadADWithPlacementID: error:)
  • Entry timing 3: After the ad is dismissed (receive 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.

1.5 Best Practice for Custom Timer with Splash

Custom Timer + Cold Start Splash Best Practice Implementation Flowchart

  • When your project has additional timer logic, you need to call the loadADWithPlacementID method to load the splash ad immediately after the timer starts.
  • The extra timeout duration kATSplashExtraTolerateTimeoutKey passed when loading the ad should not be greater than the duration of your own timer.
  • You need to avoid conflicts caused by the SDK delegate callbacks and your own logic being triggered simultaneously.

2. Warm Start Splash

  1. You can call loadADWithPlacementID after entering the home page to initiate warm start splash ad preloading.

  2. 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:

  • YES: Call the showSplashWithPlacementID method to display the ad.
  • NO: Call the loadADWithPlacementID method to load the ad.

2.3 Optimization Case

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.

Previous
Splash Ads
Next
Custom Splash Ads
Last modified: 2026-07-08Powered by