|
5 | 5 |
|
6 | 6 | AdManageKit is a comprehensive Android library designed to simplify the integration and management of Google AdMob ads, Google Play Billing, and User Messaging Platform (UMP) consent. |
7 | 7 |
|
8 | | -**Latest Version `3.4.2`** improves App Open ad reliability with `autoRetryFailedAds` support and late-loading ad preservation. |
| 8 | +**Latest Version `3.4.3`** fixes race conditions in App Open ad waterfall loading — duplicate loads, splash auto-navigation, and resume ad show blocking. |
9 | 9 |
|
10 | 10 | --- |
11 | 11 |
|
@@ -54,27 +54,23 @@ Your callback implementations work on both branches without changes. |
54 | 54 |
|
55 | 55 | | Use Case | Recommended | |
56 | 56 | |----------|-------------| |
57 | | -| Production apps (stable) | **Main branch** (v3.4.2) | |
| 57 | +| Production apps (stable) | **Main branch** (v3.4.3) | |
58 | 58 | | New projects wanting latest features | **Nextgen branch** (v4.1.1) | |
59 | 59 | | Testing preloader system | **Nextgen branch** | |
60 | 60 | | Risk-averse production | **Main branch** | |
61 | 61 |
|
62 | 62 | --- |
63 | 63 |
|
64 | | -## What's New in 3.4.2 |
| 64 | +## What's New in 3.4.3 |
65 | 65 |
|
66 | | -### App Open Ads: `autoRetryFailedAds` Support |
67 | | -App open ads now respect `AdManageKitConfig.autoRetryFailedAds`, matching interstitial, rewarded, and native ads. Failed loads are automatically retried via `AdRetryManager` with exponential backoff. |
| 66 | +### Duplicate Waterfall Load Prevention |
| 67 | +Concurrent waterfall loads from `onStart` preload and splash `fetchAd` are now deduplicated. The splash callback attaches to the in-progress fetch instead of starting a second one. |
68 | 68 |
|
69 | | -```kotlin |
70 | | -AdManageKitConfig.apply { |
71 | | - autoRetryFailedAds = true // Now respected by app open ads |
72 | | - maxRetryAttempts = 3 // Used instead of hardcoded value |
73 | | -} |
74 | | -``` |
| 69 | +### Splash Auto-Navigation Fix |
| 70 | +Orphaned timeouts no longer fire stale `onFailedToLoad` callbacks after the ad has already loaded — preventing the splash from navigating away while the ad is still displayed. |
75 | 71 |
|
76 | | -### Late-Loading Ad Preservation |
77 | | -App open ads that load after the timeout has fired are now cached for later use instead of being discarded. The next `showAdIfAvailable()` call will use the cached ad instantly. |
| 72 | +### Resume Ad Show After Auto-Reload |
| 73 | +`showAdIfAvailable()` no longer skips when a background auto-reload preload is running. App open ads now show correctly on resume after auto-reload. |
78 | 74 |
|
79 | 75 | For previous versions, see the [Changelog](CHANGELOG.md) or individual [release notes](docs/release-notes/). |
80 | 76 |
|
@@ -117,15 +113,15 @@ dependencyResolutionManagement { |
117 | 113 | <td> |
118 | 114 |
|
119 | 115 | ```groovy |
120 | | -implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit:v3.4.2' |
121 | | -implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-billing:v3.4.2' |
122 | | -implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-core:v3.4.2' |
| 116 | +implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit:v3.4.3' |
| 117 | +implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-billing:v3.4.3' |
| 118 | +implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-core:v3.4.3' |
123 | 119 |
|
124 | 120 | // For Jetpack Compose support |
125 | | -implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-compose:v3.4.2' |
| 121 | +implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-compose:v3.4.3' |
126 | 122 |
|
127 | 123 | // For Yandex Ads multi-provider support |
128 | | -implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-yandex:v3.4.2' |
| 124 | +implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-yandex:v3.4.3' |
129 | 125 | ``` |
130 | 126 |
|
131 | 127 | </td> |
@@ -253,7 +249,7 @@ Add Yandex (or other providers) as fallback ad networks with zero changes to you |
253 | 249 |
|
254 | 250 | ```groovy |
255 | 251 | // Add Yandex module |
256 | | -implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-yandex:v3.4.2' |
| 252 | +implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-yandex:v3.4.3' |
257 | 253 | ``` |
258 | 254 |
|
259 | 255 | ```kotlin |
@@ -603,6 +599,7 @@ AppPurchase.getInstance().changeSubscription( |
603 | 599 | - [Multi-Provider Waterfall](docs/MULTI_PROVIDER_WATERFALL.md) |
604 | 600 | - [Yandex Integration](docs/YANDEX_INTEGRATION.md) |
605 | 601 | - [Billing Integration Guide](docs/APP_PURCHASE_GUIDE.md) |
| 602 | +- [Release Notes v3.4.3](docs/release-notes/RELEASE_NOTES_v3.4.3.md) |
606 | 603 | - [Release Notes v3.4.2](docs/release-notes/RELEASE_NOTES_v3.4.2.md) |
607 | 604 | - [Release Notes v3.4.1](docs/release-notes/RELEASE_NOTES_v3.4.1.md) |
608 | 605 | - [Release Notes v3.4.0](docs/release-notes/RELEASE_NOTES_v3.4.0.md) |
|
0 commit comments