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 Flutter apps are implemented through native platform configurations. Since splash ads display before the Flutter engine fully initializes, they must be configured at the native Android and iOS level.
Flutter apps use native splash screens that appear before Flutter 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

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.

iOS Configuration

Step 1: Configure AppDelegate

Update your ios/Runner/AppDelegate.swift to display splash ads.
ios/Runner/AppDelegate.swift

Step 2: Configure SceneDelegate (iOS 13+)

For apps using SceneDelegate, update ios/Runner/SceneDelegate.swift.
ios/Runner/SceneDelegate.swift

Step 3: Add Logo Image

Add your app logo to the iOS assets:
  1. Open Xcode and navigate to Runner/Assets.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 (Optional)

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

AdropSplashAdDelegate


Best Practices

1. Set Appropriate Timers

Configure reasonable timeout values for better user experience.

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 FlutterViewController is 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 (Build > Clean Project > Rebuild)

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