Additional SDK Settings
Set UserID
If you’re using server-to-server callbacks to reward your users with ironSource SDK rewarded ad units, or using Ad Quality user journey, you must define a unique identifier for each user (“UserID”), using the setUserID method.
Set the UserID before the init request, to make sure you avoid any data losses, related to the user. Use a unique identifier, with up to 64 alphanumeric characters (String format for Android; NSString format for iOS).
IronSource.Agent.setUserId(YOUR_USER_ID);
You can now easily tailor the way you serve your ads to fit a specific audience! You’ll need to inform our servers of the users’ details so the SDK will know to serve ads according to the segment the user belongs to. ironSource SDK supports three methods to convey data to our servers to outline the user segment, namely: Once you’ve defined segments on the LevelPlay platform, you’ll need to inform our servers of the user’s particulars. Define what properties to send to our servers on which to base the segments. You can transmit this information through one of the following methods: In addition, you can set up to 5 custom user properties per segment: Next, to serve your ad units based on segments, call the following function complete with either the segment name or user properties: Register to the following callback to receive the segment name that your user belongs to. If the callback string (segment name) returns empty, there were no correlating segments found for the user in the ironSource Segment module. The ironSource SDK supports custom parameters for Rewarded Video. You can pass custom parameters upon the initialization of the ad unit and receive the parameters upon a user’s completion event.Define Segments
This will affect the next loaded ad, and can be called before loading each ad unit, to dynamically affect the waterfall . You can learn more about LevelPlay segmentation here. Pass User Properties
IronSourceSegment segment = new IronSourceSegment ();
segment.segmentName = "nameOfSegment";
// Create segment object
IronSourceSegment segment = new IronSourceSegment ();
// Set user age
segment.age = age;
// Set user gender
segment.gender = "gender";
// Set user's level
segment.level = levelnumber;
// Set user creation date
segment.userCreationDate=creationData
// Set user's total in-app purchases
segment.iapt = numberOfInAppPurchases;
// Set user's paying status, 1 is yes 0 is no
segment.isPaying = payingStatus;
// Set custom parameters (up to 5)
Dictionary<string,string> customParams = new Dictionary<string,string> ();
customParams.Add ("customKey", "value");
segment.customs = customParams;
IronSource.Agent.setSegment (segment);
Supported User Segment Properties
Segment Properties
Type
Limitation
Description
segmentName
String
The given name of the segment in your LevelPlay account
Age
Int
1-99
The user’s age
Gender
String
female or male
The user’s gender
Paying
Boolean
True or False
iap_total
Double
1-999999.99
The total amount of money that the user has spent on in-app purchases
userCreationDate
Long
Cannot be smaller than 0
The date the user installed the app, e.g. [NSDate date]
Custom Parameters
key=string, value=string
Any additional data you’d like to dispatch to our server
IronSourceEvents.onSegmentReceivedEvent += SegmentReceivedEvent;
Custom Parameters for Unity
You can now pass custom parameters for all mediation networks on the LevelPlay mediation platform.
Implementation Code
Rewarded Video
- Custom Parameters can be set several times per session.
- To reset the value, use clearRewardedVideoServerParams, and then set the new value.
IronSource.Agent.setRewardedVideoServerParams(Dictionary<string, string> parameters); IronSource.Agent.clearRewardedVideoServerParams();
You will then receive a corresponding callback as exemplified below:
http://www.mydomain.com/rewardsCallback?appUserId=[USER_ID]&rewards=[REWARDS]&eventId=[EVENT_ID]&itemName=[ITEM_NAME]&custom_ip=1.0.0.9
Pause Game
The API setPauseGame is introduced as part of the ironSource Unity SDK 7.2.4, and is relevant for iOS apps only.
When setting your PauseGame status to “true”, all your Unity 3D game activities will be paused (Except the ad callbacks). The game activity will be resumed automatically when the ad is closed.
You should call the setPauseGame API once in your session, before or after initializing the ironSource SDK, and as it affects all ads (Rewarded Video and Interstitial ads) in the session.
IronSource.Agent.SetPauseGame(true);
You can deactivate the functionality in this session, by calling the SetPauseGame with the value false:
IronSource.Agent.SetPauseGame(false);
Price limitations using waterfall configuration (beta)
Set Waterfall Configuration is an API that can be used to dynamically set limits for the waterfall: price ceiling and price floor. You can use it to set limits and dynamically affect the WF returned per user, resulting in reduced load times and latency.
Limits include, and can be any combination of these parameters:
Properties | Type | Description |
ceiling | double | The price in USD, which defines the maximal eCPM applies to traditional instances |
floor | double | The price in USD, which defines the minimal eCPM applies to traditional instances and bidders |
Create a waterfall configuration
The WaterfallConfiguration class represents a configuration object for customizing or filtering a waterfall.
In order to create a waterfall configuration, define a WaterfallConfigurationBuilder:
// Build the WaterfallConfiguration and add data to constrain or control a waterfall
WaterfallConfiguration config = WaterfallConfiguration.Builder()
.SetCeiling(ceiling)
.SetFloor(floor)
.Build();
// set a configuration for an ad unit
IronSource.Agent.SetWaterfallConfiguration(config, AdFormat.adFormat);
Clearing a Waterfall Configuration
It is possible to change the waterfall configuration during the session. To clear the configuration for a given ad unit, use the WaterfallConfiguration.Empty() function:
IronSource.Agent.SetWaterfallConfiguration(WaterfallConfiguration.Empty(), AdFormat.adFormat);
Overwriting a Waterfall Configuration
A built WaterfallConfiguration is immutable, you must create a new Waterfall Configuration to change the existing configuration from a previous one. One may also inline the builder and set definitions in keeping with the builder pattern.
...
IronSource.Agent.SetWaterfallConfiguration(waterfallconfiguration, AdFormat.RewardedVideo);
WaterfallConfiguration waterfallConfiguration2 = WaterfallConfiguration.Builder()
.SetFloor(ceiling)
.SetCeiling(floor)
.Build();
IronSource.Agent.SetWaterfallConfiguration(waterfallConfiguration2, AdFormat.RewardedVideo);
ironSource SDK Error Codes
ironSource provides an error feedback mechanism to provide explanation for any failure in the SDK integration. You will receive these errors when something went wrong or an aspect of the integration wasn’t completed correctly.
The ironSource Error object contains an error code and message. These are all the possible errors and their message based on their functions:
Error Codes | Ad Unit | Description |
508 | N/A | • Init failure of the mediation/Network • Calling a Demand Only API in non Demand Only mode • Calling a non Demand Only API in Demand Only mode |
509 | Interstitial | Show Fail: No ads to show |
Rewarded Video | ||
510 | Interstitial | Load Fail: Server response failed |
Rewarded Video | ||
Banner | ||
520 | Interstitial | Show Fail: No internet connection; ShouldTrackNetworkState is enabled |
Rewarded Video | Show Fail: No internet connection | |
524 | Interstitial | Show Fail: Placement %@ has reached its limit as defined per pace Show Fail: Placement %@ has reached its capping limit |
Rewarded Video | ||
526 | Interstitial | Show Fail: Ad unit has reached its daily cap per session |
Rewarded Video | ||
1007 | Interstitial | Auction Fail: Auction request did not contain all required information |
Rewarded Video | ||
1022 | Rewarded Video | Show Fail: Cannot show an RV while another RV is showing |
1023 | Rewarded Video | Show Fail: Show RV called when there are no available ads to show |
1035 | Interstitial | Empty Waterfall |
1036 | Interstitial | Show Fail: Cannot show an interstitial while another interstitial is showing |
1037 | Interstitial | Load Fail: Cannot load an interstitial while another interstitial is showing |
1039 | Interstitial | Exception while calling show interstitial |