Unity Plugin Integration

Before You Start

We support Unity version 5 and up.

Step 1. Add the IronSource Unity Package to Your Project

 Disclaimer: Updating the ironSource SDK
When upgrading from older SDK versions to the ironSource SDK 6.7.0 and above, you must update all mediation adapters. 

Follow these steps to add the IronSource Unity Package to your project:

  1. Download Unity Plugin Version 6.8.0.1
  2. Make sure your Unity project is opened and import the Unity package.
  3. Double-click on the extracted file; the different files will be populated automatically as shown below:
    unity-project

Important! Using the Unity Editor with the ironSource SDK
The ironSource SDK is designed to work with the Android & iOS platform. The Unity Editor contains a Simulator to work with Unity code. In order to work with our plugin, you must target either an Android or iOS build to test the integration.

ironSource Mediation Demo App

The Integration Demo application demonstrate how to integrate the ironSource Mediation in your app

Download Unity Demo Application

Step 2. Google Play Services

Make sure you integrate Google Play Services correctly.

 
ironSource Mediation SDK only supports google-play-services up to version 15.0.0, please do not integrate any higher version.

Gradle Integration (Recommended)

  1. Go to Build Settings -> Publishing Settings and check Custom Gradle Template
    screen-shot-2018-10-31-at-15-01-13This will generate template gradle file inside Assets -> Plugins -> Android called mainTemplate.gradle
    screen-shot-2018-10-31-at-15-02-10
  2. make sure you have the following lines inside  allprojects->repositories block
    allprojects {
      repositories {
         flatDir {
           dirs 'libs'
         }
         google()
      }
    }
  3. Add the Play Services dependencies under the dependencies block

    dependencies {
        // Your other dependencies //
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.google.android.gms:play-services-ads:15.0.0'
        **DEPS**
        // Your other dependencies //
    }

Manual Integration

  1. Download the support-v4-[version].jarAdd the jar to your project under App/Libs.
  2. Google Play Services in Your Android Manifest
    Add the following  inside the <application> tag in your AndroidManifest:

    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
  3. Go to android studio open the ironSource demo app
  4. Go to app’s gradle and change the google play services version to the one you want (not higher than 15.0.0).
  5. ironSource SDK requires  google play services Basement and google play services Identifier, while other networks may also require additional google play services.
  6. Sync gradle, and the version will be added to the folder above in the gradle/caches file, it’s aar and not jar – to turn jar into aar :
    1. change the file name from .aar to .zip
    2. click ‘use .zip’
    3. unzip

    4. open the folder and you will find the jar

For additional information, follow this guide on how to integrate the Google Play Services AAR.

Step 3. Additional Settings for iOS

  1. Add Ad-Support.framework to Your Xcode Project 
    Our Unity Plugin usually adds all the required frameworks automatically. In some cases, the AdSupport.framework can’t be added automatically using Unity 5. Verify if the framework has been added and in the case it has not been added automatically, make sure to add it manually.
  2. iOS9 App Transport Security Settings
    Important!
     In iOS9, Apple has added in controls around ‘ATS’. In order to ensure uninterrupted support for ironSource Ad delivery across all Mediation Networks, it’s important to make the following changes in your info.plist:

    • Add in a dictionary called ‘NSAppTransportSecurity‘. Make sure you add this dictionary on the ‘Top Level Key‘.
    • Inside this dictionary, add a Boolean called ‘NSAllowsArbitraryLoads‘ and set it to YES.
      Supersonic iOS9 App Transport Security Settings
       Note: Make sure that your info.plist does not contain any other exceptions besides ‘NSAllowsArbitraryLoads‘, as this might create a conflict.

Step 4. Initialize the Ad Units

ironSource supports optional SDK settings such as UserID and Segments that must be configured before you initialize the SDK. See our guide on Additional SDK Settings for setup instructions.
Note: If you’re serving the Offerwall ad unit or using server-to-server callbacks to reward your users with our rewarded ad units, you must set the UserID.

Application State

First, you’ll need to pass the state of the application by executing the following event function during the Application Lifecycle.

Call onApplicationPause in each of the Unity Scenes:

void OnApplicationPause(bool isPaused) {                 
  IronSource.Agent.onApplicationPause(isPaused);
}

Init the Plugin & Ad Units

You can initialize the plugin in two ways. We recommend the first method as it will fetch the specific ad units you define.

  1. This method will init the specific ad units mentioned in the adUnits parameter:
    IronSource.Agent.init (YOUR_APP_KEY, IronSourceAdUnits.REWARDED_VIDEO, IronSourceAdUnits.INTERSTITIAL, IronSourceAdUnits.OFFERWALL, IronSourceAdUnits.BANNER);
    

    New! When using this init approach, you can now initialize each ad unit separately at different touchpoints in your app flow in one session.

    //For Rewarded Video
    IronSource.Agent.init (YOUR_APP_KEY, IronSourceAdUnits.REWARDED_VIDEO);
    //For Interstitial
    IronSource.Agent.init (YOUR_APP_KEY, IronSourceAdUnits.INTERSTITIAL);
    //For Offerwall
    IronSource.Agent.init (YOUR_APP_KEY, IronSourceAdUnits.OFFERWALL);
    //For Banners
    IronSource.Agent.init (YOUR_APP_KEY, IronSourceAdUnits.BANNER);
  2. Alternatively, you can init the SDK as detailed below and the SDK will init the ad units you’ve configured on the ironSource platform:
    IronSource.Agent.init (YOUR_APP_KEY);

Step 5. Verify Your Integration

The ironSource SDK provides an easy way to verify that your Rewarded Video Mediation integration was completed successfully. To verify your ironSource SDK integration as well as any additional Ad Networks you have implemented, simply add this method to your project:

IronSource.Agent.validateIntegration();

For more details on the ironSource Integration Verification tool navigate to this article.

For Proguard Users Only

If you are using ProGuard with the ironSource SDK, you must add the following code to your ProGuard file (Android Studio: proguard-rules.pro or Eclipse: proguard-project.txt):

-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface {
    public *;
}
-keepclassmembers class * implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
}
-keep public class com.google.android.gms.ads.** {
   public *;
}
-keep class com.ironsource.adapters.** { *;
}
-keep class com.ironsource.unity.androidbridge.** { *;
}

-dontwarn com.ironsource.mediationsdk.**
-dontwarn com.ironsource.adapters.**
-dontwarn com.moat.**
-keep class com.moat.** { public protected private *; }

Done!
You are now ready to start working with ironSource’s Ad Units and Mediation Tools.


What’s Next?

Once you’ve verified your integration with the Integration Helper, follow our integration guides and implement our Ad Units:

Interested in Mediation? Integrate our Rewarded Video or Interstitial Ads in your app and follow our Mediation articles.

You can read this article in: