Please refer to the following key points during testing to ensure all features and user experience meet expectations.
[ ] 1. Initialize MCSDK on App Launch
- For releases in the EU, execute the GDPR compliance consent flow before initializing MCSDK.
- Clearly specify which mediation platforms are integrated (e.g., TopOn, Max), and verify that each mediation SDK is initialized successfully.
[ ] 2. Preload Ads After SDK Initialization
- Stagger ad loading logic to avoid high-concurrency ad load requests.
- Use a single global Ad instance for rewarded, interstitial, splash, and native ad formats.
[ ] 3. Rewarded Ads & Interstitial Ads
- After MCSDK initialization or when entering the app's main scene, trigger the first ad load request in advance.
- Before showing an ad, call
isReady
to check ad availability; if true
, show the ad, if false
, request ad loading.
- For rewarded video, ensure rewards are granted in the
onUserRewarded
callback and verify reward delivery during testing.
- Preload in the ad callback(
onAdLoadFailed
, onAdDisplayFailed
, onAdHidden
, onAdDisplayed
).
- Prevent Multiple Clicks: When displaying rewarded or interstitial ads, prevent multiple clicks to avoid duplicate ad pop-ups.
[ ] 4. Splash Ads
- If using custom timeout logic, pass the same timeout value to MCSDK.
- On ad load timeout, navigate to the app's main page in the
onAdLoadTimeout
callback.
- If loading does not timeout, display the ad in the
onAdLoaded
callback.
- Preload splash ads for soft launch in
onAdDisplayFailed
and onAdHidden
callbacks.
- When the app switches to the background or pages change, call
isReady
to check for cached ads; if false
, preload ads.
- On skip click, ensure the
onAdHidden
callback is triggered correctly and external browser/app jumps work as expected.
[ ] 5. Banner Ads
MCAdView
can be added to BannerViewContainer
in advance and set to visible
, or you can request ad loading first and add to the container when ready to display.
- For
auto-refresh
, use HyperBid Tools > Select App > Edit Banner Mediation Unit > Advanced Settings, and disable auto-refresh in each mediation platform's dashboard.
- After enabling auto-refresh in HyperBid dashboard, verify that auto-refresh works as expected.
[ ] 6. Native Ads
- In the
onAdLoaded
callback, if MCNativeAdView
and MCAdInfo
are not null, retain references for subsequent ad display.
- Ensure view types in
MCNativeAdViewBinder.Builder
strictly match, and check if onAdDisplayed
is triggered correctly on each platform.
- Resource release: If using a global NativeAd instance, release resources when the app exits; if bound to an Activity, call
NativeAdLoader.destroy()
in onDestroy()
.
- Different networks have different rendering requirements; ensure all networks can fill, display, and trigger
onAdDisplayed
callback correctly.
[ ] 7. MCSDK Debug Log
- Log TAG filter:
mcsdk
- Use logs to verify that all ad sources configured in each mediation platform can be filled, and that load, fill, display, and click callbacks are triggered as expected.