---
title: AdMob
description: >-
  AdMob Android guide for Custom Adapter (GMA Next-Gen SDK).
---

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

## Prerequisites

*Performed by: Developer*

**App prerequisites**

* minSdkVersion of **23** or higher
* compileSdkVersion of 36 or higher
* The Google Mobile Ads (GMA) SDK must be integrated in your app (next-generation GMA API)
* An ad unit must already be in place which will be used for targeting

**Note:** **Custom Adapter (GMA Next-Gen SDK)** covers **AdMob** and **Google Ad Manager** on **Android only**. Use the standard Custom Adapter (GMA SDK) for other mediations and platforms.

## Install the SDK

*Performed by: Developer*

Ensure your `android/build.gradle` (project-level) includes the required repositories:

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

**Note:** On Gradle 7+, use [Gradle Setup (Gradle 7+)](/gradle-setup/for-gradle-version-7-plus) instead - declare repositories in `settings.gradle` under `dependencyResolutionManagement` and remove the `allprojects` block. Use one approach, not both.

Open the `build.gradle` (Module: app) file and add:

```
dependencies {
    implementation("io.github.tapmind-tech:customadapter-admob-nextgen:2.0.1")
    implementation("com.google.android.gms:play-services-ads:25.0.0")
}
```

## Configure your app

*Performed by: Developer*

Add your AdMob app ID to `AndroidManifest.xml`. Omitting this crashes the app on launch with `Missing application ID`.

```
<manifest>
  <application>
    <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="YOUR_ADMOB_APP_ID"/>
  </application>
</manifest>
```

Replace `YOUR_ADMOB_APP_ID` with your AdMob app ID from the [AdMob web interface](https://support.google.com/admob/answer/7356431). While testing, you may use Google's sample app ID shown above.

## Configure AdMob

*Performed by: Ad ops*

**Create the custom event (waterfall):** Mediation → Create mediation group → select **Android** and ad format → name it (provided by your account manager) → Add ad units → select your app and ad units.

**Add the ad source:** Waterfall source → Set up ad source → Custom event → select your app/platform → select the ad unit, then enter:

```
Mapping name : provided by your account manager
eCPM         : provided by your account manager
Class        : com.tapmind.mediation.ng.TapMindAdmobAdapter
Parameter    : {"placementName": "provided by your account manager"}
```

> The **placementName** value is case-sensitive and must exactly match the Placement Name configured in the TapMind Dashboard.

**Note:** Official Google documentation: [Create a custom event](https://support.google.com/admob/answer/13407144)

## 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.
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](/reference/class-network-key-registry), and `placementName` and eCPM/rate with your account manager.

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