Overview
Popup ads are ad formats that appear on screen at specific moments. They can be displayed at desired timings such as app launch, content load completion, or specific event occurrences. Users can close them by tapping the close button or selecting “Don’t show for today.”Features
- Popup format displayed at center or bottom of screen
- Supports both image and video ads
- Provides close, dim (background) click, and “Don’t show for today” options
- Customizable background color, text color, etc.
- Non-intrusive yet effective ad experience
Use test unit IDs in development environment. See the Test Unit IDs section.
Implementation Steps
Implement popup ads in 4 steps:- Initialize - Create AdropPopupAd instance
- Set Delegates - Set delegates to receive ad and close events
- Load Ad - Request and receive ad
- Show Ad - Display ad on screen
UIKit Implementation
Basic Implementation
Delegate Implementation
SwiftUI Implementation
In SwiftUI, useUIViewControllerRepresentable or get the rootViewController from UIWindow to display.
ViewModel Pattern
Customization
You can customize the appearance of popup ads.Set Background Color and Text Color
Customization Options
| Property | Type | Description | Default |
|---|---|---|---|
backgroundColor | UIColor? | Action bar background color | nil |
hideForTodayTextColor | UIColor? | ”Don’t show for today” text color | White |
closeTextColor | UIColor? | Close button text color | White |
ctaTextColor | UIColor? | CTA (Call to Action) button text color | White |
Delegate Methods
AdropPopupAdDelegate (Ad Events)
Required Methods
Called when ad is received successfully. You can call
show() at this point to display the ad.Called when ad fails to load. You can check the cause of failure through the error code.
Optional Methods
Called when ad impression is recorded.
Called when user clicks the ad.
Called just before popup ad is displayed.
Called immediately after popup ad is displayed on screen.
Called just before popup ad is dismissed.
Called immediately after popup ad is dismissed. Good time to preload the next ad.
Called when ad fails to show. You can check the cause of failure through the error code.
Called when a video ad starts playing.
Called when a video ad finishes playing.
AdropPopupAdCloseDelegate (Close Events)
All methods are optional.Called when user clicks the close button.
Called when user clicks outside the popup (dim area).
Called when user selects “Don’t show for today.” You can save the date in this callback to prevent showing ads for the rest of the day.
Custom Click Handling
You can take control of ad click behavior by usinguseCustomClick. When enabled, the SDK will not automatically open the destination URL on click, and you can handle it yourself.
useCustomClick
useCustomClick is true, the SDK will not open the destination URL automatically when the ad is clicked. The onAdClicked delegate callback will still fire, and you can use the open() method or handle navigation yourself.
open()
Opens the destination URL of the ad. Can optionally pass a custom URL.close()
Programmatically dismiss the popup ad.Properties
| Property | Type | Description |
|---|---|---|
unitId | String | The ad unit ID |
isLoaded | Bool | Whether the ad has been loaded |
useCustomClick | Bool | Whether to handle ad clicks manually |
destinationURL | String? | Destination URL of the currently displayed ad |
creativeId | String? | Creative ID of the currently displayed ad |
txId | String | Transaction ID of the currently displayed ad |
txIds | [String] | All transaction IDs of loaded ads |
campaignId | String | Campaign ID of the currently displayed ad |
campaignIds | [String] | All campaign IDs of loaded ads |
creativeIds | [String] | All creative IDs of loaded ads |
browserTarget | BrowserTarget? | How to open URLs on ad click |
Closure-based Callbacks
In addition to delegates, you can also use closure-based callbacks. This can be convenient when you don’t want to implement a full delegate pattern.Delegate callbacks and closure-based callbacks can be used simultaneously. Both will be called.
Implementing “Don’t Show for Today”
How to properly handle when users select “Don’t show for today.”The SDK automatically manages the “Don’t Show for Today” state. The following example shows how to add custom behavior alongside the built-in handling.
Implementation
The SDK automatically skips loading when the user has selected “Don’t show for today.” Simply callload() — the SDK handles the rest.
Best Practices
1. Appropriate Display Timing
Popup ads are effective when shown at these timings:2. Respect “Don’t Show for Today”
If user selects “Don’t show for today,” make sure to honor it.3. Frequency Capping
Don’t show popup ads too frequently.Test Unit IDs
Use the following test unit IDs during development and testing.| Ad Type | Test Unit ID |
|---|---|
| Popup (Bottom Image) | PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM |
| Popup (Center Image) | PUBLIC_TEST_UNIT_ID_POPUP_CENTER |
| Popup Video (Bottom 16:9) | PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_16_9 |
| Popup Video (Bottom 9:16) | PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_9_16 |
| Popup Video (Center 16:9) | PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_16_9 |
| Popup Video (Center 9:16) | PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_9_16 |
Related Documentation
Getting Started
SDK installation and initialization
Interstitial Ads
Implementing interstitial ads
Rewarded Ads
Implementing rewarded ads
Banner Ads
Implementing banner ads