Hi Team,
I hope you're doing well.
I'm currently integrating the IMA SDK with ExoPlayer in an Android app using the ExoPlayer IMA extension(1.3.1). I'm able to successfully load and play ads in normal cases. However, I'm facing a challenge when an ad request fails due to an error or results in a no-fill response.
My Current Approach:
I listen for AdErrorEvent and on error, I call adsLoader.requestAds() again with a new adsId and the same DataSpec and ViewGroup.
I ensure that adsLoader.setPlayer() is called beforehand and the player is prepared with a MediaItem
Despite re-requesting ads with new adsId, IMA does not trigger any ad events or errors after the retry. It appears to silently fail or not proceed.
Could you please clarify:
What is the recommended way to retry an ad request after a failure or no-fill?
Are there any limitations or required delays before re-calling requestAds()?
Does adsId need to be unique every time to bypass internal caching?
Is it necessary to recreate the ImaAdsLoader for each retry attempt?
Any official guidance or best practices on retry logic would be greatly appreciated.
Thank you for your support.
Best regards,
Yash Gupta (yash....@unibots.com)
Hey Yash,
Thank you for providing the IMA SDK Support Team.
In case you are getting any error in any ad response or receiving any empty response. Then I would recommend getting it resolved by contacting your ADManager support representative.
Because every time if it throws an error then your main video will not play anymore and this call will go to infinity loop or implement retry count logic.
What is the recommended way to retry an ad request after a failure or no-fill?
Answer: Yes you can retry the ad request again, but make sure your other ads get disturb (in case of VMAP there is pre, mid, post)
Are there any limitations or required delays before re-calling requestAds()?
Answer: In order to create an ad request again you can follow the same approach which has one initially.
Does adsId need to be unique every time to bypass internal caching?
Answer: No, once you clear the ad request instance after an error and create a new one then it will restructure new values again.
Here you can verify the correlator parameter value (It’ll be different for 2nd call).
Is it necessary to recreate the ImaAdsLoader for each retry attempt?
Answer: No, it is generally NOT necessary and is often inefficient to recreate the ImaAdsLoader for each retry attempt in IMA Ads. You should typically create and initialize the ImaAdsLoader once during the setup of your ad integration. You can then reuse this same AdsLoader instance to make subsequent ad requests, including retries.
If you face any other issue related to IMA SDK then contact us again along with Charles logs.
![]() |
IMA SDK Team |
[2025-04-24 22:19:43Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01qUpvj:ref" (ADR-00301504)
Hey, thank you for acknowledging the issue, but my main issue is such that:
When I am trying to send the ad request manually using the Interactive IMA SDK library which creates a VideoAdPlayer interface object, it is able to send the request and the ad is playing in the ExoPlayer, but:
The events triggered by the ad content are misfired.
Major events like:
skipped
first quartile
midpoint
etc.
are never triggered/fired.
This results in:
Triggering all_ads_completed and content_resume_requested early (like after 4 or 5 seconds of ad play) even though the ad content is of 20–28 seconds.
Also, the skip button is not displaying in the skippable ads.
Hi,
Thank you for getting back to us.
We’ve tried from our end and was able to reload the ads with the events.
Could you kindly share your sample project privately with how you are handling reload functionality for further investigation.
If the file(s) you are looking to share are less than 25mb in total you can attach them to this case on your next reply. If you are having trouble attaching your file to this case or if your file(s) are larger than 25mb, you can share your files via reply to author option or by performing the following steps:
1. Navigate to
2. Fill out all fields, and attach your file(s).
3. Please reply back on this thread when you have uploaded your file(s). Please do not share this link.
![]() |
IMA SDK Team |
[2025-04-28 15:29:42Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01qUpvj:ref" (ADR-00301504)
Hi,
Thank you for providing the requested information.
I will raise this concern to the wider team, and will intimate once receive any update on this, meanwhile your patience is important.
![]() |
IMA SDK Team |
[2025-04-29 13:29:55Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01qUpvj:ref" (ADR-00301504)
Hi Team,
I hope you’re doing well. Just a gentle reminder regarding my previous request about retrying ad requests after no fill or error in ima sdk (android, exoplayer).
Looking forward to your response.
![]() |
IMA SDK Team |
[2025-05-07 21:58:19Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01qUpvj:ref" (ADR-00301504)