Menu

Best practices for splash Ads

Scenario 1: Application cold start screen

Cold start screen opening best practice implementation flow chart

Loading Ads

  1. After the app or game is started, call the loadADWithPlacementID: method to load the splash screen ad.
  2. To avoid splash screen ad loading timeout, other forms of ad preloading logic and other requests that consume network resources are executed after the splash screen ad is displayed.
  3. It is recommended to use the SDK preset strategy to improve the loading efficiency of the splash screen ads after the first installation.

Display ads

When the didFinishLoadingSplashADWithPlacementID: isTimeout: callback is triggered, the following conditions must be met before calling showSplashWithPlacementID: for display

  1. If the loading timeout is not reached (isTimeout is false)
  2. App is in the foreground
  3. The splash ad display container has been added to the layout and is visible

Jump to interface timing

  1. Ad loading times out ( didTimeoutLoadingSplashADWithPlacementID: callback). You do not need to wait for the ad to be filled and can directly enter the main interface. However, please note that the current splash screen ad is still loading. If the subsequent loading is successful, the didFinishLoadingSplashADWithPlacementID: isTimeout: and didFinishLoadingADWithPlacementID: callbacks will be triggered.
  2. When ad loading fails ( didFailToLoadADWithPlacementID: error: callback), enter the main interface directly
  3. After the ad is closed, jump to the main interface ( splashDidCloseForPlacementID: extra: callback)

Note: The application needs to limit the repeated jump to the main interface

Best practices for developers to implement their own timer screen

Best practice flow chart for implementing own timer + cold start screen

  1. When the developer has additional timer logic, the loadADWithPlacementID: method needs to be called immediately after the timer is started to load the splash screen ad.
  2. The extra timeout (kATSplashExtraTolerateTimeoutKey) passed in when using ATAdManager , and the timeout is not greater than the timer time
  3. Developers need to handle the simultaneous triggering of didFinishLoadingSplashADWithPlacementID: isTimeout: and timer triggering scenarios by themselves to avoid multiple calls to display due to simultaneous triggering.

Optional optimization points

  1. When the app is loading the splash screen ad, it switches to the background. After the ad is successfully filled, it switches back to continue displaying the splash screen ad.

Optimization plan: Add a variable needShowSplashAd to mark whether it is necessary to display a cold start splash screen ad when the app enters the foreground. When the app enters the foreground, the agent determines this flag and then displays the splash screen ad.

Scenario 2: Application hot start screen

Loading Ads

  1. You can call loadADWithPlacementID after entering the home page: to initiate hot start screen preloading
  2. Call the loadADWithPlacementID: method in the splashDidShowForPlacementID: extra: display callback to preload the splash ad.

Display ads

When the app returns to the foreground from the background, call the splashReadyForPlacementID: method to determine whether there is an ad cache currently.

  • YES: Call the showSplashWithPlacementID: method to display ads
  • NO: Call the loadADWithPlacementID: method to load the advertisement
    Optional: Refer to the above "Cold Start Screen Best Practice Implementation Flowchart" to wait for the screen to be filled without timeout before displaying the screen ad.

Optional optimization points

1. When the app switches to the background, it can determine isReady, and preload can be performed when there is no ad cache. This avoids the situation where the hot start judgment returns NO due to ad cache expiration , and the ad needs to be re-initiated before loading can be displayed.

Previous
Splash Ads
Next
Custom Splash Ads
Last modified: 2025-05-30Powered by