Additional SDK Settings for iOS
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.
The userID is a unique identifier for each of your users. You can set the userID parameter, or omit it and let us generate one for you. If you choose to skip setting the userID in your code, the SDK will generate an equitable userID.
We support NSString from 1 to 64 characters. Common practice is to use the Apple Advertising ID (IDFA). More information on User IDs can be found here.
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 supports three methods to convey data to our servers to outline the user segment, namely:
- Device Properties: the ironSource SDK collects certain standard parameters that pertain to the users’ device automatically such as location, device model, device manufacturer, app version, OS, etc. You do not need to convey this data to us.
- User Properties: comprehensive user data such as age, gender, creation date, etc. (see full list of supported segment properties with descriptions below) must be relayed through the API. Follow the instructions to send us your user’s details so our SDK can categorize your different users based on the segments you defined on the ironSource platform.
- Custom Segments: you can create a custom segment with predefined conditions without conveying user details to our servers and tailor ad settings for that user segment on the ironSource platform.
Pass User Properties
Once you’ve defined segments on the ironSource platform, you should inform our servers of the user’s particulars.
First, init the segment:
ISSegment *segment = [[ISSegment alloc]init];
let segment: ISSegment = ISSegment()
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:
- If you are familiar with the segment that the user belongs to, enter the segment name:
- Send us the user details. ironSource provides a range of standard user properties that you can set to attribute a user to a segment in the API. See table below for descriptions.
// Set user age [segment setAge:USER_AGE]; // Set user gender [segment setGender:USER_GENDER]; // Set user level [segment setLevel:USER_LEVEL]; // Set user's paying status [segment setPaying:USER_PAYING]; // Set user's total in-app purchase history [segment setIapTotal:YOUR_IAP_TOTAL]; // Set user creation date [segment setUserCreationDate:YOUR_DATE];
// Set user age segment.age = USER_AGE // Set user gender segment.gender = ISGender.IRONSOURCE_USER_FEMALE // Set user's total in-app purchases segment.iapTotal = USER_IAP_TOTAL // Set user's level segment.level = USER_LEVEL // Set user's paying status segment.paying = USER_PAYING_STATUS // Set user creation date segment.userCreationDate = NSDate() as Date!
In addition, you can set up to 5 custom user properties per segment:
[segment setCustomValue:YOUR_CUSTOM_VALUE forKey:YOUR_CUSTOM_KEY];
segment.setCustomValue("CUSTOM_VALUE", forKey: "CUSTOM_KEY")
Next, to serve your ad units based on segments to tailor the user’s ad experience, call the following function complete with either the segment name or user properties:
Supported Segment Properties
||The given name of the segment in your ironSource account|
|Age||Int||1-99||The user’s age|
|Gender||enum||IRONSOURCE_USER_MALE or IRONSOURCE_USER_FEMALE||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||NSDate||Cannot be smaller than 0||The date the user installed the app|
|Custom Parameters||key=string, value=string||
||Any additional data you’d like to dispatch to our server|
Obtain the User’s Segment Name
- Adopt this interface in your class to conform to the Segment Name protocol and enable the receipt of the segment name
- Register to the following delegate to receive the segment name that your user belongs to. The SDK will then notify your delegate of the event.
- You will receive this callback with the user’s segment name. If the delegate string (segment name) returns empty, there were no correlating segments found for the user in the ironSource Segment module.