Interstitial Ad Integration: Best Practices and Common Mistakes

Interstitial Ad Implementation in Mobile Apps You integrated Interstitials, but ARPU is dropping and churn is rising? 80% of the time the cause is technical: an Activity leak on Android or the wrong rootViewController on iOS. Let's walk through proper ad integration to generate revenue without lo

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Interstitial Ad Integration: Best Practices and Common Mistakes
Medium
from 1 day to 3 days

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

Interstitial Ad Implementation in Mobile Apps

You integrated Interstitials, but ARPU is dropping and churn is rising? 80% of the time the cause is technical: an Activity leak on Android or the wrong rootViewController on iOS. Let's walk through proper ad integration to generate revenue without losing your audience.

Interstitials are full-screen ads that generate 5–15x more revenue than banners, but the cost of a mistake is higher. One ill-timed impression and the user uninstalls. Our track record: 30+ projects with ad integration on iOS and Android.

Why Interstitials Require a Special Approach

Unlike banners, interstitials completely cover the UI. Every impression is a pause in the user's workflow. If the ad appears during loading, typing, or level start, up to 30% of users leave. The right strategy is to show after a completed action, when the user is ready for a pause. For games, that's end of level; for utilities, after saving a file or submitting a form.

How to Avoid Common Integration Mistakes

The main technical issue on Android is an Activity leak. The pattern "load in singleton, show from any Activity" looks convenient, but InterstitialAd holds a reference to Context. If the Activity is destroyed while the object lives, you get a leak and a WindowManager$BadTokenException when trying to show it on a non-existent window.

The correct approach: load using applicationContext in a ViewModel or presenter, and show through an active Activity passed via WeakReference or lambda at show time:

class InterstitialManager(private val appContext: Context) { private var interstitialAd: InterstitialAd? = null fun load() { InterstitialAd.load(appContext, AD_UNIT_ID, AdRequest.Builder().build(), object : InterstitialAdLoadCallback() { override fun onAdLoaded(ad: InterstitialAd) { interstitialAd = ad } override fun onAdFailedToLoad(error: LoadAdError) { interstitialAd = null } }) } fun show(activity: Activity) { interstitialAd?.show(activity) ?: load() } } 

After show(), the object becomes invalid — you need a new load(). Forgetting to load after a show is a common cause of "the ad showed once and nothing else." On iOS, GADInterstitialAd is also single-use: one instance, one show. Calling presentFromRootViewController: again gives an error. Create a new instance after each show. The rootViewController must be the current view controller, not just window?.rootViewController. If a modal controller is presented, the interstitial must be shown on top of it: presentedViewController ?? rootViewController.

Case Study: What We Changed in a 1M+ Install Project

One client — a puzzle game with 1,000,000 downloads — showed interstitials on every level transition. Churn hit 40%, ARPU dropped 15%. We audited the code: on Android, an Activity leak (singleton held a stale context); on iOS, the wrong rootViewController (ad was shown on UIApplication.shared.keyWindow while a modal SKStoreProductViewController was presented). Fixes:

  • Replaced the singleton with an application-level manager using WeakReference<Activity>.
  • Added preloading of the next ad immediately after a show.
  • Increased cooldown from 10 seconds to 2 minutes.
  • Added analysis of onAdDismissedFullScreenContent to resume gameplay.

Result: churn dropped 35%, ad revenue grew 20% within a month, and ROI reached 300%. The implementation cost pays for itself in 2–3 months through increased revenue and reduced churn.

Why Preloading Is Critical for UX

Interstitials must be loaded in advance — the ad network request takes 1–3 seconds. Loading at display time creates a noticeable pause. The right approach: load immediately after the previous show or at level start. On iOS, the GADInterstitialAd object is single-use, so load a new one after each show. See the Google AdMob documentation for details.

Display Strategy: What's Included in Our Work

We develop a display strategy tailored to your app. Key parameters:

Parameter Recommendation
Cooldown between shows At least 30–60 seconds, better 3–5 minutes
Show points Level completion, save, navigation to menu
Bad points Back button, notification open, first launch
Preloading Immediately after previous show or at level start
Event handling onAdImpression, onAdDismissed, onAdFailedToShow

Interstitial vs Banner

Interstitials generate 5–15x more revenue per impression but require more careful tuning. Banners are less intrusive but yield lower revenue. The optimal mix is both: banners on permanent screens, interstitials at transition points.

Turnkey Implementation Process

  1. Analytics & audit – study app architecture, SDK versions, existing ads. Measure current metrics (fill rate, CTR, ARPU).
  2. Strategy development – define show points, cooldown, frequency, exceptions. Account for user scenarios.
  3. Code integration – implement ad manager with preloading, error handling, leak prevention. Write code for iOS (Swift) and Android (Kotlin).
  4. Testing – test on 5+ devices with different OS versions. Check edge cases: no network, fast screen transitions, notifications.
  5. Deployment & analytics – embed event tracking (onAdImpression, onAdDismissed). Connect logging to Firebase or Amplitude.
Stage Duration
Audit 0.5 day
Strategy 1 day
Integration 1–3 days
Testing 1 day
Documentation 0.5 day

Timeline: 1 to 5 days depending on complexity.

Event Handling

Minimum analytics set:

  • onAdImpression / adDidRecordImpression – count impression
  • onAdDismissedFullScreenContent – resume user flow
  • onAdFailedToShowFullScreenContent – log error, don't block UX

These callbacks help track performance and quickly react to issues. We also recommend passing metadata (level, user action) to analytics.

What Proper Strategy Delivers

With correct tuning, fill rate reaches 95%, and user churn decreases by 20–30%. According to Google AdMob guidelines, interstitials should only be used in natural pauses. Reach out to us — we'll find the optimal solution for your app. Order interstitial implementation with best practices — get stable revenue without losing your audience.