Use banners and rewarded video alongside your Unity ad provider
Interstitials are only one part of the integration. Banner visibility and earned rewards have their own rules, regardless of which other provider you use.
SDK 0.5.3 preview · Download optional examples · Setup instructions
These are integration patterns for an existing ad manager, not complete provider SDK setups or certification of every SDK/version combination. Keep your provider's consent, initialization, loading, close, failure, and cleanup handlers. Use one shared guard for the entire ad break, including your provider's asynchronous display, so repeated taps cannot open competing ads. Call Indie Exchange on Unity's main thread; dispatch provider callbacks there when needed.
Reward the completed view, not the show call
First let the player accept a clear reward offer. Disable the reward button for the full opportunity and initialize both providers after consent.
bool displayed = await IndieAds.TryShowRewardedAsync(
onRewardEarned: () => GrantRewardOnceForThisOffer());
if (!displayed)
ShowNormalRewardedAd(); Both helper methods belong to your game. The normal provider must call the same once-per-offer reward handler only from its own earned-reward callback. A true result means an Indie ad displayed and closed; early exit can return true without earning a reward. Do not fall back after early exit.
If the normal rewarded provider has no ad
While the same accepted offer is active, and only before any ad has opened, make one cached recovery attempt:
bool displayed = await IndieAds.TryShowRewardedAsync(
onRewardEarned: () => GrantRewardOnceForThisOffer(),
bypassPercentage: true); If neither provider displays, show an ad-unavailable message and let the player continue. Your in-game reward is separate from exchange credits. Editor and device Test Mode exercise the reward callback, so test with a test player balance.
Let the game resume cleanly
Indie full-screen ads pause normal game time and audio and restore their previous state when closed. Banners do not pause gameplay. Custom unscaled timers and independent animations need your own pause logic; IndieAds.IsShowingInterstitial covers both Indie full-screen formats. Your other provider keeps its own pause/resume integration.