Select platform: [Android (beta)
![New-selected](https://developers.google.com/static/admob/images/new-selected.svg)](https://developers.google.com/admob/android/next-gen/mediation/imobile "View this page for the Android (beta) platform docs.") [Android](https://developers.google.com/admob/android/mediation/imobile "View this page for the Android platform docs.") [iOS](https://developers.google.com/admob/ios/mediation/imobile "View this page for the iOS platform docs.") [Unity](https://developers.google.com/admob/unity/mediation/imobile "View this page for the Unity platform docs.") [Flutter](https://developers.google.com/admob/flutter/mediation/imobile "View this page for the Flutter platform docs.")

<br />

This guide shows you how to use GMA Next-Gen SDK to load and display
ads from i-mobile using [AdMob Mediation](https://developers.google.com/admob/android/next-gen/mediation),
covering waterfall integrations. It covers how to add i-mobile to an ad unit's
mediation configuration, and how to integrate the i-mobile SDK and adapter into
an Android app.

The dashboard interface for i-mobile uses Japanese text for its labels,
buttons, and descriptions. The screenshots in this guide have not been
translated. In this guide's descriptions and instructions however, labels and
buttons are translated with their English language equivalents in parentheses.

## Supported integrations and ad formats

The mediation adapter for i-mobile has the following capabilities:

| Integration ||
|---|---|
| Bidding |   |
| Waterfall |   |
| Banner |   |
| Interstitial |   |
| Rewarded |   |
| Native |   |

## Requirements

- Android API level 24 or higher

<!-- -->

- Latest GMA Next-Gen SDK

- Complete the mediation
  [Get started guide](https://developers.google.com/admob/android/next-gen/mediation)

## Step 1: Set up configurations in i-mobile UI

[Sign up](https://www2.i-mobile.co.jp/pre_register_partner.aspx) or [log
in](https://sppartner.i-mobile.co.jp/login.aspx) to your i-mobile account.

Add your app to the i-mobile dashboard by clicking the
**サイト／アプリ管理 (Site/Application Management)** tab and the button for your
app's platform.
![](https://developers.google.com/static/admob/images/mediation/imobile/select_platform_Android.png)

Fill out the form and click the **新規登録 (Sign up)** button.
![](https://developers.google.com/static/admob/images/mediation/imobile/add_app_name_Android.png) **Note:** i-mobile has to approve your registration. Once you are approved, you can create an **Advertising Spot**.

To create a new Advertising Spot, select your app under the
**サイト／アプリ管理 (Site/Application Management)** tab.
![](https://developers.google.com/static/admob/images/mediation/imobile/app_list_Android.png)

Navigate to the **広告スポット管理 (Ad Spot Management)** tab and click the
**新規広告スポット (New Ad Spot)** button.

![create_ad_spot](https://developers.google.com/static/admob/images/mediation/imobile/create_ad_spot.png)

Next, fill out the form by providing the **広告スポット名 (Ad Spot name)** ,
**広告スポットサイズ (Ad Spot size)** and other details. Then, click the
**新規登録 (Sign up)** button.

![new_ad_spot_form](https://developers.google.com/static/admob/images/mediation/imobile/new_ad_spot_form.png)

Your new **Ad spot** is ready. To view its integration details, click the
**アプリ設定取得 (Get App settings)** button.

![ad_spot_list](https://developers.google.com/static/admob/images/mediation/imobile/ad_spot_list.png)

Take note of the **パブリッシャーID (Publisher ID)** , **メディアID (Media ID)** ,
and **スポットID (Spot ID)**. You'll need these parameters later when configuring
i-mobile for mediation in the AdMob UI.
![](https://developers.google.com/static/admob/images/mediation/imobile/ad_spot_details_Android.png)

### Update your app-ads.txt


[Authorized Sellers for Apps app-ads.txt](https://iabtechlab.com/wp-content/uploads/2019/03/app-ads.txt-v1.0-final-.pdf) is an IAB Tech Lab initiative that helps ensure your
app ad inventory is only sold through channels you've identified as authorized. To prevent a
significant loss in ad revenue, you'll need to implement an `app-ads.txt` file.

If you haven't done so already,

[set up an app-ads.txt file for your app](https://support.google.com/admob/answer/9363762).

To implement `app-ads.txt` for i-mobile, see their
[Frequently Asked Questions](https://www.i-mobile.co.jp/help_partner_sp.html#3-10).

## Step 2: Set up i-mobile demand in AdMob UI

### Configure mediation settings for your ad unit

You need to add i-mobile to the
mediation configuration for your ad unit.

First, sign in to your [AdMob account](https://apps.admob.com/). Next, navigate to the
**Mediation** tab. If you have an existing mediation group you'd like to modify,
click the name of that mediation group to edit it, and skip ahead to
[Add i-mobile as an ad source](https://developers.google.com/admob/android/next-gen/mediation/imobile#add-ad-source).

To create a new mediation group, select **Create Mediation Group**.

![](https://developers.google.com/static/admob/images/mediation/admob-mediation-group-create.png)

Enter your ad format and platform, then click **Continue**.

![](https://developers.google.com/static/admob/images/mediation/admob-mediation-group-new-Android.png)

Give your mediation group a name, and select locations to target. Next, set the
mediation group status to **Enabled** , and then click **Add Ad Units**.

![](https://developers.google.com/static/admob/images/mediation/admob-mediation-group-details-Android.png)

Associate this mediation group with one or more of your existing
AdMob ad units. Then click **Done**.

![](https://developers.google.com/static/admob/images/mediation/admob-ad-units-select-Android.png)

You should now see the ad units card populated with the ad units you selected:

![](https://developers.google.com/static/admob/images/mediation/admob-ad-units-card-Android.png)

#### Add i-mobile as an ad source

<br />

Under the **Waterfall** card in the **Ad Sources** section, select **Add Ad
Source** .  

Select **i-mobile** and enable the **Optimize** switch. Enter the **Login name** and **API Password** obtained in the previous section to set up ad source optimization for i-mobile. Then enter an **eCPM value** for i-mobile and click **Continue** .  

![](https://developers.google.com/static/admob/images/mediation/imobile/admob-add-ad-network.png)  
| **Note**: You only need to set up ad source optimization once per network.

If you already have a mapping for i-mobile, you can select it. Otherwise, click **Add mapping** .  
![](https://developers.google.com/static/admob/images/mediation/imobile/waterfall-add-mapping-1-Android.png)  
Next, enter the **Publisher ID** , **Media ID** and **Spot ID** obtained in the previous section. Then click **Done** .  
![](https://developers.google.com/static/admob/images/mediation/imobile/waterfall-add-mapping-2-Android.png)  
| **Note** : Ad source optimization takes a few days to gather enough data to accurately calculate eCPM for a mediation network. In the meantime, the ad source optimization status is `PENDING`, so you must manually set an eCPM value for the network. Once the eCPM can be calculated, the ad source automatically starts updating the eCPM on your behalf.

## Step 3: Import the i-mobile SDK and Adapter

| **Note:** Failure to integrate the compatible i-mobile and GMA Next-Gen SDK versions might lead to build issues.

### Android Studio integration (recommended)

In your project-level `settings.gradle.kts` file, add the following
repositories:  

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
        maven {
    url = uri("https://imobile.github.io/adnw-sdk-android")
    }
      }
    }

In your app-level gradle file, add the following implementation
dependencies
and configurations:  

### Kotlin

```kotlin
dependencies {
    implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.22.0-beta04")
    implementation("com.google.ads.mediation:imobile:2.3.2.1")
}

configurations.configureEach {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}
```

### Groovy

```groovy
dependencies {
    implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.22.0-beta04'
    implementation 'com.google.ads.mediation:imobile:2.3.2.1'
}

configurations.configureEach {
    exclude group: 'com.google.android.gms', module: 'play-services-ads'
    exclude group: 'com.google.android.gms', module: 'play-services-ads-lite'
}
```

### Manual integration

1. Download the latest version of the
   [i-mobile SDK](https://sppartner.i-mobile.co.jp/sdk_download.aspx) and extract the
   `android-ad-sdk.aar` under the `sdk` folder and add it to your project.

2. Navigate to the [i-mobile adapter artifacts](https://maven.google.com/web/index.html#com.google.ads.mediation:imobile)
   on Google's Maven Repository. Select the latest version, download the i-mobile
   adapter's `.aar` file, and add it to your project.

## Step 4: Add required code

### Load ad with activity context

Pass `Activity` context when loading Banner, Interstitial, Rewarded and Native
ad formats.Without activity context, ad load will fail.

## Step 5: Test your implementation

### Enable test ads

Make sure you
[register your test device](https://developers.google.com/admob/android/next-gen/test-ads#enable_test_devices)
for

AdMob.


i-mobile provides test **Spot ID** , **Media ID** ,
and **Publisher ID** for testing, you can find them
[here](https://sppartner.i-mobile.co.jp/webdoc/common/test-id.html).


| **Important:** Disable test mode for AdMob and i-mobile before releasing your app.

### Verify test ads

To verify that you are receiving test ads from
i-mobile,
enable
[single ad source testing](https://developers.google.com/admob/android/next-gen/ad-inspector#single_ad_source_testing)
in ad inspector using the
**i-mobile (Waterfall)** ad source(s).

## Optional steps

### Using native ads

#### Ad rendering

The i-mobile adapter populates the following

[Native ads advanced field descriptions](https://support.google.com/admob/answer/6240809)

for a

[`NativeAd`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/nativead/NativeAd).


| Field | Assets always included by i-mobile adapter |
|---|---|
| Headline |   |
| Image |   |
| Body |   |
| App icon | ^[1](https://developers.google.com/admob/android/next-gen/mediation/imobile#app-icon-footnote)^ |
| Call to action |   |
| Star rating |   |
| Store |   |
| Price |   |

^1^ For native ads, the i-mobile SDK does not provide an app icon asset. Instead,
the i-mobile adapter populates the app icon with a transparent image.

## Error codes

If the adapter fails to receive an ad from i-mobile,
publishers can check the underlying error from the ad response using


[`ResponseInfo.getAdSourceResponses()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/common/ResponseInfo#getAdSourceResponses())

under the following classes:

| Format | Class name |
|---|---|
| Banner | com.google.ads.mediation.imobile.IMobileAdapter |
| Interstitial | com.google.ads.mediation.imobile.IMobileAdapter |
| Native | com.google.ads.mediation.imobile.IMobileMediationAdapter |

Here are the codes and accompanying messages thrown by the i-mobile adapter
when an ad fails to load:

| Error code | Reason |
|---|---|
| 0-99 | i-mobile SDK returned an error. See [code](https://github.com/googleads/googleads-mobile-android-mediation/blob/master/ThirdPartyAdapters/imobile/imobile/src/main/java/com/google/ads/mediation/imobile/AdapterHelper.java) for more details. |
| 101 | i-mobile requires an `Activity` context to load ads. |
| 102 | i-mobile server parameters configured in the AdMob UI are missing/invalid. |
| 103 | The requested ad size does not match an i-mobile supported banner size. |
| 104 | i-mobile's native ad load success callback returned an empty native ads list. |

## i-mobile Android Mediation Adapter Changelog

#### Version 2.3.2.1

- Updated the minimum required Android API level to 23.
- Updated the minimum required Google Mobile Ads SDK version to 24.0.0.

Built and tested with:

- Google Mobile Ads SDK version 24.0.0.
- IMobile SDK version 2.3.2.

#### Version 2.3.2.0

- Verified compatibility with i-mobile SDK v2.3.2.

Built and tested with:

- Google Mobile Ads SDK version 23.1.0.
- IMobile SDK version 2.3.2.

#### Version 2.3.1.2

- Updated the minimum required Google Mobile Ads SDK version to 23.0.0.
- Verified compatibility with i-mobile SDK v2.3.1.

Built and tested with:

- Google Mobile Ads SDK version 23.0.0.
- IMobile SDK version 2.3.1.

#### Version 2.3.1.1

- Updated adapter to use new `VersionInfo` class.
- Updated the minimum required Google Mobile Ads SDK version to 22.0.0.

Built and tested with:

- Google Mobile Ads SDK version 22.0.0.
- IMobile SDK version 2.3.1.

#### Version 2.3.1.0

- Verified compatibility with i-mobile SDK v2.3.1.
- Updated the minimum required Google Mobile Ads SDK version to 21.5.0.

Built and tested with:

- Google Mobile Ads SDK version 21.5.0.
- IMobile SDK version 2.3.1.

#### Version 2.3.0.0

- Verified compatibility with i-mobile SDK v2.3.0.
- Updated the minimum required Google Mobile Ads SDK version to 21.3.0.

Built and tested with:

- Google Mobile Ads SDK version 21.3.0.
- IMobile SDK version 2.3.0.

#### Version 2.0.23.1

- Updated `compileSdkVersion` and `targetSdkVersion` to API 31.
- Updated the minimum required Google Mobile Ads SDK version to 21.0.0.
- Updated the minimum required Android API level to 19.

Built and tested with:

- Google Mobile Ads SDK version 21.0.0.
- IMobile SDK version 2.0.23.

#### Version 2.0.23.0

- Verified compatibility with i-mobile SDK v2.0.23.
- Updated the minimum required Google Mobile Ads SDK version to 20.5.0.

Built and tested with

- Google Mobile Ads SDK version 20.5.0.
- IMobile SDK version 2.0.23.

#### Version 2.0.22.2

- Added standardized adapter error codes and messages.
- Updated the minimum required Google Mobile Ads SDK version to 20.1.0.

Built and tested with

- Google Mobile Ads SDK version 20.1.0.
- IMobile SDK version 2.0.22.

#### Version 2.0.22.1

- Updated the minimum required Google Mobile Ads SDK version to 20.0.0.

Built and tested with

- Google Mobile Ads SDK version 20.0.0.
- IMobile SDK version 2.0.22.

#### Version 2.0.22.0

- Verified compatibility with i-mobile SDK v2.0.22.
- Updated the adapter to support inline adaptive banner requests.

Built and tested with

- Google Mobile Ads SDK version 19.1.0.
- IMobile SDK version 2.0.22.

#### Version 2.0.21.0

- Verified compatibility with i-mobile SDK v2.0.21.
- Updated the minimum required Google Mobile Ads SDK version to 19.1.0.
- Added support for scaling adaptive banner ads.

Built and tested with

- Google Mobile Ads SDK version 19.1.0.
- IMobile SDK version 2.0.21.

#### Version 2.0.20.2

- Added support for flexible banner ad sizes.
- Updated the minimum required Google Mobile Ads SDK version to 18.3.0.

Built and tested with

- Google Mobile Ads SDK version 18.3.0.
- IMobile SDK version 2.0.20.

#### Version 2.0.20.1

- Adapter now returns a non-zero `mediaContent` aspect ratio.

Built and tested with

- Google Mobile Ads SDK version 18.2.0.
- IMobile SDK version 2.0.20.

#### Version 2.0.20.0

- Initial release!
- Added support for banner, interstitial, and native ads.