Skip to content

Releases: swaplab-engine/capacitor-admob-nextgen

v1.0.8

Choose a tag to compare

@EMI-INDO EMI-INDO released this 18 Jun 14:48

v1.0.7

Choose a tag to compare

@EMI-INDO EMI-INDO released this 13 Jun 19:31

Full Changelog: v1.0.6...v1.0.7

v1.0.6

Choose a tag to compare

@EMI-INDO EMI-INDO released this 12 Jun 16:11

Full Changelog: v1.0.5...v1.0.6

v1.0.6-beta.4

v1.0.6-beta.4 Pre-release
Pre-release

Choose a tag to compare

@EMI-INDO EMI-INDO released this 11 Jun 16:57

Full Changelog: v1.0.6-beta.3...v1.0.6-beta.4

  • Mediation Add SPM InMobi/Line/Maio/Mintegral

v1.0.6-beta.3

v1.0.6-beta.3 Pre-release
Pre-release

Choose a tag to compare

@EMI-INDO EMI-INDO released this 10 Jun 16:10

Full Changelog: v1.0.6-beta.2...v1.0.6-beta.3

  • Mediation Add SPM Chartboost/DtExchange/Imobile
SPM-mediation-1 0 6-beta 3

v1.0.6-beta.2

v1.0.6-beta.2 Pre-release
Pre-release

Choose a tag to compare

@EMI-INDO EMI-INDO released this 09 Jun 17:15

Full Changelog: v1.0.6-beta.1...v1.0.6-beta.2

  • Mediation Add SPM ironSource and Liftoff Monetize/Vungle
npm i capacitor-admob-nextgen@1.0.6-beta.2
npx cap sync
SPM-mediation-1 0 6-beta 2

v1.0.6-beta.1

v1.0.6-beta.1 Pre-release
Pre-release

Choose a tag to compare

@EMI-INDO EMI-INDO released this 08 Jun 16:48

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:

  1. Add the "admobMediation" configuration block.
  2. Control exact platform behaviors using the "platforms" toggle (perfect for Capacitor 8+ SPM support).
  3. Chain the admob-mediation.js script 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:

  1. Remove your existing SPM-based iOS folder:

    rm -rf ios
  2. Re-add the iOS platform using the CocoaPods flag:

    npx cap add ios --packagemanager CocoaPods
  3. 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:

v1.0.5

Choose a tag to compare

@EMI-INDO EMI-INDO released this 07 Jun 17:00

Full Changelog: v1.0.4...v1.0.5

v1.0.5-beta.3

v1.0.5-beta.3 Pre-release
Pre-release

Choose a tag to compare

@EMI-INDO EMI-INDO released this 07 Jun 16:14

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

v1.0.5-beta.2 Pre-release
Pre-release

Choose a tag to compare

@EMI-INDO EMI-INDO released this 06 Jun 17:08

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!)