Request: for MobileAds.initialize , add a callback of initialization for each of the adapters, and let us choose when to start loading ads

73 views
Skip to first unread message

Liran Barsisa

unread,
Feb 19, 2025, 4:14:29 AM2/19/25
to Google Mobile Ads SDK Developers
Not all ad-networks adapters are running at the same speed. 
Some finish in less than one second for most of the time, and some often take much longer.
Not only that, but each of them supports a different set of ads.

So, for example, we end up with a situation that even though the first type of ads that are shown are native and/or banner ads, we also need to load those that would be used for full screen ads (rewarded, interstitial, rewarded interstitial,...) and won't be used in the near future (or at all).

Please offer a way to load ads even when not all of the adapters were initialized, and give us the control in MobileAds.initialize, by telling us exactly which adapters finished initialization, each time one of them finished.

Example scenario: We use Admob for native ads, and AppLovin for rewarded ads (Applovin doesn't support native ads), and we need to show native ads as soon as possible. 
Applovin usually takes more time than Admob to initialize, so it doesn't make sense that we would wait for it to initialize before starting to load native ads.
The way my suggestion works would be that MobileAds.initialize would call the callback once for Admob as it got initialized first, and later with Applovin. 
On the first time we could decide that as Admob was initialized, we should be able to start loading ads from which ad-networks were initialized so far (Admob so far), thus minimizing the time for loading ads and not losing anything on the way.
 
This will give us a better chance to load ads quickly, with minimal damage on actual loading of ads due to various reasons that I've explained above.

Mobile Ads SDK Forum Advisor

unread,
Feb 19, 2025, 11:41:44 AM2/19/25
to lbl...@gmail.com, google-adm...@googlegroups.com
Hi Liran,

Thank you for contacting Mobile Ads SDK support team.

I clearly understand about your concern which is related to mediation adapter initialize status. I would suggest to use completion handler (iOS, Android) and wait until the completion handler is called before loading ads to ensure that all mediation adapters are initialized.

FYI below iOS code which is having 3 mediation adapter and 1 of them was unable to initialized.
          MobileAds.shared.start(completionHandler: { adapterInitializationStatus in
          let adapterArr = adapterInitializationStatus.adapterStatusesByClassName
               for adapterObj in adapterArr {
                    let adapterStatus = adapterObj.value.state.rawValue
                    if (adapterStatus != 0) {
                        print("\(adapterObj.key)" + " Initialized")
                    } else {
                        print("\(adapterObj.key)" + " Not Initialized")
                    }
                }
            })
Output:
GADMobileAds Initialized
GADMediationAdapterFacebook Not Initialized
GADMediationAdapterUnity Initialized
Kindly reach out to us again if you face any other issue related to Mobile Ads SDK.

Thanks,
 
Google Logo Mobile Ads SDK Team

Feedback
How was our support today?

rating1    rating2    rating3    rating4    rating5
[2025-02-19 16:40:36Z GMT] This message is in relation to case "ref:!00D1U01174p.!5004Q02vH2Ww:ref" (ADR-00288799)



Liran Barsisa

unread,
Feb 19, 2025, 12:48:30 PM2/19/25
to Google Mobile Ads SDK Developers
That's actually the issue I've presented, that this callback is called after ALL ad-networks adapters have finished.
What I requested is a progress-based callback, meaning each time one finishes, the callback is called.
I wrote that I don't always want to wait for all of them to finish initialization, and you wrote the opposite, as if I do want to wait for all of them.

I've also provided an example:
What's the point in waiting for an adapter that is used only for rewarded ads, if I want to load a native ad as soon as possible?

The only thing I can do for now is just guess when some adapters finished initialization (for example after 2 seconds), and start loading ads then. 
I have no idea if it really loads from all initialized adapters though (maybe it uses only Admob, always?), but I do know this workaround works. 

Please read again what I wrote, and see that what I've requested makes sense, and it doesn't exist yet.

Mobile Ads SDK Forum Advisor

unread,
Feb 19, 2025, 4:21:58 PM2/19/25
to lbl...@gmail.com, google-adm...@googlegroups.com

Hi Liran,

It looks like intended behavior only. But I will raise this concern to the wider team to check the feasibility.

Thanks,
 
Google Logo Mobile Ads SDK Team

Feedback
How was our support today?

rating1    rating2    rating3    rating4    rating5

[2025-02-19 21:20:57Z GMT] This message is in relation to case "ref:!00D1U01174p.!5004Q02vH2Ww:ref" (ADR-00288799)



Liran Barsisa

unread,
Feb 19, 2025, 4:32:41 PM2/19/25
to Google Mobile Ads SDK Developers
What do you mean by "intended behavior only" ?
It's a bad behavior.
Together with the fact that I've noticed that some ad-networks cause the MobileAds.initialize to last for 30 seconds (and not even so rare either), it's a terrible approach to wait this long just for a native ad.
Look at the stats I've collected recently:

  1. Admob : average is 1.8 seconds. About 23% take more than 2 seconds.

  2. IronSource: average is 2.5 seconds. About 35% take more than 2 seconds.

  3. Unity: average is 6.7 seconds. About 81% take more than 2 seconds.

  4. Vungle/Liftoff: average is 3.6 seconds. About 16% take more than 2 seconds.

  5. Applovin: average is 7 seconds. About 89% take more than 2 seconds.

  6. Chartboost: average is 1.6 seconds. About 19% take more than 2 seconds.

  7. Inmobi: average is 1.1 seconds. About 14% take more than 2 seconds.

  8. Mintegral: average is 0.4 seconds. About 3% take more than 2 seconds.

As for general statistics, I’ve found out that:
1. About 94% of the times, it takes 2 or more seconds in total to finish “MobileAds.initialize”.
2. About 46% of the times, it takes 10 or more seconds in total to finish “MobileAds.initialize”.
3. About 16% of the times, it takes 30 or more seconds in total to finish “MobileAds.initialize”.

This is terrible!
By the time it finishes loading, the user might have left the app...

Reply all
Reply to author
Forward
0 new messages