Integrating Unity Ads with Mediation

This guide is intended for publishers who want to use the Google Mobile Ads SDK to load and display ads from Unity Ads via mediation. It covers how to add Unity Ads to an ad unit's mediation configuration, how to set up Ad Network Optimization (ANO), and how to integrate the Unity Ads SDK and adapter into an iOS app.

Supported ad formats and features

The AdMob mediation adapter for Unity Ads has the following capabilities:

Formats
Banners
Interstitials
Rewarded Video
Rewarded Video (new APIs)
Native Advanced
Features
Smart Banners
Ad Network Optimization (ANO)

Requirements

  • Xcode 9.2 or higher
  • iOS Deployment target of 8.0 or higher
  • Google Mobile Ads SDK 7.42.2 or higher

Step 1: Set up Unity ads

Sign up or log in to Unity Ads.

On the Unity Ads Dashboard, navigate to the Project tab and click the New Project button.

Fill out the form and click Add Project at the bottom of the page to add your project to Unity Dashboard.

Once your project is created, navigate to the Monetization > Placements tab of your project and take note of the Game ID.

To create a new placement, click the Add Placement button.

For additional instructions on creating an ad placement, select the tab corresponding to your preferred ad format.

Banner

Enter your desired Placement ID, select Banner as the ad format and click Create Placement.

Interstitial

Enter your desired Placement ID, select Interstitial Video as the ad format and click Create Placement.

Rewarded Video

Enter your desired Placement ID, select Rewarded Video as the ad format and click Create Placement.

In addition to the Game ID and the Placement ID you will also need Unity Ads API Key for setting up your AdMob ad unit ID. Navigate to the Ads Data Export > API Access tab of the Unity Ads Dashboard and take note of the GameAds API Access Key.

Step 2: Configure mediation settings for your AdMob ad unit

You need to add Unity Ads to the mediation configuration for your ad unit. First sign in to your AdMob account.

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 Unity Ads as an ad source.

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

AdMob Beta mediation tab

Enter your ad format and platform, then click Continue.

Give your mediation group a name, and select locations to target. Next, set the mediation group status to Enabled. Then click Add Ad Units, which will open up the ad unit selection overlay.

New mediation group 2

Associate this mediation group with your existing AdMob ad unit. Then click Done.

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

Mediation group ad units

Add Unity Ads as an ad source

In the Ad Sources card, select Add Ad Network. Then select Unity Ads.

Enable the Optimize switch. Enter your API Key obtained in the previous section to set up ANO for Unity Ads. Then enter an eCPM value for Unity Ads and click Continue.

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

Finally, click Save.

Using rewarded video ads

In the settings for your rewarded video ad unit, provide values for the reward amount and reward type. Then, to ensure you provide the same reward to the user no matter which ad network is served, check the Apply to all networks in Mediation groups box.

If you don't apply this setting, the Unity adapter defaults to a reward of type "" (empty string) with a value of 1. The Unity Ads SDK does not provide specific reward values for its rewarded video ads.

For more information on setting reward values for AdMob ad units, see Create an ad unit.

Step 3: Import the Unity Ads SDK and adapter

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

    pod 'GoogleMobileAdsMediationUnity'
    
  • From the command line run:

    pod install --repo-update

Manual integration

  • Download the latest version of the Unity Ads SDK, and link UnityAds.framework in your project.

  • Download the latest version of the Unity adapter and link UnityAdapter.framework in your project.

Step 4: Additional code required

No Additional code is required for Unity ads integration.

Step 5: Test your implementation

Test ads can be enabled from the Unity Ads dashboard in two ways.

If you want to enable test ads for all devices, navigate to the Settings > Project Settings tab of your project. Under the Test Mode section, edit the Client test mode not overridden section, check Override client test mode box, select Force test mode ON and click Save.

If you want to enable test ads only for specific devices, navigate to the Ads Data Export > Test Devices tab. Under the Test Devices section, click the Add New Device button and fill out the resulting form.

Optional steps

Under the Google EU User Consent Policy, you must ensure that certain disclosures are given to, and consents obtained from, users in the European Economic Area (EEA) regarding the use of device identifiers and personal data. This policy reflects the requirements of the EU ePrivacy Directive and the General Data Protection Regulation (GDPR). When seeking consent, you must identify each ad network in your mediation chain that may collect, receive, or use personal data and provide information about each network's use. Google currently is unable to pass the user's consent choice to such networks automatically.

Follow the instructions below to enable or disable personalized ads for Unity Ads.

Unity Ads provides a GDPR Compliance guide that describes both automatic and manual solutions for user consent.

The following sample code shows how to pass consent information to the Unity Ads SDK manually. Should you choose to pass consent information to the Unity Ads SDK manually, it is recommended that this code is called prior to requesting ads via the Google Mobile Ads SDK.

UADSMetaData *gdprConsentMetaData = [[UADSMetaData alloc] init];
[gdprConsentMetaData set:@"gdpr.consent" value:@YES];
[gdprConsentMetaData commit];

Unity Ads iOS Mediation Adapter Changelog

Version 3.3.0.0

  • Verified compatibility with unity ads SDK 3.3.0.
  • Now supports loading multiple banner ads at once.

Built and tested with

  • Google Mobile Ads SDK version 7.51.0.
  • Unity Ads SDK version 3.3.0.

Version 3.2.0.1

  • Verified compatibility with Unity Ads SDK 3.2.0.
  • Now requires Google Mobile Ads SDK version 7.46.0 or higher.
  • Fixed an issue where Unity Banner ads would fail to show when loaded.
  • Fixed an issue where the adapter was not properly forwarding the unityAdsReady callback.

Version 3.2.0.0

  • Release was removed due to a regression on no-fill reporting.

Version 3.1.0.0

  • Verified compatibility with Unity Ads SDK 3.1.0.

Version 3.0.3.0

  • Verified compatibility with Unity Ads SDK 3.0.3.
  • Now requires Google Mobile Ads SDK version 7.42.2 or higher.
  • Added support for flexible banner ad sizes.
  • Fixed an issue where Unity Banner ads would only successfully load once per session.

Version 3.0.1.0

  • Verified compatibility with Unity Ads SDK 3.0.1.
  • Fixed a crash that occurred when deallocating rewarded ads.

Version 3.0.0.3

  • Updating adapter to use new rewarded API.
  • Now requires Google Mobile Ads SDK version 7.41.0 or higher.

Version 3.0.0.2

  • Added support for banner ads.

Version 3.0.0.1

  • Fixed an issue where the adapter stores the 'placementId' of previous request.

Version 3.0.0.0

  • Verified compatibility with Unity Ads SDK 3.0.0.

Version 2.3.0.0

  • Verified compatibility with Unity Ads SDK 2.3.0.

Version 2.2.1.1

  • Added adapterDidCompletePlayingRewardBasedVideoAd: callback to the adapter.

Version 2.2.1.0

  • Verified compatibility with Unity Ads SDK 2.2.1.

Version 2.2.0.0

  • Verified compatibility with Unity Ads SDK 2.2.0.

Version 2.1.2.0

  • Verified compatibility with Unity Ads SDK 2.1.2.
  • Removed the support for 'armv7s' architecture.

Version 2.1.1.0

  • Verified compatibility with Unity Ads SDK 2.1.1.

Version 2.1.0.0

  • Updated the adapter to make it compatible with Unity Ads SDK 2.1.0.

Version 2.0.8.0

  • Verified compatibility with Unity Ads SDK 2.0.8.

Version 2.0.7.0

  • Adapter now tracks Unity Ads clicks so the AdMob and the Unity Ads click statistics can match up.
  • Apps now get interstitialWillLeaveApplication: and rewardBasedVideoAdWillLeaveApplication: callbacks.

Version 2.0.6.0

  • Verified compatibility with Unity Ads SDK 2.0.6.

Version 2.0.5.0

  • Verified compatibility with Unity Ads SDK 2.0.5.

Version 2.0.4.0

  • Changed the version naming system to [Unity Ads SDK version].[adapter patch version].
  • Updated the minimum required Unity Ads SDK to v2.0.4.
  • Updated the minimum required Google Mobile Ads SDK to v7.10.1.

Version 1.0.2

  • Made the user reward item's key non nil. The reward key will always be an empty or a valid string.

Version 1.0.1

  • Fixed bug where the rewardBasedVideoAdDidOpen: callback wasn't getting called.

Version 1.0.0

  • Supports interstitial and reward-based video ads.