---
title: AdMob
description: >-
  Set up the TapMind AdMob adapter for Capacitor 8+: install the packages,
  configure Gradle and App IDs, then verify test ads in debug builds.
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://resources.jamdesk.app/llms.txt). Append `.md` to any page URL for its markdown version.

## Prerequisites

*Performed by: Developer*

* See the [Compatibility Matrix](https://resources.jamdesk.app/reference/compatibility-matrix) for the minimum Android and iOS versions for this package.
* Requires Capacitor 8+ and `@capacitor-community/admob` ^8.1.0.


## Install the SDK

*Performed by: Developer*

### Android

Ensure your app's Gradle repositories include Google, Maven Central, and JitPack. On Gradle 7+, declare them in `settings.gradle` under `dependencyResolutionManagement` (see [Gradle Setup (Gradle 7+)](https://resources.jamdesk.app/guides/gradle-setup)). Example:

```
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}
```

Install the Capacitor plugin and AdMob community plugin:

```
npm install tapmind-ads-admob-capacitor @capacitor-community/admob
npx cap sync
```

Or with yarn:

```
yarn add tapmind-ads-admob-capacitor @capacitor-community/admob
npx cap sync
```

`@capacitor-community/admob` must be a direct app dependency so Capacitor can link its native Android/iOS code. `tapmind-ads-admob-capacitor` injects the TapMind adapter on top of that AdMob plugin.

### iOS

Install the same packages and sync:

```
npm install tapmind-ads-admob-capacitor @capacitor-community/admob
npx cap sync
```

Or with yarn:

```
yarn add tapmind-ads-admob-capacitor @capacitor-community/admob
npx cap sync
```

App ID Configuration:
Ensure the App ID used in the application matches the App ID configured for TapMind in the AdMob mediation/waterfall. Using a different App ID may prevent the TapMind SDK from initializing correctly.

* Android: set `com.google.android.gms.ads.APPLICATION_ID` in `AndroidManifest.xml`.
* iOS: set `GADApplicationIdentifier` in `Info.plist`.

## Configure AdMob

*Performed by: Ad ops*

Refer [AdMob Mediation Integration Setup](https://resources.jamdesk.app/reference/mediation-integration-setup/admob) for the integration.

Refer [Class & Network Key Registry](https://resources.jamdesk.app/reference/class-network-key-registry) for the classnames.

## Verify integration

*Performed by: Developer*

After install and dashboard configuration:

1. Run your app in a debug build. TapMind's test mode is enabled automatically in debug builds and serves test ads at a high fill rate.
2. Request an ad through your mediation SDK as you normally would (via `@capacitor-community/admob`).
3. Confirm a TapMind ad fills. Check logs for the tag `TapMindAdapter`.
4. When verified, build in release mode for production - test mode is disabled automatically in release builds, and live ads serve.

Note: Test mode is automatic. It follows your build type: debug = test ads, release = live ads. There is no flag to enable or disable, and nothing to turn off before going live.

Release build QA: There is currently no documented release-safe test path to validate R8/ProGuard without serving live ads. Consumer ProGuard rules from the TapMind AAR are applied automatically when you integrate the published adapter packages.

## Troubleshooting

*Performed by: Developer*

Before diving into logs, confirm adapter class names and the LevelPlay network key against the [Class & Network Key Registry](https://resources.jamdesk.app/reference/class-network-key-registry), placementName, placementcode and eCPM/rate with your account manager.

See [Troubleshooting](https://resources.jamdesk.app/reference/troubleshooting) for common symptoms, mediation-specific fixes, release vs debug guidance, and escalation steps. Partner-specific verification steps are under Verify integration above.

Note: Mediation dashboards may report higher request or attempt counts for TapMind's line than TapMind's backend actually receives. This is expected mediation-side counting behavior, not an integration issue, see [Dashboard vs. backend count discrepancies](https://resources.jamdesk.app/reference/troubleshooting#dashboard-vs-backend-count-discrepancies) in Troubleshooting for details.
