<br />

[Video](https://www.youtube.com/watch?v=Gsd26EuSg4g)

This guide explains how to receive test ads in your ads integration. It is
important to use test ads during development so that you can click on them
without charging Google advertisers. If you click on too many ads without being
in test mode, you risk your account being flagged for invalid activity.

There are two ways to get test ads:

1. Use one of Google's [demo ad units](https://developers.google.com/admob/ios/test-ads.md.txt#demo_ad_units).
2. Use your own ad unit and [enable test mode](https://developers.google.com/admob/ios/test-ads.md.txt#enable_test_devices).

## Prerequisite

Before you continue, [set up Google Mobile Ads SDK](https://developers.google.com/admob/ios/quick-start.md.txt).

## Demo ad units

The quickest way to enable testing is to use Google-provided demo ad units.
These ad units are not associated with your AdMob
account, so there's no risk of your account generating invalid traffic when
using these ad units.

> [!IMPORTANT]
> **Key Point:** Make sure you replace these IDs with your own ad unit ID before publishing your app.

Here are demo ad units that point to specific test creatives for each format:

| Ad format | Demo ad unit ID |
|---|---|
| [App Open](https://developers.google.com/admob/ios/app-open.md.txt) | `ca-app-pub-3940256099942544/5575463023` |
| [Anchored Adaptive Banner](https://developers.google.com/admob/ios/banner.md.txt) | `ca-app-pub-3940256099942544/2435281174` |
| [Inline Adaptive Banner](https://developers.google.com/admob/ios/banner/inline-adaptive.md.txt) | `ca-app-pub-3940256099942544/2435281174` |
| [Fixed Size Banner](https://developers.google.com/admob/ios/banner/fixed-size.md.txt) | `ca-app-pub-3940256099942544/2934735716` |
| [Interstitial](https://developers.google.com/admob/ios/interstitial.md.txt) | `ca-app-pub-3940256099942544/4411468910` |
| [Rewarded Ads](https://developers.google.com/admob/ios/rewarded.md.txt) | `ca-app-pub-3940256099942544/1712485313` |
| [Rewarded Interstitial](https://developers.google.com/admob/ios/rewarded-interstitial.md.txt) | `ca-app-pub-3940256099942544/6978759866` |
| [Native](https://developers.google.com/admob/ios/native.md.txt) | `ca-app-pub-3940256099942544/3986624511` |
| [Native Video](https://developers.google.com/admob/ios/native/video-ads.md.txt) | `ca-app-pub-3940256099942544/2521693316` |
| [Picture-in-picture](https://developers.google.com/admob/ios/picture-in-picture.md.txt) | `ca-app-pub-3940256099942544/8810945611` |

## Enable test devices (Test mode)

If you want to do more rigorous testing with production-looking ads, you can
now configure your device as a test device and use your own ad unit IDs that
you've created in the AdMob UI.

Test devices can either be added in the AdMob UI or programmatically using
Google Mobile Ads SDK.


Follow the steps below to add your device as a test device.

> [!IMPORTANT]
> **Key Point:** iOS simulators are automatically configured as test devices.

### Add your test device in the AdMob UI

For a simple, non-programmatic way to add a test device and test new or existing
app builds, use the AdMob UI. [Learn
how](https://support.google.com/admob/answer/9691433).

> [!IMPORTANT]
> **Key Point:** New test devices typically start serving test ads in your app within 15 minutes, but it can also take up to 24 hours.

### Use app-level test mode

To specify apps and versions to test, and receive test ads, use app-level test
mode. For details, see
[Set up a test app](https://support.google.com/admob/answer/17080939).

### Add your test device programmatically

If you want to test ads in your app as you're developing, follow the
steps below to programmatically register your test device.

1. Load your ads-integrated app and make an ad request.
2. Check the console for a message that looks like this:

   ```
   <Google> To get test ads on this device, set:
   GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers =
   @[ @"2077ef9a63d2b398840261c8221a0c9b" ];
   ```
   Copy your test device ID to your clipboard.
3. Modify your code to set the test device ID through
   [`testDeviceIdentifiers`](https://developers.google.com/admob/ios/api/reference/Classes/GADRequestConfiguration.md.txt#testdeviceidentifiers):

   ### Swift

   ```swift
   let testDeviceIdentifiers = ["2077ef9a63d2b398840261c8221a0c9b"]
   MobileAds.shared.requestConfiguration.testDeviceIdentifiers = testDeviceIdentifiers
   ```

   ### Objective-C

   ```objective-c
   NSArray *testDeviceIdentifiers = @[ @"2077ef9a63d2b398840261c8221a0c9b" ];
   GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers = testDeviceIdentifiers;
   ```

   > [!CAUTION]
   > **Caution:** Be sure to remove the code that sets these test devices before you release your app.

4. Re-run your app. If the ad is a Google ad, you'll see a **Test mode** label
   centered at the top of the ad (banner, interstitial, or rewarded ad):

   ![](https://developers.google.com/static/admob/images/ios-testad-0-admob.png)

   > [!NOTE]
   > **Note:** To see the **Test mode** label, you need to be using an SDK version of 7.59.0 or higher. In versions 7.26.0 to 7.58.0 the label will say Test Ad.

   For native advanced ads, the headline asset is prepended with the string
   **Test mode**.

   ![](https://developers.google.com/static/admob/images/native-testad-ios.png)

Ads with this **Test mode** label are safe to click. Requests, impressions, and
clicks on ads in test mode won't show up in your account's reports.

> [!NOTE]
> **Note:** Mediated ads do *NOT* render a **Test mode** label. See the following section for details.

## Testing with mediation

Google's demo ad units only show Google ads. To test your mediation
configuration, you must use the [enable test devices](https://developers.google.com/admob/ios/test-ads.md.txt#enable_test_devices)
approach.

Mediated ads do *not* render a **Test mode** label. You are responsible for
ensuring that test mode is enabled for each of your mediation networks so that
these networks don't flag your account for invalid activity. See each network's
respective [mediation guide](https://developers.google.com/admob/ios/mediation.md.txt) for
more information.

If you aren't sure whether a mediation ad network adapter provides a test mode,
it is safest to avoid clicking on ads from that network during development. You
can use the
[`adNetworkClassName`](https://developers.google.com/admob/ios/api/reference/Classes/GADBannerView.md.txt#adnetworkclassname)
property on any of the ad formats to figure out which ad network served the
current ad.