admanagekit-mcp-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/content/README.md +851 -0
  2. package/content/docs/AD_FREQUENCY_CONTROL.md +450 -0
  3. package/content/docs/AD_LOADING_STRATEGIES.md +369 -0
  4. package/content/docs/API_REFERENCE.md +734 -0
  5. package/content/docs/APP_PURCHASE_GUIDE.md +704 -0
  6. package/content/docs/BANNER_AD_IMPROVEMENTS.md +325 -0
  7. package/content/docs/COMPOSE_INTEGRATION.md +477 -0
  8. package/content/docs/CONFIGURATION_USAGE.md +168 -0
  9. package/content/docs/INTERSTITIAL_BUILDER_GUIDE.md +518 -0
  10. package/content/docs/JAVA_USAGE_GUIDE.md +785 -0
  11. package/content/docs/LOADING_STRATEGY_EXAMPLES.md +463 -0
  12. package/content/docs/NATIVE_AD_MANAGER_ENHANCEMENTS.md +347 -0
  13. package/content/docs/NATIVE_AD_PRELOADING.md +467 -0
  14. package/content/docs/NATIVE_TEMPLATE_VIEW.md +413 -0
  15. package/content/docs/app-open-ads.md +412 -0
  16. package/content/docs/interstitial-ads.md +269 -0
  17. package/content/docs/native-ads-caching.md +182 -0
  18. package/content/docs/release-notes/RELEASE_NOTES_v2.1.0.md +156 -0
  19. package/content/docs/release-notes/RELEASE_NOTES_v2.2.0.md +248 -0
  20. package/content/docs/release-notes/RELEASE_NOTES_v2.3.0.md +280 -0
  21. package/content/docs/release-notes/RELEASE_NOTES_v2.5.0.md +73 -0
  22. package/content/docs/release-notes/RELEASE_NOTES_v2.6.0.md +265 -0
  23. package/content/docs/release-notes/RELEASE_NOTES_v2.7.0.md +168 -0
  24. package/content/docs/release-notes/RELEASE_NOTES_v2.8.0.md +153 -0
  25. package/content/docs/release-notes/RELEASE_NOTES_v2.9.0.md +479 -0
  26. package/content/docs/release-notes/RELEASE_NOTES_v3.0.0.md +343 -0
  27. package/content/docs/release-notes/RELEASE_NOTES_v3.1.0.md +131 -0
  28. package/content/docs/release-notes/RELEASE_NOTES_v3.3.0.md +252 -0
  29. package/content/docs/release-notes/RELEASE_NOTES_v3.3.2.md +215 -0
  30. package/content/docs/release-notes/RELEASE_NOTES_v3.3.3.md +116 -0
  31. package/content/docs/release-notes/RELEASE_NOTES_v3.3.4.md +142 -0
  32. package/content/docs/release-notes/RELEASE_NOTES_v3.3.5.md +94 -0
  33. package/content/docs/rewarded-ads.md +623 -0
  34. package/content/wiki/Ad-Loading-Strategies.md +209 -0
  35. package/content/wiki/App-Open-Ads.md +189 -0
  36. package/content/wiki/Banner-Ads.md +133 -0
  37. package/content/wiki/Billing-Integration.md +69 -0
  38. package/content/wiki/Configuration.md +252 -0
  39. package/content/wiki/Consumable-Products.md +166 -0
  40. package/content/wiki/Home.md +144 -0
  41. package/content/wiki/Interstitial-Ads.md +313 -0
  42. package/content/wiki/Jetpack-Compose.md +270 -0
  43. package/content/wiki/NativeAdManager.md +220 -0
  44. package/content/wiki/Purchase-Categories.md +94 -0
  45. package/content/wiki/Rewarded-Ads.md +420 -0
  46. package/content/wiki/Subscription-Upgrades.md +278 -0
  47. package/content/wiki/Subscriptions.md +368 -0
  48. package/content/wiki/_Footer.md +3 -0
  49. package/content/wiki/_Sidebar.md +18 -0
  50. package/dist/index.d.ts +2 -0
  51. package/dist/index.js +6 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/server.d.ts +1 -0
  54. package/dist/server.js +18 -0
  55. package/dist/server.js.map +1 -0
  56. package/dist/tools/code-generation.d.ts +2 -0
  57. package/dist/tools/code-generation.js +264 -0
  58. package/dist/tools/code-generation.js.map +1 -0
  59. package/dist/tools/documentation.d.ts +2 -0
  60. package/dist/tools/documentation.js +202 -0
  61. package/dist/tools/documentation.js.map +1 -0
  62. package/dist/types.d.ts +18 -0
  63. package/dist/types.js +83 -0
  64. package/dist/types.js.map +1 -0
  65. package/dist/utils/doc-loader.d.ts +17 -0
  66. package/dist/utils/doc-loader.js +245 -0
  67. package/dist/utils/doc-loader.js.map +1 -0
  68. package/dist/utils/search.d.ts +2 -0
  69. package/dist/utils/search.js +62 -0
  70. package/dist/utils/search.js.map +1 -0
  71. package/dist/utils/templates.d.ts +60 -0
  72. package/dist/utils/templates.js +793 -0
  73. package/dist/utils/templates.js.map +1 -0
  74. package/package.json +51 -0
@@ -0,0 +1,168 @@
1
+ # Release Notes - v2.7.0
2
+
3
+ ## Highlights
4
+
5
+ - **Smart Splash Screen Support**: New `waitForLoading()` for optimal splash ad experience
6
+ - **Fixed HYBRID/ONLY_CACHE Strategies**: Now properly use cached ads
7
+ - **Premium User Optimization**: Skip ad requests for premium users
8
+
9
+ ---
10
+
11
+ ## New Features
12
+
13
+ ### 1. Smart Splash Screen Pattern
14
+
15
+ New `waitForLoading()` method in `InterstitialAdBuilder` for intelligent splash screen ad handling:
16
+
17
+ ```kotlin
18
+ // In Application.onCreate() - Start loading early
19
+ AdManager.getInstance().loadInterstitialAd(this, adUnitId)
20
+
21
+ // In SplashActivity - Smart wait behavior
22
+ InterstitialAdBuilder.with(this)
23
+ .adUnit(adUnitId)
24
+ .waitForLoading() // Smart: shows cached, waits for loading, or force fetches
25
+ .timeout(5000) // 5 second max wait
26
+ .show { startMainActivity() }
27
+ ```
28
+
29
+ **Behavior:**
30
+ | Ad State | Action |
31
+ |----------|--------|
32
+ | **READY** | Shows immediately (no waiting) |
33
+ | **LOADING** | Waits with timeout, shows when ready |
34
+ | **NOT STARTED** | Force fetches with loading dialog |
35
+
36
+ ### 2. New AdManager Methods
37
+
38
+ ```kotlin
39
+ // Check if ad is currently being loaded
40
+ AdManager.getInstance().isLoading(): Boolean
41
+
42
+ // Smart show for splash screens (used by waitForLoading())
43
+ AdManager.getInstance().showOrWaitForAd(
44
+ activity,
45
+ callback,
46
+ timeoutMillis = 5000,
47
+ showDialogIfLoading = true
48
+ )
49
+ ```
50
+
51
+ ### 3. Enhanced Frequency Controls
52
+
53
+ New methods in `InterstitialAdBuilder`:
54
+
55
+ ```kotlin
56
+ InterstitialAdBuilder.with(activity)
57
+ .adUnit(adUnitId)
58
+ .everyNthTime(3) // Show every 3rd call
59
+ .maxShows(5) // Maximum 5 shows total
60
+ .minIntervalSeconds(30) // Minimum 30 seconds between shows
61
+ .timeout(5000) // 5 second load timeout
62
+ .show { next() }
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Bug Fixes
68
+
69
+ ### 1. HYBRID/ONLY_CACHE Strategy Fix
70
+
71
+ **Before (Bug):** When ad was cached, HYBRID and ONLY_CACHE strategies incorrectly called `forceShowInterstitial()` which cleared the cache and fetched fresh.
72
+
73
+ **After (Fixed):** Now uses `showInterstitialIfReady()` to properly show cached ads.
74
+
75
+ ```kotlin
76
+ // HYBRID now correctly:
77
+ // - If ready → shows CACHED ad (not fresh fetch)
78
+ // - If not ready → fetches fresh with dialog
79
+
80
+ // ONLY_CACHE now correctly:
81
+ // - If ready → shows CACHED ad
82
+ // - If not ready → skips (no fetch)
83
+ ```
84
+
85
+ ### 2. Premium User Optimization
86
+
87
+ **Before:** `loadInterstitialAd()` made network requests even for premium users.
88
+
89
+ **After:** Skips ad loading entirely for premium users, saving bandwidth.
90
+
91
+ ```kotlin
92
+ fun loadInterstitialAd(context: Context, adUnitId: String) {
93
+ // Skip loading for premium users - no need to request ads
94
+ val purchaseProvider = BillingConfig.getPurchaseProvider()
95
+ if (purchaseProvider.isPurchased()) {
96
+ return // No network request made
97
+ }
98
+ // ... load ad
99
+ }
100
+ ```
101
+
102
+ ---
103
+
104
+ ## API Changes
105
+
106
+ ### InterstitialAdBuilder - New Methods
107
+
108
+ | Method | Description |
109
+ |--------|-------------|
110
+ | `.waitForLoading()` | Smart splash screen behavior |
111
+ | `.everyNthTime(n)` | Show every Nth call |
112
+ | `.minInterval(ms)` | Minimum ms between shows |
113
+ | `.minIntervalSeconds(s)` | Minimum seconds between shows |
114
+ | `.timeout(ms)` | Set load timeout in ms |
115
+ | `.timeoutSeconds(s)` | Set load timeout in seconds |
116
+
117
+ ### AdManager - New Methods
118
+
119
+ | Method | Description |
120
+ |--------|-------------|
121
+ | `isLoading()` | Check if ad is currently loading |
122
+ | `showOrWaitForAd()` | Smart show with wait-for-loading support |
123
+
124
+ ---
125
+
126
+ ## Migration Guide
127
+
128
+ ### From 2.6.0 to 2.7.0
129
+
130
+ **Fully backward compatible.** Optionally adopt new features:
131
+
132
+ ```kotlin
133
+ // Old splash pattern (still works)
134
+ AdManager.getInstance().loadInterstitialAdForSplash(this, adUnitId, 10000, callback)
135
+
136
+ // New recommended pattern
137
+ AdManager.getInstance().loadInterstitialAd(this, adUnitId) // In Application
138
+ InterstitialAdBuilder.with(this)
139
+ .adUnit(adUnitId)
140
+ .waitForLoading()
141
+ .timeout(5000)
142
+ .show { startMainActivity() }
143
+ ```
144
+
145
+ ---
146
+
147
+ ## Installation
148
+
149
+ ```groovy
150
+ implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit:v2.7.0'
151
+ implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-billing:v2.7.0'
152
+ implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-core:v2.7.0'
153
+ implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-compose:v2.7.0'
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Full Changelog
159
+
160
+ - Added `waitForLoading()` to InterstitialAdBuilder for smart splash screen support
161
+ - Added `showOrWaitForAd()` to AdManager for intelligent ad display
162
+ - Added `isLoading()` to AdManager to check loading state
163
+ - Added frequency control methods: `everyNthTime()`, `minInterval()`, `minIntervalSeconds()`
164
+ - Added timeout methods: `timeout()`, `timeoutSeconds()`
165
+ - Fixed HYBRID strategy to use cached ads instead of fetching fresh
166
+ - Fixed ONLY_CACHE strategy to use cached ads instead of fetching fresh
167
+ - Optimized `loadInterstitialAd()` to skip loading for premium users
168
+ - Updated documentation with splash screen patterns
@@ -0,0 +1,153 @@
1
+ # Release Notes - v2.8.0
2
+
3
+ ## Highlights
4
+
5
+ - **Loading Strategy for AdManager**: `forceShowInterstitial()` now respects global loading strategy
6
+ - **Global Auto-Reload Config**: New `interstitialAutoReload` setting with per-call override
7
+ - **Code Cleanup**: Removed unused `respectInterval` from InterstitialAdBuilder
8
+
9
+ ---
10
+
11
+ ## New Features
12
+
13
+ ### 1. Loading Strategy Support in AdManager
14
+
15
+ `forceShowInterstitial()` and `forceShowInterstitialWithDialog()` now respect `AdManageKitConfig.interstitialLoadingStrategy`:
16
+
17
+ ```kotlin
18
+ // Configure globally
19
+ AdManageKitConfig.interstitialLoadingStrategy = AdLoadingStrategy.HYBRID
20
+
21
+ // Old method now respects strategy!
22
+ AdManager.getInstance().forceShowInterstitial(activity, callback)
23
+ ```
24
+
25
+ **Behavior based on strategy:**
26
+
27
+ | Strategy | Behavior |
28
+ |----------|----------|
29
+ | ON_DEMAND | Always fetch fresh ad with dialog |
30
+ | ONLY_CACHE | Show cached if ready, skip otherwise |
31
+ | HYBRID | Show cached if ready, fetch fresh otherwise |
32
+
33
+ ### 2. New `forceShowInterstitialAlways()` Method
34
+
35
+ For cases where you need to bypass the strategy and always force fetch:
36
+
37
+ ```kotlin
38
+ // Always forces fresh fetch (ignores global strategy)
39
+ AdManager.getInstance().forceShowInterstitialAlways(activity, callback)
40
+ ```
41
+
42
+ This is used internally by `InterstitialAdBuilder` when explicit force behavior is needed.
43
+
44
+ ### 3. Global Auto-Reload Configuration
45
+
46
+ New `interstitialAutoReload` setting in `AdManageKitConfig`:
47
+
48
+ ```kotlin
49
+ // Global config - applies to all AdManager methods
50
+ AdManageKitConfig.interstitialAutoReload = false // Disable auto-reload globally
51
+
52
+ // Per-call override via InterstitialAdBuilder
53
+ InterstitialAdBuilder.with(activity)
54
+ .adUnit(adUnitId)
55
+ .autoReload(true) // Override global setting for this call
56
+ .show { next() }
57
+
58
+ // Per-call override via AdManager
59
+ AdManager.getInstance().showInterstitialIfReady(activity, callback, reloadAd = false)
60
+ ```
61
+
62
+ **Priority:** `InterstitialAdBuilder.autoReload()` > `AdManageKitConfig.interstitialAutoReload`
63
+
64
+ ---
65
+
66
+ ## Code Cleanup
67
+
68
+ ### Removed Unused `respectInterval`
69
+
70
+ The `respectInterval` property and method in `InterstitialAdBuilder` were never used and have been removed. Use `minInterval()` instead for interval control:
71
+
72
+ ```kotlin
73
+ InterstitialAdBuilder.with(activity)
74
+ .adUnit(adUnitId)
75
+ .minIntervalSeconds(30) // Minimum 30 seconds between shows
76
+ .show { next() }
77
+ ```
78
+
79
+ ---
80
+
81
+ ## API Changes
82
+
83
+ ### AdManager - Updated Methods
84
+
85
+ | Method | Change |
86
+ |--------|--------|
87
+ | `forceShowInterstitial()` | Now respects `interstitialLoadingStrategy` |
88
+ | `forceShowInterstitialWithDialog()` | Now respects `interstitialLoadingStrategy` |
89
+ | `showInterstitialIfReady()` | Default `reloadAd` now uses global config |
90
+ | `showInterstitialAdByTime()` | Now uses global `interstitialAutoReload` |
91
+ | `showInterstitialAdByCount()` | Now uses global `interstitialAutoReload` |
92
+
93
+ ### AdManager - New Methods
94
+
95
+ | Method | Description |
96
+ |--------|-------------|
97
+ | `forceShowInterstitialAlways()` | Always force fetch (bypasses strategy) |
98
+
99
+ ### AdManageKitConfig - New Settings
100
+
101
+ | Setting | Description | Default |
102
+ |---------|-------------|---------|
103
+ | `interstitialAutoReload` | Auto-reload interstitial after showing | `true` |
104
+
105
+ ### InterstitialAdBuilder - Removed
106
+
107
+ | Method | Reason |
108
+ |--------|--------|
109
+ | `respectInterval()` | Never used, use `minInterval()` instead |
110
+
111
+ ---
112
+
113
+ ## Migration Guide
114
+
115
+ ### From 2.7.0 to 2.8.0
116
+
117
+ **Fully backward compatible** with one behavioral change:
118
+
119
+ **`forceShowInterstitial()` behavior change:**
120
+ - **Before (2.7.0):** Always fetched fresh ad
121
+ - **After (2.8.0):** Respects `interstitialLoadingStrategy`
122
+
123
+ If you need the old behavior (always force fetch):
124
+ ```kotlin
125
+ // Option 1: Set strategy to ON_DEMAND
126
+ AdManageKitConfig.interstitialLoadingStrategy = AdLoadingStrategy.ON_DEMAND
127
+
128
+ // Option 2: Use the new always-force method
129
+ AdManager.getInstance().forceShowInterstitialAlways(activity, callback)
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Installation
135
+
136
+ ```groovy
137
+ implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit:v2.8.0'
138
+ implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-billing:v2.8.0'
139
+ implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-core:v2.8.0'
140
+ implementation 'com.github.i2hammad.AdManageKit:ad-manage-kit-compose:v2.8.0'
141
+ ```
142
+
143
+ ---
144
+
145
+ ## Full Changelog
146
+
147
+ - `forceShowInterstitial()` now respects `AdManageKitConfig.interstitialLoadingStrategy`
148
+ - `forceShowInterstitialWithDialog()` now respects loading strategy
149
+ - Added `forceShowInterstitialAlways()` for explicit force fetch behavior
150
+ - Added `interstitialAutoReload` to AdManageKitConfig for global auto-reload control
151
+ - Updated AdManager methods to use global `interstitialAutoReload` as default
152
+ - Removed unused `respectInterval` property and method from InterstitialAdBuilder
153
+ - InterstitialAdBuilder now uses `forceShowInterstitialAlways()` for explicit force behavior