Stay organized with collections
Save and categorize content based on your preferences.
This guide provides instructions on overriding the default ad break schedule and
configuring your own ad break playback timings. When manual ad break playback is
implemented, the SDK fires an AD_BREAK_READY event when an ad break has
loaded, and waits on you to start the break's playback.
Prerequisites
An Android application with the IMA SDK implemented.
Configuring manual ad break playback
To configure manual ad break playback:
Tell the SDK you want to control ad break playback.
Listen for the AD_BREAK_READY event.
Tell the SDK to play ads when you're ready.
The snippet below shows the modifications required to the
Advanced Example
to implement manual ad break playback.
publicVideoPlayerController(Contextcontext,VideoPlayerWithAdPlaybackvideoPlayerWithAdPlayback,ViewplayButton,ViewplayPauseToggle,Stringlanguage,ViewGroupcompanionViewGroup,Loggerlog){...sdkFactory=ImaSdkFactory.getInstance();ImaSdkSettingsimaSdkSettings=sdkFactory.createImaSdkSettings();imaSdkSettings.setLanguage(language);// Tell the SDK you want to control ad break playback.imaSdkSettings.setAutoPlayAdBreaks(false);...}...@OverridepublicvoidonAdEvent(AdEventadEvent){...switch(adEvent.getType()){// Listen for the AD_BREAK_READY event.caseAD_BREAK_READY:// Tell the SDK to play ads when you're ready. To skip this ad break,// simply return from this handler without calling adsManager.start().adsManager.start();break;...}
FAQ
Is manual ad playback required for an IMA SDK implementation?
No. manual ad playback is an optional feature for publishers who
don't want the IMA SDK to automatically play ad breaks as scheduled by an ad
rule or VMAP response.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThis guide explains how to manually control ad break playback timing in your Android app using the IMA SDK.\u003c/p\u003e\n"],["\u003cp\u003eBy disabling autoplay and listening for the \u003ccode\u003eAD_BREAK_READY\u003c/code\u003e event, you can trigger ad breaks at your desired moments.\u003c/p\u003e\n"],["\u003cp\u003eThis feature is optional and provides flexibility for publishers who need custom ad playback control beyond the default ad schedule.\u003c/p\u003e\n"],["\u003cp\u003eThe Advanced Example showcases the implementation, but the Basic Example with the Exoplayer-IMA extension cannot be used as a basis for this guide.\u003c/p\u003e\n"]]],[],null,["# Initiate ad breaks manually\n\nThis guide provides instructions on overriding the default ad break schedule and\nconfiguring your own ad break playback timings. When manual ad break playback is\nimplemented, the SDK fires an `AD_BREAK_READY` event when an ad break has\nloaded, and waits on you to start the break's playback.\n\nPrerequisites\n-------------\n\n- An Android application with the IMA SDK implemented.\n\nConfiguring manual ad break playback\n------------------------------------\n\nTo configure manual ad break playback:\n\n1. Tell the SDK you want to control ad break playback.\n2. Listen for the AD_BREAK_READY event.\n3. Tell the SDK to play ads when you're ready.\n\nThe snippet below shows the modifications required to the\n[Advanced Example](//github.com/googleads/googleads-ima-android/tree/main/AdvancedExample)\nto implement manual ad break playback.\n**Key Point:** The [Basic Example](//github.com/googleads/googleads-ima-android/tree/main/basicexample) implements the [Exoplayer-IMA extension](//github.com/google/ExoPlayer/tree/release-v2/extensions/ima) which handles the setup of ImaSdkSettings and AdEvents. Because of this, the Basic Example is not able to be used as a starting point for this guide. \n\n```carbon\npublic VideoPlayerController(\n Context context,\n VideoPlayerWithAdPlayback videoPlayerWithAdPlayback,\n View playButton,\n View playPauseToggle,\n String language,\n ViewGroup companionViewGroup,\n Logger log) {\n ...\n \n sdkFactory = ImaSdkFactory.getInstance();\n ImaSdkSettings imaSdkSettings = sdkFactory.createImaSdkSettings();\n imaSdkSettings.setLanguage(language);\n // Tell the SDK you want to control ad break playback.\n imaSdkSettings.setAutoPlayAdBreaks(false);\n \n ...\n}\n...\n@Override\npublic void onAdEvent(AdEvent adEvent) {\n ...\n switch (adEvent.getType()) {\n // Listen for the AD_BREAK_READY event.\n case AD_BREAK_READY:\n // Tell the SDK to play ads when you're ready. To skip this ad break,\n // simply return from this handler without calling adsManager.start().\n adsManager.start();\n break;\n ...\n}\n```\n\nFAQ\n---\n\nIs manual ad playback required for an IMA SDK implementation?\n: No. manual ad playback is an optional feature for publishers who\n don't want the IMA SDK to automatically play ad breaks as scheduled by an ad\n rule or VMAP response."]]