Implementing Interstitial advertising in a mobile application

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
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 1 servicesAll 1735 services
Implementing Interstitial advertising in a mobile application
Medium
from 1 business day to 3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Interstitial Ad Implementation in Mobile Application

Interstitial is fullscreen format shown in natural pause points: between game levels, after task completion, when transitioning between sections. Revenue from one impression is 5–15 times higher than banner, but cost of error is higher: inappropriate interstitial — app deletion.

Lifecycle Management: Where It Breaks Most Often

Main error — show interstitial immediately after load, not defer to right moment. User opened app, didn't understand what's happening — already fullscreen ad. Google catches this and downgrades app in search.

On Android typical problem — Activity leak. Pattern "load in singleton, show from any Activity" looks convenient, but InterstitialAd holds reference to Context. If Activity destroyed but object alive — get leak + WindowManager$BadTokenException when trying to show on non-existent window.

Correct approach: load in ViewModel or presenter with applicationContext, show via active Activity passed through WeakReference or lambda at show moment:

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() // showed — immediately start loading next
    }
}

After show() object becomes invalid — need new InterstitialAd.load(). Forgotten load() after show — common reason "ad showed once and that's it."

Display Strategy

Effective interstitial requires planned strategy, not "show as often as possible":

Cooldown between shows. Minimum 30–60 seconds between interstitials. Implemented via last show timestamp in SharedPreferences/UserDefaults. Google recommends no more than once per 3–5 minutes for most categories.

Show points. Good points: level completion, result save, main menu transition. Bad: on back tap, on notification open, on first launch.

Preloading. Interstitial must load in advance — server request takes 1–3 seconds. If loading at show time — pause will be noticeable. Correct: load right after previous show or at level start.

iOS Specifics

On iOS GADInterstitialAd — not reusable object. One instance — one show. Attempting present(fromRootViewController:) again gives error in logs and shows nothing. Create new instance after each show via GADInterstitialAd.load(withAdUnitID:request:completionHandler:).

Important rootViewController — pass current VC, not window?.rootViewController. If modal controller on top, interstitial must show over it: presentedViewController ?? rootViewController.

Event Handling

Minimal set for analytics:

  • onAdImpression / adDidRecordImpression — count show
  • onAdDismissedFullScreenContent / adDidDismissFullScreenContent — continue user scenario
  • onAdFailedToShowFullScreenContent — log error, don't block UX

Timelines for implementation — 1–2 days including display strategy and testing on multiple devices.