<br />

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

The dashboard interface for maio uses Japanese text for its labels, buttons,
and descriptions, and the screenshots in this guide have not been translated.
In this guide's descriptions and instructions however, labels and buttons are
referenced with their English language equivalents. "URL スキーム," for example,
is "URL Scheme".

## Supported integrations and ad formats

The mediation adapter for maio has the following capabilities:

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

## Prerequisites

Before you continue, verify the following:

- iOS deployment target of 15.0 or later.

<!-- -->

- Latest Google Mobile Ads SDK version.

- [Set up AdMob Mediation](https://developers.google.com/admob/ios/mediation.md.txt).

## Step 1: Set up configurations in maio UI

First, [sign up](https://docs.google.com/forms/d/e/1FAIpQLScSrlf8JTwTdvJjaLjc3v4z8PfunngKALSBdRf3EfyctdMY3Q/viewform)
or [log in](https://maio.jp/publisher/login) to your maio account. Click the
**Application management** button on the left sidebar and click on **New app**.

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

Select the tab corresponding to your preferred **Ad Type**.

### Interstitial

Enter the **Name** of your app, select the platform and provide your
**App URL** . Select **Video interstitial** as the **Ad Type** , and then
click **Update**.

![](https://developers.google.com/static/admob/images/mediation/maio/interstitial_iOS.png)
**Note:** Interstitial ads from maio are skippable by default.

### Rewarded

Enter the **Name** of your app, select the platform and provide your
**App URL** . Select **Video Rewards** as the **Ad Type** , and then click
**Update**.

![](https://developers.google.com/static/admob/images/mediation/maio/rewarded_iOS.png)
**Note:** Rewarded Video ads from maio are **NOT** skippable by default.

In the **Application Management** page, make a note of the **Media ID**. It's
needed to set up your AdMob ad unit in the next
section.

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

In the **Zone Management** page, make a note of the **Zone ID**. It will also
be needed to set up your AdMob ad unit in the next
section.

![](https://developers.google.com/static/admob/images/mediation/maio/zone_id_iOS.png)
(Waterfall only) In addition to **Media ID** and **Zone ID** , you will need **API ID** and **API KEY** to set up your ad unit ID for mediation. In **Reporting API page** , make a note of **API ID** and **API KEY** .

<br />

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

> [!NOTE]
> **Note:** (Waterfall only) If this is your first time setting up your maio account, you may need to contact maio's support team in order for your **API ID** and **API KEY** to be issued to you.

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

### Configure mediation settings for your ad unit

You need to add maio 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 maio as an ad source](https://developers.google.com/admob/ios/mediation/maio.md.txt#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-iOS.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-iOS.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-iOS.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-iOS.png)

### Add maio as an ad source

<br />

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

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

![](https://developers.google.com/static/admob/images/mediation/maio/admob-add-ad-network.png)  

> [!NOTE]
> **Note**: You only need to set up ad source optimization once per network.

<br />

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

![](https://developers.google.com/static/admob/images/mediation/maio/waterfall-add-mapping-1-iOS.png)  

Next, enter the **Media ID** and **Zone ID** obtained in the previous section. Then click **Done** .  
**Important** : The **Media ID** must be associated with the targeted app as in the maio UI.   
![](https://developers.google.com/static/admob/images/mediation/maio/waterfall-add-mapping-2-iOS.png)  

> [!NOTE]
> **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 maio SDK and adapter

> [!NOTE]
> **Note:** Failure to integrate the compatible maio and Google Mobile Ads SDK versions might lead to build issues.

### Recommended: Use Swift Package Manager

Before you continue, you must have the minimum supported adapter version
2.2.0.0.

To [add a package dependency](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app#Add-a-package-dependency)
to your project, follow these steps:

1. In Xcode, navigate to **File \> Add Package Dependencies...**.

2. In the prompt that appears, search the following package URL:

       https://github.com/googleads/googleads-mobile-ios-mediation-maio.git

3. In **Dependency Rule** , select **Branch**.

4. In the text field, enter `main`.

### Manual integration

- Download the latest version of the [maio SDK](https://github.com/imobile-maio/maio-iOS-SDK/releases/).
- Download the latest version of the maio adapter from the download link in the [Changelog](https://developers.google.com/admob/ios/mediation/maio.md.txt#maio-ios-mediation-adapter-changelog), and link `maioAdapter.framework` in your project.

### Use CocoaPods


> [!CAUTION]
> **Caution:** Starting December 2, 2026, the [CocoaPods Specs
> repository](https://blog.cocoapods.org/CocoaPods-Specs-Repo/) is in read-only mode. As of this date, Google Mobile Ads SDK no longer publishes updated versions of mediation adapters for iOS to CocoaPods.

<br />

- Add the following line to your project's Podfile:

      pod 'GoogleMobileAdsMediationMaio'

- From the command line run:

  ```bash
  pod install --repo-update
  ```

## Step 4: Add required code

### Implement SKAdNetwork

Follow [maio's documentation](https://github.com/imobile/MaioSDK-v2-iOS?tab=readme-ov-file#skadnetworkid)
to add the SKAdNetwork identifiers to your project's `Info.plist` file.

## Step 5: Test your implementation

### Enable test ads

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

AdMob.


Publishers using version 7.26.0 or higher of Google Mobile Ads SDK will
automatically receive test ads from maio on phones and tablets registered as
[test devices](https://developers.google.com/admob/ios/test-ads.md.txt#enable_test_devices)
when making requests.

> [!IMPORTANT]
> **Important:** Disable test mode for AdMob and maio before releasing your app.

### Verify test ads

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

## Error codes

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

[`GADResponseInfo.adNetworkInfoArray`](https://developers.google.com/admob/ios/api/reference/Classes/GADResponseInfo.md.txt#adnetworkinfoarray)
under the following classes:

| Format | Class name |
|---|---|
| Interstitial | GADMMaioInterstitialAdapter |
| Rewarded | GADMMaioRewardedAdapter |

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

| Error code | Reason |
|---|---|
| 0-10 | maio returned an SDK-specific error. See maio's [code](https://github.com/imobile-maio/maio-iOS-SDK/blob/master/Maio.framework/Headers/MaioDelegate.h) for more details. |
| 101 | maio does not yet have an ad available. |
| 102 | Invalid server parameters (e.g. missing Placement ID). |
| 103 | The maio adapter does not support the ad format being requested. |
| 104 | An ad is already loaded for this network configuration. |
| 105 | Filter age-restricted requests for maio SDK because it cannot receive age-restricted signals. |

## maio iOS Mediation Adapter Changelog

#### [Version 2.2.3.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.2.3.0.zip)

- Verified compatibility with maio SDK version 2.2.3.

Built and tested with:

- Google Mobile Ads SDK version 13.9.0.
- Maio SDK version 2.2.3.

#### [Version 2.2.2.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.2.2.0.zip)

- Verified compatibility with maio SDK version 2.2.2.
- Now requires minimum iOS version `15.0`.
- Updated the minimum iOS version to relax Google Mobile Ads SDK dependency to allow minor versions.

Built and tested with:

- Google Mobile Ads SDK version 13.7.0.
- Maio SDK version 2.2.2.

#### [Version 2.2.1.2](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.2.1.2.zip)

- Filter age-restricted requests for maio SDK when new `ageRestrictedTreatment` is set to `GADAgeRestrictedTreatmentChild`.

Built and tested with:

- Google Mobile Ads SDK version 13.3.0.
- Maio SDK version 2.2.1.

#### [Version 2.2.1.1](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.2.1.1.zip)

- Filter age-restricted requests for maio SDK because it cannot receive age-restricted signals.

Built and tested with:

- Google Mobile Ads SDK version 13.2.0.
- Maio SDK version 2.2.1.

#### [Version 2.2.1.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.2.1.0.zip)

- Verified compatibility with maio SDK version 2.2.1.

Built and tested with:

- Google Mobile Ads SDK version 13.1.0.
- Maio SDK version 2.2.1.

#### [Version 2.2.0.3](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.2.0.3.zip)

- Added support for waterfall banner ads.
- Updated the Google Mobile Ads SDK dependency to version 13.0.0.

Built and tested with:

- Google Mobile Ads SDK version 13.0.0.
- Maio SDK version 2.2.0.

#### [Version 2.2.0.2](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.2.0.2.zip)

- Updated the CocoaPods minimum iOS version to `13.0`.

Built and tested with:

- Google Mobile Ads SDK version 13.0.0.
- Maio SDK version 2.2.0.

#### [Version 2.2.0.1](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.2.0.1.zip)

- Removed bidding implementation since Maio no longer supports bidding.
- Update the adapter to use the `GADMediationAdapter` protocol.

Built and tested with:

- Google Mobile Ads SDK version 12.11.0.
- Maio SDK version 2.2.0.

#### [Version 2.2.0.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.2.0.0.zip)

- Verified compatibility with maio SDK version 2.2.0.

Built and tested with:

- Google Mobile Ads SDK version 12.11.0.
- Maio SDK version 2.2.0.

#### [Version 2.1.6.1](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.1.6.1.zip)

- Now requires Google Mobile Ads SDK version 12.0.0 or higher.

Built and tested with:

- Google Mobile Ads SDK version 12.0.0.
- Maio SDK version 2.1.6.

#### [Version 2.1.6.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.1.6.0.zip)

- Verified compatibility with maio SDK version 2.1.6.

Built and tested with:

- Google Mobile Ads SDK version 11.13.0.
- Maio SDK version 2.1.6.

#### [Version 2.1.5.1](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.1.5.1.zip)

- Updated `CFBundleShortVersionString` to have three components instead of four.

Built and tested with:

- Google Mobile Ads SDK version 11.10.0.
- Maio SDK version 2.1.5.

#### [Version 2.1.5.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.1.5.0.zip)

- Verified compatibility with maio SDK version 2.1.5.

Built and tested with:

- Google Mobile Ads SDK version 11.6.0.
- Maio SDK version 2.1.5.

#### [Version 2.1.4.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.1.4.0.zip)

- Verified compatibility with maio SDK version 2.1.4.

Built and tested with:

- Google Mobile Ads SDK version 11.2.0.
- Maio SDK version 2.1.4.

#### [Version 2.1.3.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.1.3.0.zip)

- Verified compatibility with maio SDK version 2.1.3.

Built and tested with:

- Google Mobile Ads SDK version 11.1.0.
- Maio SDK version 2.1.3.

#### [Version 2.1.2.1](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.1.2.1.zip)

- Now requires Google Mobile Ads SDK version 11.0 or higher.
- Included `Info.plist` in the frameworks within `MaioAdapter.xcframework`.

Built and tested with:

- Google Mobile Ads SDK version 11.0.1.
- Maio SDK version 2.1.2.

#### [Version 2.1.2.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.1.2.0.zip)

- Verified compatibility with maio SDK version 2.1.2.

Built and tested with:

- Google Mobile Ads SDK version 10.14.0.
- Maio SDK version 2.1.2.

#### [Version 2.1.1.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.1.1.0.zip)

- Verified compatibility with maio SDK version 2.1.1.

Built and tested with:

- Google Mobile Ads SDK version 10.12.0.
- Maio SDK version 2.1.1.

#### [Version 2.0.0.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-2.0.0.0.zip)

- Verified compatibility with maio SDK version 2.0.0.
- Removed the dependency on `MaioOB SDK`.
- Removed support of the `armv7` architecture.
- Now requires minimum iOS version 12.0.
- Now requires Google Mobile Ads SDK version 10.4.0 or higher.

Built and tested with:

- Google Mobile Ads SDK version 10.10.0.
- Maio SDK version 2.0.0.

#### [Version 1.6.3.1](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.6.3.1.zip)

- Now requires Google Mobile Ads SDK version 10.0.0 or higher.

Built and tested with:

- Google Mobile Ads SDK version 10.0.0.
- Maio SDK version 1.6.3.
- MaioOB SDK version 2.0.0-alpha.

#### [Version 1.6.3.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.6.3.0.zip)

- Updated the adapter to use the `didRewardUser` API.
- Now requires Google Mobile Ads SDK version 9.8.0 or higher.
- Verified compatibility with maio SDK version 1.6.3 and maioOB SDK version 2.0.0-alpha.

Built and tested with:

- Google Mobile Ads SDK version 9.12.0.
- Maio SDK version 1.6.3.
- MaioOB SDK version 2.0.0-alpha.

#### [Version 1.6.2.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.6.2.0.zip)

- Verified compatibility with maio SDK version 1.6.2 and maioOB SDK version 2.0.0-alpha.

Built and tested with:

- Google Mobile Ads SDK version 9.5.0.
- Maio SDK version 1.6.2.
- MaioOB SDK version 2.0.0-alpha.

#### [Version 1.6.1.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.6.1.0.zip)

- Verified compatibility with maio SDK version 1.6.1 and maioOB SDK version 2.0.0-alpha.

Built and tested with:

- Google Mobile Ads SDK version 9.2.0.
- Maio SDK version 1.6.1.
- MaioOB SDK version 2.0.0-alpha.

#### [Version 1.6.0.1](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.6.0.1.zip)

- Verified compatibility with Google Mobile Ads SDK version 9.0.0.
- Now requires Google Mobile Ads SDK version 9.0.0 or higher.

Built and tested with:

- Google Mobile Ads SDK version 9.0.0.
- Maio SDK version 1.6.0.
- MaioOB SDK version 2.0.0-alpha.

#### [Version 1.6.0.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.6.0.0.zip)

- Verified compatibility with maio SDK version 1.6.0 and maioOB SDK version 2.0.0-alpha.

Built and tested with:

- Google Mobile Ads SDK version 8.13.0.
- Now requires minimum iOS version of 10.0.
- Maio SDK version 1.6.0.
- MaioOB SDK version 2.0.0-alpha.

#### [Version 1.5.8.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.5.8.0.zip)

- Verified compatibility with maio SDK version 1.5.8 and maioOB SDK version 2.0.0-alpha.
- Added bidding capability to the adapter for interstitial and rewarded ad formats.
- Relaxed dependency to Google Mobile Ads SDK version 8.0.0 or higher.

Built and tested with:

- Google Mobile Ads SDK version 8.7.0.
- Maio SDK version 1.5.8.
- MaioOB SDK version 2.0.0-alpha.

#### [Version 1.5.6.1](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.5.6.1.zip)

- Added standardized adapter error codes and messages.
- Updated the adapter to use the `.xcframework` format.
- Fixed a bug where rewarded ad events were sometimes not forwarded.
- Now requires Google Mobile Ads SDK version 8.3.0 or higher.

Built and tested with:

- Google Mobile Ads SDK version 8.3.0.
- Maio SDK version 1.5.6.

#### [Version 1.5.6.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.5.6.0.zip)

- Verified compatibility with maio SDK version 1.5.6.
- Now requires Google Mobile Ads SDK version 7.68.0 or higher.

Built and tested with:

- Google Mobile Ads SDK version 7.68.0.
- Maio SDK version 1.5.6.

#### [Version 1.5.5.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.5.5.0.zip)

- Verified compatibility with maio SDK version 1.5.5.
- Now requires Google Mobile Ads SDK version 7.64.0 or higher.

Built and tested with:

- Google Mobile Ads SDK version 7.64.0.
- Maio SDK version 1.5.5.

#### [Version 1.5.4.0](https://dl.google.com/googleadmobadssdk/mediation/ios/maio/MaioAdapter-1.5.4.0.zip)

- Verified compatibility with maio SDK version 1.5.4.
- Now requires Google Mobile Ads SDK version 7.60.0 or higher.

Built and tested with:

- Google Mobile Ads SDK version 7.60.0.
- Maio SDK version 1.5.4.

#### Version 1.5.3.1

- To limit timeouts, ad requests will now immediately fail if maio does not have an ad ready to be shown.
- Removed support for the i386 architecture.

Built and tested with:

- Google Mobile Ads SDK version 7.58.0.
- Maio SDK version 1.5.3.

#### Version 1.5.3.0

- Verified compatibility with maio SDK version 1.5.3.

Built and tested with:

- Google Mobile Ads SDK version 7.55.1.
- Maio SDK version 1.5.3.

#### Version 1.5.2.1

- Fixed an issue where the adapter was not invoking the `-rewardedAdDidPresent:` callback.

Built and tested with:

- Google Mobile Ads SDK version 7.53.1.
- Maio SDK version 1.5.2.

#### Version 1.5.2.0

- Verified compatibility with maio SDK version 1.5.2.

Built and tested with:

- Google Mobile Ads SDK version 7.53.1.
- Maio SDK version 1.5.2.

#### Version 1.5.1.0

- Verified compatibility with maio SDK version 1.5.1.

Built and tested with:

- Google Mobile Ads SDK version 7.52.0.
- Maio SDK version 1.5.1.

#### Version 1.5.0.0

- Verified compatibility with maio SDK version 1.5.0.

Built and tested with

- Google Mobile Ads SDK version 7.51.0.
- Maio Ads SDK version 1.5.0.

#### Version 1.4.8.0

- Verified compatibility with maio SDK version 1.4.8.

#### Version 1.4.6.0

- Verified compatibility with maio SDK version 1.4.6.
- Updated the adapter to use the new rewarded API.
- Now requires Google Mobile Ads SDK version 7.42.2 or higher.

#### Version 1.4.2.0

- Verified compatibility with maio SDK version 1.4.2.

#### Version 1.4.1.0

- Verified compatibility with maio SDK version 1.4.1.
- Fixed an issue where maio adapter might fail if multiple MediaIds are provided from AdMob.

#### Version 1.4.0.0

- Verified compatibility with maio SDK version 1.4.0.

#### Version 1.3.2.0

- Verified compatibility with maio SDK version 1.3.2.

#### Version 1.3.1.1

- Added `adapterDidCompletePlayingRewardBasedVideoAd:` callback to the adapter.

#### Version 1.3.1.0

- Verified compatibility with maio SDK version 1.3.1.

#### Version 1.3.0.0

- Verified compatibility with maio SDK version 1.3.0.

#### Version 1.2.19.0

- Verified compatibility with maio SDK version 1.2.19.

#### Version 1.2.18.0

- First release!
- Added support for interstitials and rewarded videos ads.