googleads-mobile-android-mediation icon indicating copy to clipboard operation
googleads-mobile-android-mediation copied to clipboard

Bug: Unity and IronSource ads get a "Timeout" after 30 seconds when being initialized

Open AndroidDeveloperLB opened this issue 9 months ago • 2 comments

Similar to how the mediation here works for Vungle (reported here), which has let it to finish initialization in 30 seconds, now I see it for Unity ads too, with just "Timeout" being in the description when being printed:

val startTime = SystemClock.elapsedRealtime()
MobileAds.initialize(context, object : OnInitializationCompleteListener {
    @UiThread
    override fun onInitializationComplete(initializationStatus: InitializationStatus) {
        val timeTaken = SystemClock.elapsedRealtime() - startTime
        Log.d("AppLog", "MobileAds.initialize done. time taken:$timeTaken")
        val statusMap: MutableMap<String, AdapterStatus> = initializationStatus.adapterStatusMap
        for (entry in statusMap.entries) {
            val adapterClass = entry.key
            val status = entry.value
            Log.d("AppLog", "Adapter name: $adapterClass, Description: ${status.description}, Latency: ${status.latency}")
        }
    }
})

And I get this:

MobileAds.initialize done. time taken:30114
Adapter name: com.google.android.gms.ads.MobileAds, Description: , Latency: 7
Adapter name: com.google.ads.mediation.vungle.VungleMediationAdapter, Description: , Latency: 253
Adapter name: com.google.ads.mediation.chartboost.ChartboostMediationAdapter, Description: , Latency: 193
Adapter name: com.google.ads.mediation.ironsource.IronSourceMediationAdapter, Description: , Latency: 818
Adapter name: com.google.ads.mediation.applovin.AppLovinMediationAdapter, Description: , Latency: 1992
Adapter name: com.google.ads.mediation.unity.UnityMediationAdapter, Description: Timeout., Latency: 30002
Adapter name: com.google.ads.mediation.mintegral.MintegralMediationAdapter, Description: , Latency: 77
Adapter name: com.google.ads.mediation.inmobi.InMobiMediationAdapter, Description: , Latency: 287

This is what I use:

implementation("com.google.ads.mediation:inmobi:10.8.0.0")
implementation("com.google.ads.mediation:vungle:7.4.3.0")
implementation("com.google.ads.mediation:mintegral:16.8.61.0")
implementation("com.google.ads.mediation:chartboost:9.8.2.0")
implementation("com.google.ads.mediation:applovin:13.1.0.0")
implementation("com.google.ads.mediation:ironsource:8.6.1.0")
implementation("com.unity3d.ads:unity-ads:4.13.1")
implementation("com.google.ads.mediation:unity:4.13.1.0")

Such a thing ruins getting ads in general, not just from mediation...

What I suggest is:

  1. Before publishing a new version, test it
  2. Communicate with the ad-networks you support and tell them about issues, to solve together. Use some monitoring of every app, to check how long it takes for each one to initialize.
  3. Allow us to disable specific ad-networks in code, so that we could do it using remote-configs, for example.
  4. Allow us to have a timeout of our own for MobileAds.initialize , so that the mediation will use what was initialized so far, and ignore those that didn't finish yet. No reason that one issue of some ad-network would punish all the rest...

AndroidDeveloperLB avatar Feb 05 '25 21:02 AndroidDeveloperLB