googleads-mobile-android-mediation
googleads-mobile-android-mediation copied to clipboard
Bug: Unity and IronSource ads get a "Timeout" after 30 seconds when being initialized
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:
- Before publishing a new version, test it
- 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.
- Allow us to disable specific ad-networks in code, so that we could do it using remote-configs, for example.
- 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...