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

<br />

This guide shows you how to use Google Mobile Ads SDK to load and display
ads from InMobi using [AdMob Mediation](https://developers.google.com/admob/android/mediation),
covering both waterfall and bidding integrations. It covers how to add InMobi to
an ad unit's mediation configuration, and how to integrate the InMobi SDK and
adapter into an Android app.

## Supported integrations and ad formats

The mediation adapter for InMobi has the following capabilities:

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

## Requirements

- Android API level 23 or higher

<!-- -->

- \[For bidding\]: To integrate all supported ad formats in bidding, use InMobi adapter 10.6.3.0 or higher ([latest version recommended](https://developers.google.com/admob/android/mediation/inmobi#inmobi-android-mediation-adapter-changelog))

<!-- -->

- Latest Google Mobile Ads SDK

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

## Step 1: Set up configurations in InMobi UI

[Sign up](https://publisher.inmobi.com/signup) for an InMobi account.

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

Once your account is verified, [log in](https://publisher.inmobi.com).

### Add an app

To add your app to the InMobi dashboard, click **Inventory \> Inventory
Settings**.

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

Click **Add Inventory** and select the **Mobile App** channel from the drop-down
menu.

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

Start typing your published app store **URL** in the search bar and select the
app from the auto-populated results. Click **Continue**.

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

If your app in not published, click **Link manually** and enter the required
details. Click **Continue**.

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

Review the **App \& Website Compliance** settings and then click **Save and
Create Placements**.

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

### Placements

After you set up your inventory, the system redirects you to the placement
creation workflow.
| **Note:** If the system does not redirect you to the placement creation workflow, go to **Inventory \> Inventory Settings** . Then, search for the app or website you would like to create a placement for. Click **Add a placement**.

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

### Bidding

| **Note:** Contact your account manager to get access for configuring bidding in the InMobi dashboard.

Select the type of ad unit. The enter a **Placement Name** , select
**On** and **Google Open Bidding** for **Audience Bidding** and **Partner**
respectively, and fill out the rest of the form. Click **Create Placement**
when done.

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

### Waterfall

Select the type of ad unit. Then enter a **Placement Name** , select
**Off** for **Audience Bidding** , and fill out the rest of the form. Click
**Create Placement** when done.

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

Once the placement is created, its details are shown. Take note of the
Placement ID, which will be used for setting up your
AdMob ad unit.
| **Note:** The InMobi Placement ID is present under the placement name.

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

### Account ID

Your InMobi account ID is available under **Finance \> Payment Settings \>
Payment Information**.

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

### Locate InMobi Reporting API Key

### Bidding

This step isn't required for bidding integrations.

### Waterfall

Go to **My Account \> Account Settings** . Navigate to the **API Key** tab
and click **Generate API Key**.

Select the **email** of the user the key is required for and click
**Generate API Key**. A file containing the API key and username/login name
will be generated.

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

Only the publisher administrator of the account will be able to generate an
API key for all users. If you have forgotten the previously generated API
key, reset your API key by hovering over your mail on the **API Key** tab.

![](https://developers.google.com/static/admob/images/mediation/inmobi/Reset_secret_key.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 InMobi,
[Add your personalized code snippet](https://support.inmobi.com/monetize/manage-inventory/app-ads-txt/set-up-an-app-ads.txt-file-for-your-app#add-your-personalized-code-snippet).

### Turn on test mode

Enable **Test Mode** for your placement on all live impressions or certain test
devices only.
| **Note:** Test mode is turned **Off** by default for all placements. However, test mode can be enabled for placements across all app instances or only for devices you specify.

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

## Step 2: Set up InMobi demand in AdMob UI

### Configure mediation settings for your ad unit

You need to add InMobi 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 InMobi as an ad source](https://developers.google.com/admob/android/mediation/inmobi#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 InMobi as an ad source

### Bidding

Under the **Bidding** card in the **Ad Sources** section, select **Add
ad source** . Then select **InMobi** **(SDK)** .  

Click **How to sign a partnership agreement** and [set up a bidding partnership](https://support.google.com/admob/answer/9842838) with InMobi.   

![](https://developers.google.com/static/admob/images/mediation/inmobi/bidding-agreement-1.png)   

Click **Acknowledge \& agree** , then click **Continue** .   

![](https://developers.google.com/static/admob/images/mediation/inmobi/bidding-agreement-2.png)   

If you already have a mapping for InMobi, you can select it. Otherwise, click **Add mapping** .   

![](https://developers.google.com/static/admob/images/mediation/inmobi/bidding-add-mapping-1-Android.png)   

Next, enter the **Account ID** and **Placement ID** obtained in the previous section. Then click **Done** .   

| **Important** : The **App ID** must be associated with the targeted app as in the InMobi UI.

<br />

![](https://developers.google.com/static/admob/images/mediation/inmobi/bidding-add-mapping-2-Android.png)

### Waterfall

<br />

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

Select **InMobi** and enable the **Optimize** switch. Enter the **Username** and **API Key** obtained in the previous section to set up ad source optimization for InMobi. Then enter an **eCPM value** for InMobi and click **Continue** .  

![](https://developers.google.com/static/admob/images/mediation/inmobi/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 InMobi, you can select it. Otherwise, click **Add mapping** .  
![](https://developers.google.com/static/admob/images/mediation/inmobi/waterfall-add-mapping-1-Android.png)  
Next, enter the **Account ID** and **Placement ID** obtained in the previous section. Then click **Done** .  
| **Important** : The **App ID** must be associated with the targeted app as in the InMobi UI.

![](https://developers.google.com/static/admob/images/mediation/inmobi/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.

### Add InMobi to GDPR and US state regulations ad partners list

| **Important:** Verify that you have **Account Management** permission to complete the configuration for EU Consent and GDPR, US State regulations, and User Messaging Platform. See [Manage user access to your
| account](https://support.google.com/admob/answer/2784628) for details.

Follow the steps in

[European regulations settings](https://support.google.com/admob/answer/10113004#adding_ad_partners_to_published_gdpr_messages)

and

[US state regulations settings](https://support.google.com/admob/answer/14125907)

to add **InMobi** to the
European and US state regulations ad partners list in the AdMob UI.

## Step 3: Import the InMobi SDK and adapter

| **Note:** Failure to integrate the compatible InMobi and Google Mobile Ads SDK versions might lead to build issues.

### Android Studio integration (recommended)

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

### Kotlin

```kotlin
dependencies {
    implementation("com.google.android.gms:play-services-ads:24.9.0")
    implementation("com.google.ads.mediation:inmobi:11.1.0.0")
}
```

### Groovy

```groovy
dependencies {
    implementation 'com.google.android.gms:play-services-ads:24.9.0'
    implementation 'com.google.ads.mediation:inmobi:11.1.0.0'
}
```

### Manual integration

1. Download the
   [InMobi Android SDK](https://support.inmobi.com/monetize/download-sdk) and extract
   the `InMobiSDK.aar` file under the `libs` folder and add it to your project.

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

3. InMobi also requires other dependencies to be included. Please refer to
   [InMobi's documentation](https://support.inmobi.com/monetize/android-guidelines#page__add---verify-dependencies)
   for additional details.

## Step 4: Implement privacy settings on InMobi SDK

### EU Consent and GDPR


To [comply with
Google EU User Consent Policy](https://www.google.com/about/company/consentstaging.html), you must make certain disclosures to your
users in the European Economic Area (EEA), the UK, and Switzerland, and obtain
their consent for the use of cookies or other local storage where legally
required, and for the collection, sharing, and use of personal data for ads
personalization. This policy reflects the requirements of the EU ePrivacy
Directive and the General Data Protection Regulation (GDPR). You are
responsible for verifying consent is propagated to each ad source in your
mediation chain.
Google is unable to pass the user's
consent choice to such networks automatically.

In version 7.1.0.0, the InMobi adapter added the `InMobiConsent` class that
lets you pass consent information to InMobi. The following sample code calls
`updateGDPRConsent()` on the `InMobiConsent` class. If you choose to call this
method, it is recommended that you do so prior to requesting ads through
Google Mobile Ads SDK.
**Note:** Your app must reference both the InMobi adapter 7.1.0.0 or higher and the InMobi SDK 7.1.0 or higher to use the code below.  

### Java

    JSONObject consentObject = new JSONObject();
    try {
      consentObject.put(InMobiSdk.IM_GDPR_CONSENT_AVAILABLE, true);
      consentObject.put("gdpr", "1");
    } catch (JSONException exception) {
        Log.e(TAG, "Error creating GDPR consent JSON.", exception);
    }

    InMobiConsent.updateGDPRConsent(consentObject);  
    https://github.com/googleads/googleads-mobile-android-mediation/blob/6975fe8981c7625da77c7266d95ddb1a4690252f/Example/snippets/src/main/java/com/google/ads/mediation/snippets/java/InMobiMediationSnippets.java#L42-L50

### Kotlin

    val consentObject = JSONObject()
    try {
      consentObject.put(InMobiSdk.IM_GDPR_CONSENT_AVAILABLE, true)
      consentObject.put("gdpr", "1")
    } catch (exception: JSONException) {
      Log.e(TAG, "Error creating GDPR consent JSON.", exception)
    }

    InMobiConsent.updateGDPRConsent(consentObject)  
    https://github.com/googleads/googleads-mobile-android-mediation/blob/6975fe8981c7625da77c7266d95ddb1a4690252f/Example/snippets/src/main/java/com/google/ads/mediation/snippets/kotlin/InMobiMediationSnippets.kt#L39-L47

See
[InMobi's GDPR implementation details](https://support.inmobi.com/monetize/sdk-documentation/android-guidelines/overview-android-guidelines#important-prerequisites)
for more information about the possible keys and values that InMobi accepts in
this consent object.

### US states privacy laws


[US states privacy laws](https://support.google.com/admob/answer/9561022)
require giving users the right
to opt out of the "sale" of their "personal information" (as the law defines
those terms), with the opt-out offered through a prominent "Do Not Sell My Personal
Information" link on the "selling" party's homepage. The
[US states privacy
laws compliance guide](https://developers.google.com/admob/android/privacy/us-states) offers the ability to enable
[restricted data processing](https://privacy.google.com/businesses/rdp/)
for Google ad serving, but Google is unable to apply this setting to each ad
network in your mediation chain. Therefore, you must identify each ad network
in your mediation chain that may participate in the sale of personal
information and follow guidance from each of those networks to ensure
compliance.

In version

10.5.7.1,

the InMobi adapter added support to read IAB U.S. Privacy string from

shared preferences.

Follow the instructions in

[U.S. states privacy laws documentation](https://developers.google.com/admob/android/privacy/us-states#shared_preferences_for_iab)

to set the U.S. Privacy string in

shared preferences.


Additionally, see InMobi's
[CCPA documentation](https://support.inmobi.com/monetize/privacy/ccpa/#introduction)
for guidelines on how to enable CCPA settings in InMobi dashboard.

## Step 5: Additional code required

No additional code is required for InMobi integration.

## Step 6: Test your implementation

### Enable test ads

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

AdMob and [enable test mode](https://developers.google.com/admob/android/mediation/inmobi#turn-on-test-mode) in
InMobi UI.


| **Important:** Disable test mode for AdMob and InMobi before releasing your app.

### Verify test ads

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

## Optional steps

### Permissions

For optimal performance, InMobi recommends adding the following optional
permissions to your app's `AndroidManifest.xml` file.  

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

### Network-specific parameters

The InMobi adapter supports additional request parameters that can be passed to
the adapter as an Android Bundle. The adapter looks for the following keys in
the bundle:

| Request parameters and values ||
|---|---|
| `InMobiNetworkKeys.AGE_GROUP` The user's age group. | `InMobiNetworkValues.BELOW_18` `InMobiNetworkValues.BETWEEN_18_AND_24` `InMobiNetworkValues.BETWEEN_25_AND_29` `InMobiNetworkValues.BETWEEN_30_AND_34` `InMobiNetworkValues.BETWEEN_35_AND_44` `InMobiNetworkValues.BETWEEN_45_AND_54` `InMobiNetworkValues.BETWEEN_55_AND_65` `InMobiNetworkValues.ABOVE_65` |
| `InMobiNetworkKeys.EDUCATION` The user's education level. | `InMobiNetworkValues.EDUCATION_HIGHSCHOOLORLESS` `InMobiNetworkValues.EDUCATION_COLLEGEORGRADUATE` `InMobiNetworkValues.EDUCATION_POSTGRADUATEORABOVE` |
| `InMobiNetworkKeys.AGE ` | **String**. The age of the user |
| `InMobiNetworkKeys.POSTAL_CODE` | **String**. The user's postal code (usually a five-digit number) |
| `InMobiNetworkKeys.AREA_CODE` | **String**. The user's area code (part of the telephone number) |
| `InMobiNetworkKeys.LANGUAGE` | **String**. The user's native language (if known). |
| `InMobiNetworkKeys.CITY` | **String**. The user's city |
| `InMobiNetworkKeys.STATE` | **String**. The user's state |
| `InMobiNetworkKeys.COUNTRY` | **String**. The user's country |
| `InMobiNetworkKeys.LOGLEVEL` Sets the Log level for InMobi SDK. | `InMobiNetworkValues.LOGLEVEL_NONE` `InMobiNetworkValues.LOGLEVEL_DEBUG` `InMobiNetworkValues.LOGLEVEL_ERROR` |

Here's a code example of how to set these ad request parameters:  

### Java

    Bundle extras = new Bundle();
    extras.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_35_AND_44);
    extras.putString(InMobiNetworkKeys.AREA_CODE, <var translate="no"><span class="devsite-syntax-n">AREA_CODE_VALUE</span></var>);

    AdRequest request =
        new AdRequest.Builder().addNetworkExtrasBundle(InMobiAdapter.class, extras).build();  
    https://github.com/googleads/googleads-mobile-android-mediation/blob/6975fe8981c7625da77c7266d95ddb1a4690252f/Example/snippets/src/main/java/com/google/ads/mediation/snippets/java/InMobiMediationSnippets.java#L56-L61

### Kotlin

    val extras = Bundle()
    extras.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_35_AND_44)
    extras.putString(InMobiNetworkKeys.AREA_CODE, <var translate="no"><span class="devsite-syntax-n">AREA_CODE_VALUE</span></var>)

    val request =
      AdRequest.Builder().addNetworkExtrasBundle(InMobiAdapter::class.java, extras).build()  
    https://github.com/googleads/googleads-mobile-android-mediation/blob/6975fe8981c7625da77c7266d95ddb1a4690252f/Example/snippets/src/main/java/com/google/ads/mediation/snippets/kotlin/InMobiMediationSnippets.kt#L53-L58

- Replace <var readonly="true" translate="no">AREA_CODE_VALUE</var> with the area code.

### Using native ads

#### Ad rendering

The InMobi adapter returns its native ads as

`NativeAd`

objects. It populates the following

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

for a

[`NativeAd`](https://developers.google.com/admob/android/reference/com/google/android/gms/ads/nativead/NativeAd).


| Field | Assets always included by InMobi adapter |
|---|---|
| Headline |   |
| Image | [1](https://developers.google.com/admob/android/mediation/inmobi#image-footnote) |
| Media view |   |
| Body |   |
| App icon |   |
| Call to action |   |
| Star rating |   |
| Store |   |
| Price |   |

^1^ The InMobi adapter does not
provide direct access to the main image asset for its native ads. Instead, the
adapter populates the

[`MediaView`](https://developers.google.com/admob/android/reference/com/google/android/gms/ads/nativead/MediaView)

with a video or an image.

### Impression and click tracking

Google Mobile Ads SDK uses the InMobi SDK's callbacks for impression and
click tracking, so the reports on both dashboards should match up with few to no
discrepancies.

## Error codes

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


[`ResponseInfo.getAdapterResponses()`](https://developers.google.com/admob/android/reference/com/google/android/gms/ads/ResponseInfo#getAdapterResponses())

under the following classes:  

    com.google.ads.mediation.inmobi.InMobiAdapter
    com.google.ads.mediation.inmobi.InMobiMediationAdapter

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

| Error code | Reason |
|---|---|
| 0-99 | InMobi SDK Errors. See [code](https://github.com/googleads/googleads-mobile-android-mediation/blob/7e6fcc20ace3c0ad37722487a0b33570ee0677d2/ThirdPartyAdapters/inmobi/inmobi/src/main/java/com/google/ads/mediation/inmobi/InMobiAdapterUtils.java#L254-L298) for more details. |
| 100 | InMobi server parameters configured in the AdMob UI are missing/invalid. |
| 101 | Failed to initialize the InMobi SDK. |
| 102 | The requested ad size does not match an InMobi supported banner size. |
| 103 | Ad request is not a unified native ad request. |
| 104 | Attempted to request an InMobi ad without initializing the InMobi SDK. This should in theory never happen since the adapter initializes the InMobi SDK prior to requesting InMobi ads. |
| 105 | InMobi's ad is not yet ready to be shown. |
| 106 | InMobi failed to display an ad. |
| 107 | InMobi returned a native ad that is missing a required asset. |
| 108 | InMobi's native ad image assets contain a malformed URL. |
| 109 | The adapter failed to download InMobi's native ad image assets. |

## InMobi Android Mediation Adapter Changelog

#### Version 11.1.0.0

- Verified compatibility with InMobi Kotlin SDK version 11.1.0.
- RewardedInterstitial support added.
- Adapter does not modify InMobi isAgeRestricted if the publisher has not set the `tag_for_under_age_of_consent` flag.

Built and tested with:

- Google Mobile Ads SDK version 24.7.0.
- InMobi Kotlin SDK version 11.1.0.

#### Version 10.8.8.1

- Removed class-level references to `Context` objects to help with memory leak issues.

Built and tested with:

- Google Mobile Ads SDK version 24.7.0.
- InMobi Kotlin SDK version 10.8.8.

#### Version 10.8.8.0

- Verified compatibility with InMobi Kotlin SDK version 10.8.8.

Built and tested with:

- Google Mobile Ads SDK version 24.5.0.
- InMobi Kotlin SDK version 10.8.8.

#### Version 10.8.7.1

- Native Ads now call destroy() when untrackView is called.
- Verified compatibility with InMobi Kotlin SDK version 10.8.7.

Built and tested with:

- Google Mobile Ads SDK version 24.5.0.
- InMobi Kotlin SDK version 10.8.7.

#### Version 10.8.7.0

- Verified compatibility with InMobi Kotlin SDK version 10.8.7.

Built and tested with:

- Google Mobile Ads SDK version 24.5.0.
- InMobi Kotlin SDK version 10.8.7.

#### Version 10.8.3.1

- Removed account ID and placement ID validation checks on bidding requests.
- For banner bidding requests, removes a validation check that enforces the banner size to map to a standard InMobi ad size. If InMobi bidder bids on a non-standard size, the adapter now allows that request to render.

Built and tested with:

- Google Mobile Ads SDK version 24.2.0.
- InMobi Kotlin SDK version 10.8.3.

#### Version 10.8.3.0

- Verified compatibility with InMobi Kotlin SDK version 10.8.3.

Built and tested with:

- Google Mobile Ads SDK version 24.2.0.
- InMobi Kotlin SDK version 10.8.3.

#### Version 10.8.2.0

- Verified compatibility with InMobi Kotlin SDK version 10.8.2.

Built and tested with:

- Google Mobile Ads SDK version 24.0.0.
- InMobi Kotlin SDK version 10.8.2.

#### Version 10.8.0.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.
- InMobi Kotlin SDK version 10.8.0.

#### Version 10.8.0.0

- Compile with Java 11 instead of Java 17.
- Verified compatibility with InMobi Kotlin SDK version 10.8.0.

Built and tested with:

- Google Mobile Ads SDK version 23.5.0.
- InMobi Kotlin SDK version 10.8.0.

#### Version 10.7.8.1

- Reverted the minimum required Android API level to 21.

Built and tested with:

- Google Mobile Ads SDK version 23.3.0.
- InMobi Kotlin SDK version 10.7.8.

#### Version 10.7.8.0

- Verified compatibility with InMobi Kotlin SDK version 10.7.8.

Built and tested with:

- Google Mobile Ads SDK version 23.3.0.
- InMobi Kotlin SDK version 10.7.8.

#### Version 10.7.7.0

- Verified compatibility with InMobi Kotlin SDK version 10.7.7.
- Updated the minimum required Android API level to 24.

Built and tested with:

- Google Mobile Ads SDK version 23.3.0.
- InMobi Kotlin SDK version 10.7.7.

#### Version 10.7.5.0

- Verified compatibility with InMobi Kotlin SDK version 10.7.5.

Built and tested with:

- Google Mobile Ads SDK version 23.2.0.
- InMobi Kotlin SDK version 10.7.5.

#### Version 10.7.4.0

- Verified compatibility with InMobi Kotlin SDK version 10.7.4.

Built and tested with:

- Google Mobile Ads SDK version 23.1.0.
- InMobi Kotlin SDK version 10.7.4.

#### Version 10.7.3.0

- Verified compatibility with InMobi Kotlin SDK version 10.7.3.

Built and tested with:

- Google Mobile Ads SDK version 23.1.0.
- InMobi Kotlin SDK version 10.7.3.

#### Version 10.6.7.1

- Updated the minimum required Google Mobile Ads SDK version to 23.0.0.
- Verified compatibility with InMobi Kotlin SDK version 10.6.7.

Built and tested with:

- Google Mobile Ads SDK version 23.0.0.
- InMobi Kotlin SDK version 10.6.7.

#### Version 10.6.7.0

- Verified compatibility with InMobi Kotlin SDK version 10.6.7.

Built and tested with:

- Google Mobile Ads SDK version 22.6.0.
- InMobi Kotlin SDK version 10.6.7.

#### Version 10.6.6.0

- Verified compatibility with InMobi Kotlin SDK version 10.6.6.

Built and tested with:

- Google Mobile Ads SDK version 22.6.0.
- InMobi Kotlin SDK version 10.6.6.

#### Version 10.6.3.0

- Added watermark support for bidding banner, interstitial and rewarded ads.
- Verified compatibility with InMobi Kotlin SDK version 10.6.3.

Built and tested with:

- Google Mobile Ads SDK version 22.6.0.
- InMobi Kotlin SDK version 10.6.3.

#### Version 10.6.2.0

- Updated the adapter to invoke Google Mobile Ads SDK's mediation callback `onAdFailedToShow` when InMobi interstitial ads fail to display.
- Verified compatibility with InMobi Kotlin SDK version 10.6.2.

Built and tested with:

- Google Mobile Ads SDK version 22.5.0.
- InMobi Kotlin SDK version 10.6.2.

#### Version 10.6.0.0

- Verified compatibility with InMobi Kotlin SDK version 10.6.0.

Built and tested with:

- Google Mobile Ads SDK version 22.3.0.
- InMobi Kotlin SDK version 10.6.0.

#### Version 10.5.9.0

- Verified compatibility with InMobi Kotlin SDK version 10.5.9.
- Updated the adapter to load InMobi banner ads with the closest supported banner ad sizes instead of the requested ad sizes. This will help reduce InMobi no-fills.

Built and tested with:

- Google Mobile Ads SDK version 22.3.0.
- InMobi Kotlin SDK version 10.5.9.

#### Version 10.5.8.0

- Fixed an issue where the adapter fails to initialize.
- Updated dependencies to resolve class path conflicts.
- Updated the minimum required Google Mobile Ads SDK version to 22.3.0.
- Verified compatibility with InMobi Kotlin SDK version 10.5.8.

Built and tested with:

- Google Mobile Ads SDK version 22.3.0.
- InMobi Kotlin SDK version 10.5.8.

#### Version 10.5.7.1

- Added support to read IAB U.S. Privacy string from shared preferences.
- Added bidding support for banner (includes MREC), interstitial and rewarded ad formats.
- Updated the minimum required Google Mobile Ads SDK version to 22.2.0.

Built and tested with:

- Google Mobile Ads SDK version 22.2.0.
- InMobi Kotlin SDK version 10.5.7.

#### Version 10.5.7.0

- Verified compatibility with InMobi Kotlin SDK version 10.5.7.

Built and tested with:

- Google Mobile Ads SDK version 22.1.0.
- InMobi Kotlin SDK version 10.5.7.

#### Version 10.5.5.0

- Verified compatibility with InMobi Kotlin SDK version 10.5.5.

Built and tested with:

- Google Mobile Ads SDK version 22.1.0.
- InMobi Kotlin SDK version 10.5.5.

#### Version 10.5.4.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.
- InMobi Kotlin SDK version 10.5.4.

#### Version 10.5.4.0

- Verified compatibility with InMobi Kotlin SDK version 10.5.4.

Built and tested with:

- Google Mobile Ads SDK version 21.4.0.
- InMobi Kotlin SDK version 10.5.4.

#### Version 10.1.2.1

- Added support for forwarding the COPPA value to InMobi SDK.
- Updated the adapter to use the new mediation APIs.
- Updated the minimum required Google Mobile Ads SDK version to 21.4.0.

Built and tested with:

- Google Mobile Ads SDK version 21.4.0.
- InMobi SDK version 10.1.2.

#### Version 10.1.2.0

- Verified compatibility with InMobi SDK version 10.1.2.

Built and tested with:

- Google Mobile Ads SDK version 21.3.0.
- InMobi SDK version 10.1.2.

#### Version 10.1.1.0

- Verified compatibility with InMobi SDK version 10.1.1.

Built and tested with:

- Google Mobile Ads SDK version 21.3.0.
- InMobi SDK version 10.1.1.

#### Version 10.0.9.0

- Verified compatibility with InMobi SDK version 10.0.9.
- 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.
- InMobi SDK version 10.0.9.

#### Version 10.0.8.0

- Verified compatibility with InMobi SDK version 10.0.8.
- Updated the minimum required Google Mobile Ads SDK version to 21.2.0.

Built and tested with:

- Google Mobile Ads SDK version 21.2.0.
- InMobi SDK version 10.0.8.

#### Version 10.0.7.0

- Verified compatibility with InMobi SDK version 10.0.7.
- 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.
- InMobi SDK version 10.0.7.

#### Version 10.0.6.0

- Verified compatibility with InMobi SDK version 10.0.6.

Built and tested with:

- Google Mobile Ads SDK version 20.6.0.
- InMobi SDK version 10.0.6.

#### Version 10.0.5.0

- Verified compatibility with InMobi SDK version 10.0.5.
- Updated the minimum required Google Mobile Ads SDK version to 20.6.0.

Built and tested with:

- Google Mobile Ads SDK version 20.6.0.
- InMobi SDK version 10.0.5.

#### Version 10.0.3.0

- Verified compatibility with InMobi SDK version 10.0.3.

Built and tested with:

- Google Mobile Ads SDK version 20.5.0.
- InMobi SDK version 10.0.3.

#### Version 10.0.2.0

- Verified compatibility with InMobi SDK version 10.0.2.
- 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.
- InMobi SDK version 10.0.2.

#### Version 10.0.1.0

- Verified compatibility with InMobi SDK version 10.0.1.
- Updated the minimum required Google Mobile Ads SDK version to 20.4.0.

Built and tested with:

- Google Mobile Ads SDK version 20.4.0.
- InMobi SDK version 10.0.1.

#### Version 9.2.1.0

- Verified compatibility with InMobi SDK version 9.2.1.
- Updated the minimum required Google Mobile Ads SDK version to 20.3.0.

Built and tested with:

- Google Mobile Ads SDK version 20.3.0.
- InMobi SDK version 9.2.1.

#### Version 9.2.0.0

- Verified compatibility with InMobi SDK version 9.2.0.
- Updated the minimum required Google Mobile Ads SDK version to 20.2.0.
- Fixed incorrect error messages.

Built and tested with:

- Google Mobile Ads SDK version 20.2.0.
- InMobi SDK version 9.2.0.

#### Version 9.1.9.0

- Verified compatibility with InMobi SDK version 9.1.9.
- 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.
- InMobi SDK version 9.1.9.

#### Version 9.1.7.0

- Verified compatibility with InMobi SDK version 9.1.7.
- Updated the minimum required Google Mobile Ads SDK version to 19.8.0.

Built and tested with:

- Google Mobile Ads SDK version 19.8.0.
- InMobi SDK version 9.1.7.

#### Version 9.1.6.0

- Verified compatibility with InMobi SDK version 9.1.6.
- Updated the minimum required Google Mobile Ads SDK version to 19.7.0.
- Adapter now overrides impression tracking and uses InMobi's impression definition.
- Adapter no longer reads gender and birthday targeting parameters, which are deprecated in the Google Mobile Ads SDK version 19.7.0.
- Migrated to AndroidX

Built and tested with:

- Google Mobile Ads SDK version 19.7.0.
- InMobi SDK version 9.1.6.

#### Version 9.1.1.0

- Verified compatibility with InMobi SDK version 9.1.1.
- Updated the minimum required Google Mobile Ads SDK version to 19.5.0.
- Added descriptive error codes and reasons for adapter load/show failures.

Built and tested with:

- Google Mobile Ads SDK version 19.5.0.
- InMobi SDK version 9.1.1.

#### Version 9.1.0.0

- Verified compatibility with InMobi SDK version 9.1.0.
- Updated the minimum required Google Mobile Ads SDK version to 19.4.0.

Built and tested with:

- Google Mobile Ads SDK version 19.4.0.
- InMobi SDK version 9.1.0.

#### Version 9.0.9.0

- Verified compatibility with InMobi SDK version 9.0.9.

Built and tested with:

- Google Mobile Ads SDK version 19.3.0.
- InMobi SDK version 9.0.9.

#### Version 9.0.8.0

- Removed support for the deprecated NativeAppInstallAd format. Apps should request unified native ads.
- Updated the minimum required Google Mobile Ads SDK version to 19.3.0.
- Verified compatibility with InMobi SDK version 9.0.8.

Built and tested with:

- Google Mobile Ads SDK version 19.3.0.
- InMobi SDK version 9.0.8.

#### Version 9.0.7.1

- Fixed an issue where the adapter did not keep InMobi SDK's initialization state properly.
- Updated the minimum required Google Mobile Ads SDK version to 19.2.0.

Built and tested with:

- Google Mobile Ads SDK version 19.2.0.
- InMobi SDK version 9.0.7.

#### Version 9.0.7.0

- Verified compatibility with InMobi SDK version 9.0.7.
- Updated the adapter to support inline adaptive banner requests.
- Adapter now includes proguard configuration as suggested by [InMobi's guidelines](https://support.inmobi.com/monetize/android-guidelines).

Built and tested with:

- Google Mobile Ads SDK version 19.1.0.
- InMobi SDK version 9.0.7.

#### Version 9.0.6.0

- Verified compatibility with InMobi SDK version 9.0.6.
- Native ads: Fixed a bug that causes the `primaryView` of InMobi to disappear while scrolling in native feed integration.
- Native ads: Fixed a bug that causes the `primaryView` of InMobi not being positioned center inside the `mediaView`.

Built and tested with:

- Google Mobile Ads SDK version 19.1.0.
- InMobi SDK version 9.0.6.

#### Version 9.0.5.0

- Verified compatibility with InMobi SDK version 9.0.5.

Built and tested with:

- Google Mobile Ads SDK version 19.1.0.
- InMobi SDK version 9.0.5.

#### Version 9.0.4.0

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

Built and tested with:

- Google Mobile Ads SDK version 19.1.0.
- InMobi SDK version 9.0.4.

#### Version 9.0.2.0

- Verified compatibility with InMobi SDK version 9.0.2.
- Updated the minimum required Google Mobile Ads SDK version to 18.3.0.
- Removed bidding capability for banner, interstitial, and rewarded formats.
- Fixed a bug that causes a crash when trying to render a native ad.

Built and tested with

- Google Mobile Ads SDK version 18.3.0.
- InMobi SDK version 9.0.2.

#### Version 7.3.0.1

- Native ads now leverage the unified native ads mediation API.

Built and tested with

- Google Mobile Ads SDK version 18.2.0.
- InMobi SDK version 7.3.0.

#### Version 7.3.0.0

- Verified compatibility with InMobi SDK version 7.3.0.
- Updated the minimum required Google Mobile Ads SDK version to 18.2.0.

#### Version 7.2.9.0

- Added bidding capability to the adapter for banner, interstitial and rewarded ads.
- Verified compatibility with InMobi SDK version 7.2.9.
- Updated the minimum required Google Mobile Ads SDK version to 18.1.1.

#### Version 7.2.7.0

- Verified compatibility with InMobi SDK version 7.2.7.

#### Version 7.2.2.2

- Added support for flexible banner ad sizes.

#### Version 7.2.2.1

- Updated adapter to support new open-beta Rewarded API.
- Updated the minimum required Google Mobile Ads SDK version to 17.2.0.

#### Version 7.2.2.0

- Verified compatibility with InMobi SDK version 7.2.2.

#### Version 7.2.1.0

- Verified compatibility with InMobi SDK version 7.2.1.

#### Version 7.2.0.0

- Verified compatibility with InMobi SDK version 7.2.0.

#### Version 7.1.1.1

- Updated the adapter to invoke the `onRewardedVideoComplete` ad event.

#### Version 7.1.1.0

- Verified compatibility with InMobi SDK version 7.1.1.

#### Version 7.1.0.0

- Added InMobiConsent class which provides updateGDPRConsent() and getConsentObj() methods.
- Verified compatibility with InMobi SDK version 7.1.0.

#### Version 7.0.4.0

- Verified compatibility with InMobi SDK version 7.0.4.

#### Version 7.0.2.0

- Verified compatibility with InMobi SDK version 7.0.2.

#### Version 7.0.1.0

- Updated the adapter to make it compatible with InMobi SDK version 7.0.1.
- Added support for native video ads.
- For native ads, a media view is always returned by the adapter. The adapter no longer returns an image asset, instead the media view will display an image for static native ads.
- Updated the adapter project for Android Studio 3.0.

#### Version 6.2.4.0

- Verified compatibility with InMobi SDK version 6.2.4.

#### Version 6.2.3.0

- Changed the version naming system to \[InMobi SDK version\].\[adapter patch version\].

#### Earlier versions

- Adds support for banners, interstitials, rewarded video and native ad formats.