Releases: swaplab-engine/capacitor-admob-nextgen
Release list
v1.0.8
Full Changelog: v1.0.7...v1.0.8
- update: GMA Next-Gen SDK: 1.2.1
https://developers.google.com/admob/android/next-gen/rel-notes
v1.0.7
Full Changelog: v1.0.6...v1.0.7
- Update: (GMA) Next-Gen SDK: 1.2.0
https://developers.google.com/admob/android/next-gen/rel-notes
v1.0.6
v1.0.6-beta.4
v1.0.6-beta.3
v1.0.6-beta.2
Full Changelog: v1.0.6-beta.1...v1.0.6-beta.2
- Mediation Add SPM
ironSourceandLiftoff Monetize/Vungle
npm i capacitor-admob-nextgen@1.0.6-beta.2
npx cap sync

v1.0.6-beta.1
Full Changelog: v1.0.5...v1.0.6-beta.1
🤝 Third-Party Mediation (Opt-In Feature)
Integrating third-party ad networks (like Facebook/Meta, AppLovin, Unity, etc.) traditionally bloats your app size and introduces dependency conflicts.
To keep this plugin strictly lightweight, Mediation is completely OPT-IN. Plugin this built a Next-Gen dynamic injector that perfectly bridges Android's build.gradle and iOS's Package.swift (SPM) or Podfile (CocoaPods). The plugin supports 16 major ad networks, and they will only be installed if you explicitly configure them.
To enable Mediation, update your app's root package.json:
- Add the
"admobMediation"configuration block. - Control exact platform behaviors using the
"platforms"toggle (perfect for Capacitor 8+ SPM support). - Chain the
admob-mediation.jsscript to your existing hook.
{
"name": "your-app-name",
"admob": {
"androidAppId": "ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy",
"iosAppId": "ca-app-pub-xxxxxxxxxxxxxxxx~zzzzzzzzzz"
},
"admobMediation": {
"platforms": { "ios": true, "pod": false, "spm": true, "android": true },
"enableFacebook": true,
"enableAppLovin": true,
"enableUnity": false,
"enableVungle": false,
"keyAppLovin": "YOUR_APPLOVIN_SDK_KEY_HERE",
"enableIronSource": false,
"enableVungle": false,
"enableChartboost": false,
"enableDtExchange": false,
"enableImobile": false,
"enableInmobi": false,
"enableLine": false,
"enableMaio": false,
"enableMintegral": false,
"enableMoloco": false,
"enableMytarget": false,
"enablePangle": false,
"enablePubmatic": false
},
"scripts": {
"capacitor:sync:after": "node node_modules/capacitor-admob-nextgen/scripts/admob-manifest.js && node node_modules/capacitor-admob-nextgen/scripts/admob-mediation.js"
}
}💡 Transparency Note (Clean Sweep Architecture): If you disable a network (e.g., "enableUnity": false), the dynamic hook acts as a garbage collector. It will strictly perform a "clean sweep" using Regex, entirely ripping out that specific SDK from your build.gradle, .podspec, and Package.swift files during npx cap sync. Your project will never suffer from abandoned code leftovers.
🍎 Note: iOS (Capacitor 8+ & SPM)
Capacitor 8+ Recommendation: Swift Package Manager (SPM).
This plugin natively supports injecting Mediation dependencies directly into your Package.swift file (by setting "spm": true in your mediation config).
- If a dependency is missing, open the project in Xcode 26+.
- Click File at the top menu, and select Packages > Reset Package Caches. This will forcefully download all dependencies registered in your
Package.swift.
Legacy Support (CocoaPods):
Because the AdTech industry is still transitioning, some older third-party adapters might not fully support SPM yet. CocoaPods remains available as a fallback. If you need to use CocoaPods (by setting "pod": true and "spm": false), you must recreate your iOS folder:
-
Remove your existing SPM-based iOS folder:
rm -rf ios
-
Re-add the iOS platform using the CocoaPods flag:
npx cap add ios --packagemanager CocoaPods
-
Run
npx cap sync.
📖 Step-by-Step AdMob UI Setup
Enabling the adapters in your app is only half the process. You must also configure the mediation groups and eCPM details inside your Google AdMob Dashboard.
Follow the official Google AdMob step-by-step guides for the networks you enabled:
- AppLovin: Android | iOS > Support
pod | spm - Meta (Facebook): Android | iOS > Support
pod | spm - Unity Ads: Android | iOS > Support
pod | spm - ironSource Ads: Android | iOS > Support
pod | spm - Liftoff Monetize (Vungle): Android | iOS > Support
pod | spm - Chartboost: Android | iOS > Support
pod | spm - DT Exchange: Android | iOS > Support
pod | spm - i-mobile: Android | iOS > Support
pod | spm - InMobi: Android | iOS > Support
pod | spm - LINE Ads Network: Android | iOS > Support
pod | spm - maio: Android | iOS > Support
pod | spm - Mintegral: Android | iOS > Support
pod | spm - Moloco: Android | iOS > Support only
pod - myTarget: Android | iOS > Support only
pod - Pangle: Android | iOS > Support only
pod - PubMatic OpenWrap: Android | iOS > Support only
pod
v1.0.5
v1.0.5-beta.3
Full Changelog: v1.0.5-beta.2...v1.0.5-beta.3
Rewarded Video and Rewarded Interstitial: Add SMART CACHING (BYPASS NETWORK)
In the current code, when the second load call fails (for example, due to a sudden bad signal or Google running out of ads), the onAdFailedToLoad callback is executed, forcing rewardedAd = null;.
The result? The first ad, which had already loaded successfully, was neatly stored in memory, and ready to generate revenue, was simply destroyed. This is a complete loss!
- Smart Caching (leave the old ad alive so it can continue to be displayed!)
v1.0.5-beta.2
Full Changelog: v1.0.5-beta.1...v1.0.5-beta.2
InterstitialAd: Add SMART CACHING (BYPASS NETWORK)
In the current code, when the second load call fails (for example, due to a sudden bad signal or Google running out of ads), the onAdFailedToLoad callback is executed, forcing mInterstitialAd = null;.
The result? The first ad, which had already loaded successfully, was neatly stored in memory, and ready to generate revenue, was simply destroyed. This is a complete loss!
- Smart Caching (leave the old ad alive so it can continue to be displayed!)
