Interstitial Integration for Web

Follow this guide to integrate the ironSource interstitial for web to monetize your website or application!

Step 1. Add Your Site/App to the ironSource Platform

First, log in to your ironSource account here. Then you’ll need to add your app to our platform.

Add Your App

  1. Navigate to the ‘Apps‘ tab in the left menu and select ‘New App‘ from the top right corner:
    ironsource-application-management
  2. Choose ‘Web App‘, fill in the app’s name and URL:
    web-app-1

Default Placement

Navigate to the Ad Units & Placements page and keep the “Rewarded Item Name” and “Reward Amount” as the default:

Activate the Ad Unit

To go live with the Interstitial ad unit, you will need to reach out to your account manager.

Step 2. Integrate the SDK in Your Site/App

Integrate the SDK

To integrate the ironSource SDK with your site/application with our SDK, add the following code to your site:

   <script src="https://static.ultra-rv.com/rv-min.js"></script>
   <script type="text/javascript">
       var ironRV = IronRV.getInstance({
                applicationKey : "APPLICATION_KEY",
                applicationUserId : "APPLICATION_USER_ID",
                adunit : "ins"
        });
 </script>
  • Application Key: the unique identifier for your app in ironSource’s system. This parameter can be found in the Ad Units & Placements page in your ironSource account:
    web-app-key
  • Application user IDThe user ID is a unique identifier for each of your users that you need to set. We support NSString from 1 to 64 characters.

Show Interstitial

The JS-Tag checks the availability of campaigns for the user. If there are available campaigns – you will be notified by the “ready” event. Once ready, you can display the unit, i.e. between levels or activities. Once location is determined, you must call the following function:

ironRV.show();

Events:

ready Arguments:  None
ironRV.addListener(IronRV.EVENTS.READY, function() {
      console.log("Ready");
});
open Arguments:  None
ironRV.addListener(IronRV.EVENTS.OPEN, function() {
      console.log("Opened");
});
close Arguments:  None.
Fired when the close button is clicked.
ironRV.addListener(IronRV.EVENTS.CLOSE, function() {
      console.log("Closed");
});
completion Arguments:  None.
Fired when the user completed the offer. Use this event to gain information on the amount of rewards and award the user accordingly.
ironRV.addListener(IronRV.EVENTS.COMPLETION, function() {
      console.log("Completion");
});
no_campaigns Arguments:  None.
Fired when user has completed all offers in the current session.
ironRV.addListener(IronRV.EVENTS.NO_CAMPAIGNS,function() {
      console.log("No Campaigns");
});
onAdBlockDetected Arguments: None.
Fired when system detects an AdBlock on the client.
ironRV.addListener(IronRV.EVENTS.AD_BLOCK, function() {
            ironRV.showAdBlockMessage();
        });
resize
Argumentsdimensions.
ironRV.addListener(IronRV.EVENTS.RESIZE, function(dimensions) {
 console.log(dimensions.width);
 console.log(dimensions.height);
});
init_error
Arguments : None.
Fired when user session is blocked by the ad server (can be variety of reasons why)
ironRV.addListener(IronRV.EVENTS.INIT_ERROR, function() {
 console.log("init error");  
});

Full Sample Code:

<html>
<head>
  <script src="https://static.ultra-rv.com/rv-min.js"></script>
  <script type="text/javascript">
	 var params = {
		applicationKey		: "62566aa5",
		applicationUserId	: "my-user-id",
             adunit : ״ins״
	 };
	 ironRV = IronRV.getInstance(params);
	 ironRV.addListener(IronRV.EVENTS.READY, function() {
		console.log("Ready");
	 });	
	 ironRV.addListener(IronRV.EVENTS.OPEN, function() {
		console.log("Opened");
	 });				
	 
	 ironRV.addListener(IronRV.EVENTS.CLOSE, function() {
		console.log("Closed");
	 });	
	 ironRV.addListener(IronRV.EVENTS.NO_CAMPAIGNS, function() {
		console.log("No Campaigns");
	 });
	
	 ironRV.addListener(IronRV.EVENTS.COMPLETION, function() {
		console.log("Completion");
	 });	
	
	 function showRV() {
		ironRV.show();
	 }
  </script>
</head>
<body>
  <button onClick="showRV()">ShowRV</button>
</body>
</html>

Step 3. Add the Callback to Your Site/App (Optional)

By default, you will receive callbacks to your client to inform you of completions and user rewards. In addition, if you wish to receive callbacks to your server, follow the below instructions to set these up.

Note: Note: If you’re using callbacks to trigger awards to your users, make sure to not reward the user twice. You should use only one type of callback (client-side or server-side) to prompt rewards.

S2S Callback URL

Our server-to-server callback is an HTTP GET script that will be called from our servers to inform you about a commission event. The URL must include the following placeholders, which can be located anywhere in your URL, according to your preference:

Placeholder Mandatory Description
[USER_ID] Mandatory The identification of the user to be credited. Note that the URL-encoded form will be passed in this placeholder, for example, “123%40abc.com” rather than “123@abc.com”
[REWARDS] Mandatory The amount of points to be credited to the user.
Note: Note: You can use this callback to your server instead of client-side completion callback to trigger rewards to your users.
[EVENT_ID] Mandatory A unique identifier of the commission event, represented as a MD5 string (32 alphanumeric characters)
[ITEM_NAME] Optional This placeholder is for publishers using the “item unlock” parameters. More details in the Advanced Settings table
Private Key Highly Recommended A custom string which will be used to hash each callback call and other sensitive information. You can use it in order to verify the authenticity of callback events.
Admin user id Optional Your personal user ID for this application/site. Offers that are presented to this particular user ID can be manipulated for testing purposes. Encode this user ID (for example, enter “123@abc.com” rather than “123%40abc.com”). More details in the callback functionality section below.

HTTP Callback Parameters

Our system will automatically add two parameters to the HTTP callback URL:

  1. Timestamp – a string representation of the exact timestamp in which this callback has been called, in the following format: [4 digit year][2 digit month][2 digit day][2 digit hour][2 digit minute], e.g. “201701021455” stands for January 2, 2017 14:55.
  2. Signature – an MD5 hash string based on sensitive parameters, which you can use to verify that the callback came from our system. This key is generated automatically based on the following formula:
    md5([TIMESTAMP][EVENT_ID][USER_ID][REWARDS][PRIVATE_KEY]). The [USER_ID] element is the URL-decoded value of the userID (for example, “123@abc.com” rather than “123%40abc.com”).

In addition, you will receive a Private Key. The [PRIVATE_KEY] element is the exact string that you supplied when you defined your application/site. By generating the MD5 hash string using the very same parameters on your side and comparing it to the value in the signature parameter that you received from us, you can safely authenticate each callback event.

HTTP Callback Custom Parameter

In order to pass custom parameter within the callback , you will need to add another parameter during the initialization of the API called “pubCustomParams”:

  • This parameter can be used for any type of information you want pass in the callback
  • This parameter accepts type of array with pair of “key:value” separated by comma
  • The SDK supports up to three custom parameters that can be sent every time
  • The custom parameter have to be url encoded string

Sample Code:

<script type="text/javascript">
	 var ironRV = IronRV.getInstance({
		applicationKey		: "APPLICATION_KEY",
		applicationUserId	: "APPLICATION_USER_ID",
		pubCustomParams      : [custom1:”value1”,custom2:”value2”]
	 });
  </script>

Callback Functionality

Whenever a commission event is generated, our server will call your callback URL and provide the necessary information you need to credit the relevant user.

Our server will keep calling this URL periodically for every commission until it receives a valid HTTP response with status 200 (Ok), where the “[EVENT_ID]:OK” string appears somewhere in the HTTP response.

Here is an example of a typical response:

<xml>
<status>dae8e6cf42b1357f8652ad6ecb5b24f1:OK</status>
</xml>

Thanks to this methodology, any temporary communication problems will not prevent crucial information from reaching its destination.

Important: If a timeout is reached (no response to the server for longer than 60 seconds), the HTTP call will be considered an error and will be followed up by an additional callback. To prevent situations of faulty extra credits resulting from timeouts, you should rely on the [EVENT_ID] parameter and ignore multiple calls made for the very same commission. As a rule, our system will never call the same commission with the same [EVENT_ID] more than once, unless a previous attempt yielded an HTTP error of any kind or if the “[EVENT_ID]:OK” string cannot be detected in the HTTP callback response.

We recommend taking additional measures to secure callbacks.  You may reject any calls that do not originate from the following IP addresses:

  • 79.125.5.179
  • 79.125.26.193
  • 79.125.117.130
  • 176.34.224.39
  • 176.34.224.41
  • 176.34.224.49
  • 34.194.180.125
  • 34.196.56.165
  • 34.196.251.81
  • 34.196.253.23
  • 54.88.253.218
  • 54.209.185.78

Pangle Audience Network Integration Guide

This guide instructs you step-by-step on how to set Pangle Audience Network live on the ironSource mediation platform.

Before You Start

  • Pangle Audience Network serves ads to users in China and Japan only.

Step 1. Create an Pangle Audience Network Account

To access Pangle’s Audience Network ad inventory through ironSource‘s mediation platform, you must create an account with Pangle Audience Network. You can do so here.

Step 2. Create an Application in Pangle Audience Network

Next, you must add the app in your Pangle Audience Network account.

Add Your App

  1. Log into your Pangle Audience Network account. On your dashboard, hover the ‘Applications and click ‘Apps’
  2. Add your app manually or simply select an existing app to monetize.

Step 3. Activate Pangle Audience Network in Your ironSource Network Setup Module

Serving Pangle’s Audience Network ads through the ironSource mediation platform has never been this easy. Sign in to your Pangle Audience Network account when setting up Pangle Audience Network on the ironSource SDK Networks setup page and insert all the necessary parameters to run Pangle Audience Network Interstitials and Rewarded Videos!

Account Settings

App Settings

There are parameters from your Pangle Audience Network account which needs to be entered into your ironSource network setup module in order for Pangle Audience Network to connect properly with ironSource:

User ID
The unique ID assigned to your user on
Pangle’s Audience Network dashboard.
Secure Key
Key generated by Pangle Audience Network for reporting API purposes
Application ID
The unique ID assigned to your app on
Pangle’s Audience Network dashboard.
Placement ID
The unique ID assigned to the ad you have created on Pangle’s Audience Network dashboard.


Once you obtain this information, you must configure Pangle’s Audience Network Parameters in your ironSource Account. By adding the above information correctly, you will be able to take full advantage of Pangle’s Audience Network ad inventory and reporting data on the ironSource mediation platform.

User ID

Once you logged in to your Pangle Audience Network account, you can find your User ID on the top-right corner of the dashboard


Secure Key

To retrieve your Pangle Audience Network Secure key, please contact the Pangle Audience Network team.

Application ID

Once you have created an application in the Pangle’s Audience Network dashboard (as described in step 2), You can find your Application ID under ‘Apps‘ (hover the ‘Applications and click ‘Apps’).

Placement ID

Once you have created an application in the Pangle’s Audience Network dashboard, you will need to include ads. Hover over ‘Application and click ‘Ad placements.
Add your Placement manually or simply select an existing placement to get its Placement ID.

Step 4. Add the Pangle Audience Network Adapter to Your Build

Note:

Verify Your Ad Network Integration

The ironSource SDK provides an easy way to verify that your mediation integration was completed successfully. To verify your ironSource and additional ad networks’ integration, follow this document.

Done!
You are now all set to deliver Pangle Audience Network within your application!

ironSource is ready for the CCPA

The information included in this article is not up to date. Click here for the most recent information available on CCPA compliance.

With the California Consumer Privacy Act (known as the CCPA) now in effect, we would like to share information on how ironSource Mobile (ironSource) complies with the CCPA, and what our partners need to do to be compliant with the CCPA when working with ironSource. This article is for informational purposes only; for legal advice, you should consult with your legal counsel.

ironSource network is ready for the CCPA

ironSource’s usage of personal information is not considered a “sale”

Under the CCPA, the definition of “sale” is very broad. Accordingly, we took a conservative approach to how we use the personal information about end users with devices that we detect to be located in California (based on the device’s IP address) within the ironSource network. 

As of January 1, 2020, by default, ironSource will use personal information about end users with devices that we detect to be located in California (based on the device’s IP address) only as a “service provider”, and for permitted “business purposes” such as fraud prevention and frequency capping. ironSource network, by default, will serve only contextual ads to end users located in California.

ironSource does not sell personal information to third parties

ironSource does not engage in buying or selling of end-user information to or from third parties, such as data brokers and other data aggregators. However, as the definition of “sale” under the CCPA is very broad, we will disable (by default) any external DSPs, SSPs, and other external ad providers with respect to any end users located in California (based on the device’s IP address), unless such third parties can serve contextual ads without receiving any personal information. We will still send personal information to attribution companies (e.g., Appsflyer, Singular, and Adjust) for the purpose of ensuring that the publisher and ironSource receive payment for ads served to end users, frequency capping, and fraud detection and prevention.

ironSource supports receipt of access and deletion requests

Follow the instructions to submit access and deletion requests to ironSource.  

Will ironSource network support receipt of “do not sell” requests? 

ironSource does not need to receive “do not sell” requests because ironSource’s use of personal information is not considered a “sale” and ironSource does not sell personal information to third parties. However, our technical and compliance teams have released additional features that will help you communicate user choices, including exposing an API for communicating “do not sell” requests. We will update our publishers upon release of such features.

Learn how:

Android

iOS

Unity

 

Will ironSource surface its own “opt out” UI? 

Our experience complying with other privacy laws has shown that most of our partners prefer to have their own user choices UI. In addition, adoption of third-party UIs for users’ choices among game developers is generally low, so ironSource won’t surface our own UI at this time. However, we are monitoring trends and partner requests, so this decision may change in the future.

ironSource mediation and the CCPA

ironSource SDK introduced a client-side API to allow publishers to pass “do not sell” requests under the CCPA to ironSource mediation on behalf of their users. ironSource will share “do not sell” requests with relevant networks who support the API accordingly. 

Below is a list of SDK networks which are currently support the API: 

Network Supported adapter version
iOS Android Unity
ironSource 6.14.0 (SDK) 6.14.0 (SDK) 6.14.0 (SDK)
AdMob 4.3.10  (SDK 6.15.0.1) 4.3.8  (SDK 6.15.0.1) 4.3.11 (SDK 6.15.0.1)
Amazon 4.3.3   (SDK 6.15.0.1) 4.3.1  (SDK 6.15.0.1) 4.3.3   (SDK 6.15.0.1)
AppLovin 4.3.9   (SDK 6.14.0) 4.3.8  (SDK 6.14.0) 4.3.10 (SDK 6.14.0)
Fyber 4.3.4  (SDK 6.15.0.1) 4.3.3  (SDK 6.15.0.1) 4.3.4   (SDK 6.15.0.1)
Mintegral 4.1.4  (SDK 6.14.0) 4.1.1  (SDK 6.14.0) 4.1.4   (SDK 6.14.0)
UnityAds 4.3.0  (SDK 6.15.0) 4.3.0  (SDK 6.15.0) 4.3.0   (SDK 6.15.0)

*Important Note* It is recommended that publishers work directly with their own legal and professional advisors to determine exactly how CCPA or any other laws/regulations may or may not apply to them. The above information is solely intended to help facilitate compliance when working with ironSource, and should not be construed as legal advice.

Taxonomy

category genre sub genre
Casual
Hyper Casual
stacking
dexterity
rising/falling
swerve
merge
idle
.io
puzzle
tap/Timing
turning
ball
other
AR/Location Based aR/locationBased
Puzzle
actionPuzzle
match3
bubbleShooter
jigsaw
crossword
word
trivia
board
coloring Games
hidden Objects
solitaire
nonCasinoCardGame
otherPuzzle
Arcade
platformer
idler
shootEmUp
endlessRunner
towerDefense
otherArcade
Lifestyle
customization
interactiveStory
music/band
otherLifestyle
Simulation
adventures
breeding
tycoon/crafting
sandbox
cooking/timeManagement
farming
idleSimulation
otherSimulation
Kids & Family kids&Family
Other Casual otherCasual
Casino
Casino
bingo
poker
nonPokerCards
blackjack
slots
sportsBetting
Other Casino otherCasino
Mid-Core
Shooter
battleRoyale
classicFPS
snipers
tacticalShooter
otherShooter
RPG
actionRPG
turnBasedRPG
fighting
MMORPG
puzzleRPG
survival
idleRPG
otherRPG
Card Games cardBattler
Strategy
4xStrategy
build&Battle
MOBA
syncBattler
otherStrategy
Other Mid-Core otherMidCore
Sports & Racing
Sports
casualSports
licensedSports
Racing
casualRacing
simulationRacing
otherRacing
Other Sports & Racing otherSports&Racing
Non-Gaming
Books & Reference books&Reference
Dating dating
Education education
Entertainment entertainment
Finance finance
Food & Drink food&Drink
Health & Fitness health&Fitness
Maps & Navigation maps&Navigation
Medical medical
Music & Audio music&Audio
News & Magazines news&Magazines
Parenting parenting
Photography photography
Shopping
shopping
marketplace
Social social
Sports sports
Travel Air & Hotel travelAir&Hotel
Travel & Local travel&Local
Comics comics
Communications communications
Events & Tickets events&Tickets
Real Estate & Home realEstate&Home
Lifestyle lifestyle
Personalization personalization
Transportation
carSharing
taxi/RideSharing
bike
Other Non-Gaming otherNonGaming

iOS 13 Ad Network Status

With the release of iOS 13 and Xcode 11, some SDKs are required to adjust their codes to fit the newest guidelines.

Starting iOS 6.8.7 SDK, ironSource SDK is iOS 13 and XCode 11 ready. 
Prior to updating your applications with XCode 11, check the readiness of the SDKs you work with:

Ad Network XCode 11 Ready From Which Adapters
AdColony V iOS 4.1.6, Unity 4.1.9
AdMob V iOS 4.3.6, Unity 4.3.7
Amazon V iOS 4.3.2, Unity 4.3.2
AppLovin V iOS 4.3.4, Unity 4.3.5
Chartboost V iOS 4.1.7, Unity 4.1.10
Meta Audience
Network
V iOS 4.3.7, Unity 4.3.8
Digital Turbine V iOS 4.3.1, Unity 4.3.1
HyprMX V iOS 4.1.3, Unity 4.1.3
InMobi V iOS 4.3.3, Unity 4.3.3
Maio V iOS 4.1.4, Unity 4.1.4
Tapjoy V iOS 4.1.7, Unity 4.1.9
TikTok V iOS 4.1.1, Unity 4.1.1
UnityAds V iOS 4.1.6, Unity 4.1.7
Vungle V iOS 4.1.7, Unity 4.1.9

 

Titles API

“Title” is the entity of your application in ironSource promote section.

The Title API allows you to get the list of titles (bundles) linked to your account.

Authentication

Bearer API authentication

Get Titles

Description: Use this API to retrieve a list of all of your titles (bundles). The response will include the following fields: id, bundleId, os, name.

Required Parameters: None

Method: GET

Endpoint: https://api.ironsrc.com/advertisers/v2/titles?

Parameters:

Name
Mandatory
Data type

Description

os No String Filter titles of a specified os. (Options: ios, android).
searchTerm No String Filter by the name or partial name of the title.
requestId No Number Used for paginated requests.
resultsBulkSize No Number Used for paginated requests.
pageNumber No Number Used for paginated requests.

Request Example

Get https://api.ironsrc.com/advertisers/v2/titles?

Response example

{
  "titles": [
    {
      "id": 113366,
      "bundleId": "com.yourcompany.MiniGame",
      "os": "android",
      "name": "Gaming mania"
    },
    {
      "id": 225566,
      "bundleId": "com.yourcompany.BestGame",
      "os": "ios",
      "name": "The Best Game"
    },
    {
      "id": 773366,
      "bundleId": "com.yourcompany.MusicGame",
      "os": "ios",
      "name": "Guitar Music"
    },
    {
      "id": 667722,
      "bundleId": "com.yourcompany.zombie2",
      "os": "android",
      "name": "Zombie Games"
    },
    {
      "id": 123456,
      "bundleId": "com.yourcompany.DancingWar",
      "os": "android",
      "name": "Dancing War"
    }
  ],
  "totalResultsCount": 5,
  "requestId": "MzUzMjIuODI5OTk5OS41LjI5"
}

For better performance – we strongly recommend to work with pagination requests in all cases,

To do so you should use ‘resultsBulkSize’ parameter – This parameter will limit the amount of the results you get in the response.

In order to get the next bulk of results, use ‘pageNumber’ parameter, combined with the ‘requestId’ parameter – which is received in the first response.

Pagination request Example URL:

In the first request you set the results number limitation: https://api.ironsrc.com/advertisers/v2/titles?resultsBulkSize=2

Pagination response example:

{
  "titles": [
    {
      "id": 113366,
      "bundleId": "com.yourcompany.MiniGame",
      "os": "android",
      "name": "Gaming mania"
    },
    {
      "id": 225566,
      "bundleId": "com.yourcompany.BestGame",
      "os": "ios",
      "name": "The Best Game"
    }
  ],
  "totalResultsCount": 5,
  "requestId": "MzUzMjIuODI5OTk5OS41LjI5"
}

For the next pages, use the requestId from the response and the required pageNumber.

For example: https://api.ironsrc.com/advertisers/v2/titles?requestId=MjE2MDkzLjUwMTEwMC4yLjE5&pageNumber=2

Keep increasing the ‘pageNumber’ param to get the following pages.

Create Titles

Description: Use this API to create title on ironSource platform.

Note: This function is not supported via API at the moment.

Mintegral Integration Guide

This guide will instruct you step-by-step on how to set Mintegral live as an Ad Network on the ironSource Mediation platform.

Before you start

Make sure you have correctly integrated ironSource’s Rewarded Video, Interstitial or Banner into your application.

Step 1. Create a Mintegral Account

  1. Create an account with Mintegral. You can do so here.
  2. Once your account has been verified, you can login at their partner login here.

Step 2. Create an Application in Mintegral

Already set up your application(s) at Mintegral? Skip to here.

First Time Setup Process
If this is your first time setting up a Mintegral account, continue below.

  1. Login
    1. When you log in for the first time, select ‘APP Setting
  2. Add Your App
    1. Upon clicking ‘+ Add APP’, a setup module will appear, Configure your app settings (Choose Ironsource as mediation platform)
      Note: Note: You will need a unique Mintegral application per platform (iOS + Android) just like you do with your ironSource account.
    2. After you defined the settings, you can choose to check the ad types you DO NOT wish to be delivered to your application.
  3. Add placements
    1. After you defined the Applications settings, select the relevant Apps through dashboard and click ‘Placement Management‘:
    2. click on ‘Add Placement’ button for adding new placements
    3. Mintegral adapters can serve  Rewarded Video, Interstitial and Banner. Choose the ‘AD format’ according to your needs
      For Banner,  It is highly recommended to set the “Auto Refresh” value for No, since you can control the refresh rate on the mediation platform.
    4. Define your ad unit. As Mintegral network is a bidder only, you must choose ‘Header Bidding’ as the Bidding Type

Step 3. Activate Mintegral in Your ironSource Network Setup Module

Serving Mintegral’s ads through the ironSource mediation platform has never been this easy. Sign in to your Mintegral account when setting up Mintegral on the ironSource SDK Networks setup page.

There are values from your Mintegral account which need to be inserted into your ironSource network setup module in order for Mintegral to work correctly in connection with ironSource:

App Key
The unique ID assigned to your app on Mintegral’s dashboard.
SKey
API key for reporting
Secret
The unique ID assigned to your Mintegral user.

Once you obtain this information, you must configure Mintegral’s Parameters in your ironSource Account. By adding the above information correctly, you will be able to take full advantage of Mintegral’s ad inventory and reporting data on the ironSource mediation platform.

If you don’t find the SKey or Secret values feel free to contact developer@mintegral.com or your account manager on Mintegral.

App Key

Once you have created an application in the Mintegral dashboard (as described in step 2), go to the ‘APP Setting’ screen – on top of this page, you will find your App Key:

SKey + Secret

Once you have logged into your Mintegral user (as described in step 1), go to the ‘API Tools’ under ‘Account’ tab – on the Upper menu:
Now, on the bottom of the page you can find your SKey, as well as your Secret:

Step 4. Add the Mintegral App level parameters to your app setup

  1. On SDK network page, choose the application you would like to configure, and click on ‘Setup’ under Mintegral bidder
  2. App level configuration will pop-up , and you will need to insert the following parameters for each app you would like to monetize with Mintegral
    1. App ID
    2. Placement ID
    3. Ad Unit ID
  3. Get all the parameters from you Mintegral account
    1. App ID
    2. Placement ID
    3. Ad Unit ID

Step 5. Add the Mintegral Adapter to Your Build

Done!
You are now all set to deliver Mintegral ads within your application!

Interstitial Integration for Xamarin iOS

The ironSource Interstitial is a full-screen ad unit, usually served at natural transition points during the app lifecycle. We support both static and video interstitials. You can also serve interstitials through the ironSource Mediation platform.

Before you start Make sure you have correctly integrated the ironSource Plugin into your application. Integration is outlined here.

Step 1. Implement the Delegate

The ironSource SDK fires several events to inform you of Interstitial Activity. The SDK will notify your delegate of all possible events listed below:

public class ISDelegate : ISInterstitialDelegate
    {
        readonly UIViewController parent;
        public ISDelegate(UIViewController viewController)
        {
            this.parent = viewController;
        }
        /*
        * Invoked when the ad was opened and shown successfully.
        */
        public override void InterstitialDidShow()
        {
            
        }
        /*
        * Invoked when the end user clicked on the interstitial ad.
        */
        public override void InterstitialDidClick()
        {
            
        }
        /*
         * Invoked when the ad is closed and the user is about to return to the 
         * application.
         */
        public override void InterstitialDidClose()
        {
            
        }
        /*
        * invoked when there is no Interstitial Ad available after calling load function.
        */
        public override void InterstitialDidFailToLoadWithError(NSError error)
        {
            
        }
        /*
         * Invoked when Interstitial ad failed to show.
         * @param error - An object which represents the reason of showInterstitial failure.
         */
        public override void InterstitialDidFailToShow(NSError error)
        {
            
        }
        /*
         * Invoked when Interstitial Ad is ready to be shown after load function was 
called.
        */
        public override void InterstitialDidLoad()
        {
            
        }
        /*
        * Invoked when the Interstitial Ad Unit is opened
        */
        public override void InterstitialDidOpen()
        {
            
        }
    }
  • The InterstitialDidOpen and InterstitialDidShow events convey that the ad format has taken over the app screen and been displayed but does not indicate that an ad has been successfully served to your end-user.
  • Do not assume the delegate methods will always invoke on the main thread. 

Step 2. Load Interstitial Ad

We recommend requesting an Interstitial Ad a short while before you plan on showing it to your users as the loading process can take some time. We don’t recommend making consecutive requests for an interstitial ad in a short timespan. Numerous requests in a short period of time have no added value as the chance of available inventory within this time is unlikely.

To request an interstitial ad, call the following method:

IronSource.LoadInterstitial();

Note:  If you’d like to serve several Interstitial Ads in your application, you must repeat this step after you’ve shown and closed the previous Interstitial Ad. Once the InterstitialDidClose function is fired, you will be able to load a new Interstitial ad. 

Step 3. Check Ad Availability

After you call the LoadInterstitial in Step 2, you will be notified when the ad is loaded and ready to be shown to your user through the delegate with the method InterstitialDidLoad which will inform you about ad availability.

public void InterstitialDidLoad(){}

We don’t recommend making consecutive requests for an interstitial ad in a short timespan. Numerous requests in a short period of time have no added value as the chance of available inventory at this time is unlikely.

Step 4. Show Interstitial Ad

Once you receive the InterstitialDidLoad delegate, you are ready to show an Interstitial Ad to your users. Invoke the following method to serve an Interstitial ad to your users:

IronSource.ShowInterstitial(placementName);

Important! Once you’ve successfully completed step 4, you will have shown your user an Interstitial Ad. In the case you want to serve another Interstitial ad, you must repeat Step 3 to request an additional Interstitial.

Banner Integration for Xamarin iOS

Before you start Make sure you have correctly integrated the ironSource Plugin into your application. Integration is outlined here.

Step 1. Create Banner Layout 

First, you’ll need to create a Banner view to configure the Banner.

  • Initiate the Banner view by calling this method (in this example it’s the BANNER banner size):
    var instance = new ISBannerSize("BANNER");
          UIViewController bannerViewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
    IronSource.LoadBannerWithViewController(bannerViewController, new ISBannerSize("BANNER", 320, 50));
    
    Note: Supported Banner syntaxt: (“BANNER”, 320, 50), (“LARGE”, 320, 90), (“RECTANGLE”, 300, 250), (“SMART”, 0, 0)

    See table below for details about our supported standard banner sizes:

    ISBannerSize Description Dimensions in points (WxH)
    BANNER Standard Banner 320 x 50
    LARGE Large Banner 320 x 90
    RECTANGLE Medium Rectangular Banner 300 x 250
    SMART
    Smart Banner
    (Adjusted for both iPhone and iPad)
    If (iPhone ≤ 720) 320 x 50
    If (iPad > 720) 728 x 90

Create and load a banner ad:

Here’s an example that initiates and loads a banner in the onCreate() method of an Activity:

	
    public override void ViewDidLoad() {
        base.ViewDidLoad();
 
        // YOUR OTHER CODE //
   
        IronSource.InitWithAppKey("YOUR_APP_KEY");
        BannerWrapper bnDelegate = new BannerWrapper(this);
        IronSource.SetBannerDelegate((ISBannerDelegate)bnDelegate);
    }
 
        public class BannerWrapper : ISBannerDelegate
    {
       readonly UIViewController parent;
       public BannerWrapper(UIViewController parent)
       {
            this.parent = parent;
       }
       public override void BannerAdLoaded()
       {
            InvokeOnMainThread(() =>
           {
               bannerView = bnView;
               nfloat y = this.parent.View.Frame.Size.Height - (bannerView.Frame.Size.Height / 2);
               if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
               {
                   y -= this.parent.View.SafeAreaInsets.Bottom;
               }
               bannerView.Center = new CGPoint(this.parent.View.Frame.Size.Width / 2, y);
               this.parent.View.AddSubview(bannerView);
           });
       }
       public override void BannerAdLoadFailed(IronSourceError error)
       {
       }
       public override void BannerAdClicked()
       {
       }
   
       public override void BannerAdScreenPresented()
       {
       }
       public override void RewardedVideoDidStart()
       {
       }
       public override void BannerAdScreenDismissed()
       {
       }
       public override void BannerAdLeftApplication()
       {
       }
   }

Step 2. Implement the Delegate

Next, the ironSource SDK fires several delegate methods to inform you of Banner activity. The SDK will notify your delegate methods of all possible events listed below:

public class BNDelegate : ISBannerDelegate
 {
           /*
            * Called after a banner ad has been successfully loaded
           */
            public void OnBannerAdLoaded() {
                InvokeOnMainThread(() =>
           {
               bannerView = bnView;
               nfloat y = this.parent.View.Frame.Size.Height - (bannerView.Frame.Size.Height / 2);
               if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
               {
                   y -= this.parent.View.SafeAreaInsets.Bottom;
               }
               bannerView.Center = new CGPoint(this.parent.View.Frame.Size.Width / 2, y);
               this.parent.View.AddSubview(bannerView);
           });
            }
           /*
           * Called after a banner has attempted to load an ad but failed.
           * @param error The reason for the error
           */
            public void OnBannerAdLoadFailed(IronSourceError error) {
               
            }
            /*
            * Called after a banner has been clicked.
            */
            public void OnBannerAdClicked() {
                
            }
            /*
            * Called when a banner is about to present a full screen content.
            */
            public void OnBannerAdScreenPresented() {
                
            }
            /*
            * Called after a full screen content has been dismissed.
            */
            public void OnBannerAdScreenDismissed() {
                
            }
           /*
            * Called when a user would be taken out of the application context.
            */
            public void OnBannerAdLeftApplication() {
                
            }
        }
Note:  Do not assume the delegate methods are invoked on the main thread.

Step 3. Load Banner Ad Settings

To load a Banner ad with the default settings, call the following method:

var instance = new ISBannerSize("BANNER");
      UIViewController bannerViewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
IronSource.LoadBannerWithViewController(bannerViewController, instance);

Note:  SDK will not show more than one banner at a time.

Step 4. Destroy the Banner Ad

To destroy a banner, call the following method:

InvokeOnMainThread(() =>
            {
                if (this.bnDelegate.DestroyBanner())
                {
                    bannerViewController = null;
                }
            });

A destroyed banner can no longer be loaded. If you want to serve it again, you must initiate it again.

Step 5.  Integrate a Banner Provider

Next, integrate the ad network adapters to serve Banners through Unity LevelPlayMediation. We currently support ironSource, Admob, AppLovin and Meta Audience Network Banners.

For better understanding of bannerSize’s behaviour per network, please follow table:

BANNER LARGE RECTANGLE SMART
ironSource Banner Large Banner / Leaderboard
AdColony Banner Banner Medium Rectangle Banner / Leaderboard
AdMob Banner Large Banner IAM Medium Rectangle Banner / Leaderboard
AppLovin Banner Banner Medium Rectangle Banner / Leader
Meta Audience
Network
Standard Banner Large Banner Medium Rectangle Banner / Leader
UnityAds Banner Banner Leaderboard
Vungle Banner Banner Medium Rectangle Banner / Leaderboard

Done!
You are now all set up to serve Banners in your application. Verify your integration with our Integration Helper.