Skip to main content

Overview

Splash ads are displayed on the splash screen when the app launches. The ad appears alongside your app logo, providing a natural user experience.

Features

  • Natural ad exposure at app launch
  • Maintains brand image with app logo
  • Fixed ad size: 360dp × 270dp (Android), 360px × 270px (iOS)
  • Supports image ads
Use the test unit ID during development: PUBLIC_TEST_UNIT_ID_SPLASH

Caching Behavior

Splash ads are prefetched and cached on the device so the creative can appear instantly at launch, before any network request completes. On the next launch the cached creative is shown first, and a fresh ad request runs in the background to refresh the cache for subsequent launches.
Because of this prefetch model, a creative that is paused in Ad Control Console may still be shown from the device cache until the next refresh cycle completes on each user’s device. Plan creative pauses and replacements with a buffer for the cache to roll over across the install base.

Implementation

Splash ads in React Native apps are implemented through native platform configurations. Since splash ads display before the React Native bridge fully initializes, they must be configured at the native Android and iOS level.
React Native apps use native splash screens that appear before the JavaScript bundle loads. Adrop splash ads integrate with this native splash flow.

Android Configuration

Step 1: Configure strings.xml

Add the following settings to android/app/src/main/res/values/strings.xml.
android/app/src/main/res/values/strings.xml
Use PUBLIC_TEST_UNIT_ID_SPLASH instead of YOUR_SPLASH_UNIT_ID for testing.

Step 2: Add Splash Logo Image

Add your app logo to the android/app/src/main/res/drawable/ folder.
Recommended size: 288dp × 288dp (@2x: 576px, @3x: 864px)

Step 3: Configure AndroidManifest.xml

Set AdropSplashAdActivity as the launcher activity.
android/app/src/main/AndroidManifest.xml
android:exported="true" is required for AdropSplashAdActivity. Make sure to remove the launcher intent-filter from MainActivity.

Step 4: Configure Splash Theme

Add or update the splash theme in android/app/src/main/res/values/styles.xml.
android/app/src/main/res/values/styles.xml
The androidx.core:core-splashscreen dependency is included in the Adrop SDK. No additional setup is required.

Step 5: Customize Layout (Optional)

To use a custom layout, create activity_adrop_splash_ad.xml in android/app/src/main/res/layout/.
android/app/src/main/res/layout/activity_adrop_splash_ad.xml
An ImageView with android:id="@+id/adrop_splash_ad_image" is required. The ad will be displayed in this view.

Step 6: Configure Display Duration (Optional)

To change the default display duration, create android/app/src/main/res/values/integers.xml.
android/app/src/main/res/values/integers.xml

Step 7: Implement AdropSplashAd Listener (Optional)

To receive splash ad events, set up a listener in your Application class.
When shouldSkip returns true, the ad is not loaded and navigates immediately to the main screen.

Step 8: Running the App

When running the Android app with React Native CLI, you need to specify the main activity:
This is required because AdropSplashAdActivity is set as the launcher activity instead of MainActivity.

iOS Configuration

Step 1: Configure AppDelegate

Update your ios/YourApp/AppDelegate.mm (or AppDelegate.swift) to display splash ads.

Step 2: Configure SceneDelegate (iOS 13+)

For apps using SceneDelegate, create or update ios/YourApp/SceneDelegate.swift.
ios/YourApp/SceneDelegate.swift
mainViewController must be set. After the splash ad closes, the SDK transitions to this view controller to display the React Native app.

Step 3: Add Logo Image

Add your app logo to the iOS assets:
  1. Open Xcode and navigate to YourApp/Images.xcassets
  2. Add a new Image Set named splash_logo
  3. Add your logo images (@1x, @2x, @3x)
Recommended size: 200×200 ~ 300×300 points

Step 4: Configure Info.plist

If using SceneDelegate, ensure your Info.plist has the scene configuration:
ios/YourApp/Info.plist

AdropSplashAdDelegate


Best Practices

1. Set Appropriate Timers

Configure reasonable timeout values for better user experience.
On iOS, the splash ad display duration is configured in the Adrop console ad unit settings.

2. Optimize Logo Image

Prepare your app logo in appropriate sizes to minimize loading time. Android:
iOS:

3. Handle Failures Gracefully

Ensure the app starts normally even when ad loading fails.

4. Distinguish Test/Production Environments


Testing

Test Unit ID

Use the test unit ID during development.
Make sure to use the actual unit ID created in the Adrop console for production releases. No ad revenue is generated with test unit IDs.

Troubleshooting

  • Verify that AdropSplashAdActivity is set as LAUNCHER in AndroidManifest.xml
  • Check android:exported="true" setting
  • Verify SDK initialization is complete
  • Ensure adrop_service.json is in the android/app/src/main/assets folder
  • Verify window.rootViewController is set correctly
  • Check if SceneDelegate is configured in Info.plist
  • Ensure SDK initialization is complete
  • Verify adrop_service.json is added to the Xcode project
  • Check network connection status
  • Verify the unit ID is correct
  • Confirm production: false setting in test environment
  • Check error code in onAdFailedToReceive
  • Verify adrop_splash_ad_next_activity is set correctly (Android)
  • Check onAdClose delegate implementation (iOS)
  • Ensure RCTBridge and RCTRootView are created properly
  • Verify filename is exactly activity_adrop_splash_ad.xml
  • Check that ImageView with @+id/adrop_splash_ad_image exists
  • Clean build and re-run

Next Steps

Interstitial Ads

Display full-screen ads during screen transitions

Banner Ads

Implement banner ads

Native Ads

Custom design native ads

Rewarded Ads

Provide user rewards