User Profile¶
User Profile is an additional information of the user which can be something like gender, age, region, language, subscription type, etc.
You can segment the group of users with these profiles when sending push notifications or in-app messages.
Each profile is identified by a unique user ID. We recommend you to set a user ID before setting user profiles. If you do not set a user ID, then the Repro SDK automatically generates an anonymous user ID. But anonymous user ID will be changed when users update or uninstall your app.
Warning
Registered user profile keys and data types can not be changed or deleted after.
There is no upper limit to the number of registered user profile keys. However, the number of user profiles that can be used as analytics filter as well as campaign filters are limited. You can check the number of user profile keys currently being used from Settings > User Profile Settings.
In User Profile Settings, You can change the settings of user profiles that you can use to filter target audience of Campaigns. User Profiles disabled here will not be displayed as candidates for filters when creating campaigns or display Analytics screen.
Once your app reaches the limit of User Profile Keys, all new incoming User Profile Keys will be registered, but will not be shown as candidates for filters until it is enabled from Settings > User Profile Settings.
In User Profile Settings, deactivating user profiles that are being used to filter campaign target users will cause the campaign not to be sent.
Warning
To configure user profiles in HTML in-app messages, you must use iOS SDK 5.19.0 or higher and Android SDK 5.18.0 or higher.
To configure user profiles in native WebViews, you must have iOS SDK 5.19.0 or higher and Android SDK 5.18.0 or higher, and use repro.js version 6 or higher . The following is a list of requirements in order to access Repro from within webviews.
To perform conditional set, increase/decrease, and delete operations, you must use iOS SDK 5.21.0, Android SDK 5.20.0 and repro.js version 8 or higher or higher.
Standard User Profile¶
Repro defines user profiles widely used for filtering users as Standard User Profile. Please call the appropriate API when setting Standard User Profiles. Use Custom User Profile when you want to set original user profiles in your application.
Warning
On the SDK versions listed below it is not possible to insert user e-mail addresses and gender into the standard user profile.
Unity SDK 6.15.0 and below
Cordova Plugin 6.16.0 and below
With the SDK versions listed below, it is possible to insert the user Japanese prefecture, birthday and age into the standard user profile.
Android SDK 5.14.0 and above
iOS SDK 5.15.0 and above
Unity SDK 5.16.0 and above
React Native SDK 3.17.0 and above
Cordova Plugin 6.17.0 and above
Cocos2d-x SDK 5.16.0 and above
Flutter Package 3.8.0 and above
Gender¶
Set the gender of user. The value is available as constants defined by Repro.
// set the gender as "male"
[Repro setUserGender:RPRUserProfileGenderMale];
// set the gender as "female"
[Repro setUserGender:RPRUserProfileGenderFemale];
// set the gender as "other"
[Repro setUserGender:RPRUserProfileGenderOther];
// set the gender as "male"
Repro.setUserProfile(gender: .male)
// set the gender as "female"
Repro.setUserProfile(gender: .female)
// set the gender as "other"
Repro.setUserProfile(gender: .other)
// set the gender as "male"
Repro.setUserGender(UserProfileGender.MALE);
// set the gender as "female"
Repro.setUserGender(UserProfileGender.FEMALE);
// set the gender as "other"
Repro.setUserGender(UserProfileGender.OTHER);
// set the gender as "male"
ReproCpp::setUserGender(ReproCpp::UserProfileGenderMale);
// set the gender as "female"
ReproCpp::setUserGender(ReproCpp::UserProfileGenderFemale);
// set the gender as "other"
ReproCpp::setUserGender(ReproCpp::UserProfileGenderOther);
// set the gender as "male"
Repro.SetUserGender(UserProfileGender.Male);
// set the gender as "female"
Repro.SetUserGender(UserProfileGender.Female);
// set the gender as "other"
Repro.SetUserGender(UserProfileGender.Other);
// set the gender as "male"
Repro.setUserGender(Repro.UserProfileGender.Male);
// set the gender as "female"
Repro.setUserGender(Repro.UserProfileGender.Female);
// set the gender as "other"
Repro.setUserGender(Repro.UserProfileGender.Other);
// set the gender as "male"
Repro.setUserGender(Repro.GENDER_MALE);
// set the gender as "female"
Repro.setUserGender(Repro.GENDER_FEMALE);
// set the gender as "other"
Repro.setUserGender(Repro.GENDER_OTHER);
// set the gender as "male"
repro.setUserGender(repro.userProfileGender.Male);
// set the gender as "female"
repro.setUserGender(repro.userProfileGender.Female);
// set the gender as "other"
repro.setUserGender(repro.userProfileGender.Other);
// set the gender as "male"
Repro.setUserGender(Repro.UserProfileGender.Male);
// set the gender as "female"
Repro.setUserGender(Repro.UserProfileGender.Female);
// set the gender as "other"
Repro.setUserGender(Repro.UserProfileGender.Other);
// set the gender as "male"
await Repro.setUserGender(UserGender.male);
// set the gender as "female"
await Repro.setUserGender(UserGender.female);
// set the gender as "other"
await Repro.setUserGender(UserGender.other);
When setting up the filter of push notifications or in-app messages, please refer to the table below to specify the string value.
Gender |
Values to specify in filters |
---|---|
Male |
male |
Female |
female |
Other |
other |
Email Address¶
Set the email address of user.
[Repro setUserEmailAddress:@"user@example.com"];
Repro.setUserProfile(emailAddress: "user@exmaple.com")
Repro.setUserEmailAddress("user@exmaple.com");
ReproCpp::setUserEmailAddress("user@exmaple.com");
Repro.SetUserEmailAddress("user@example.com");
Repro.setUserEmailAddress("user@example.com");
Repro.setUserEmailAddress("user@exmaple.com");
repro.setUserEmailAddress("user@exmaple.com");
Repro.setUserEmailAddress("user@exmaple.com");
await Repro.setUserEmailAddress("user@example.com");
Japanese prefecture¶
Setting the home prefecture of an user
// set the prefecture as "Tokyo"
[Repro setUserResidencePrefecture:RPRUserProfilePrefectureTokyo];
// Possible values are as follows:
// RPRUserProfilePrefectureHokkaido, -Aomori, -Iwate, -Miyagi, -Akita, -Yamagata,
// -Fukushima, -Ibaraki, -Tochigi, -Gunma, -Saitama, -Chiba, -Tokyo, -Kanagawa,
// -Niigata, -Toyama, -Ishikawa, -Fukui, -Yamanashi, -Nagano, -Gifu, -Shizuoka,
// -Aichi, -Mie, -Shiga, -Kyoto, -Osaka, -Hyogo, -Nara, -Wakayama, -Tottori,
// -Shimane, -Okayama, -Hiroshima, -Yamaguchi, -Tokushima, -Kagawa, -Ehime, -Kochi,
// -Fukuoka, -Saga, -Nagasaki, -Kumamoto, -Oita, -Miyazaki, -Kagoshima, -Okinawa
// set the prefecture as "Tokyo"
Repro.setUserProfile(residencePrefecture: .tokyo)
// Possible values are as follows:
// .hokkaido, .aomori, .iwate, .miyagi, .akita, .yamagata,
// .fukushima, .ibaraki, .tochigi, .gunma, .saitama, .chiba, .tokyo, .kanagawa,
// .niigata, .toyama, .ishikawa, .fukui, .yamanashi, .nagano, .gifu, .shizuoka,
// .aichi, .mie, .shiga, .kyoto, .osaka, .hyogo, .nara, .wakayama, .tottori,
// .shimane, .okayama, .hiroshima, .yamaguchi, .tokushima, .kagawa, .ehime, .kochi,
// .fukuoka, .saga, .nagasaki, .kumamoto, .oita, .miyazaki, .kagoshima, .okinawa
// set the prefecture as "Tokyo"
Repro.setUserResidencePrefecture(UserProfilePrefecture.TOKYO);
// Possible values are as follows:
// HOKKAIDO, AOMORI, IWATE, MIYAGI, AKITA, YAMAGATA,
// FUKUSHIMA, IBARAKI, TOCHIGI, GUNMA, SAITAMA, CHIBA, TOKYO, KANAGAWA,
// NIIGATA, TOYAMA, ISHIKAWA, FUKUI, YAMANASHI, NAGANO, GIFU, SHIZUOKA,
// AICHI, MIE, SHIGA, KYOTO, OSAKA, HYOGO, NARA, WAKAYAMA, TOTTORI,
// SHIMANE, OKAYAMA, HIROSHIMA, YAMAGUCHI, TOKUSHIMA, KAGAWA, EHIME, KOCHI,
// FUKUOKA, SAGA, NAGASAKI, KUMAMOTO, OITA, MIYAZAKI, KAGOSHIMA, OKINAWA
// set the prefecture as "Tokyo"
ReproCpp::setUserResidencePrefecture(ReproCpp::UserProfilePrefectureTokyo);
// Possible values are as follows:
// UserProfilePrefectureHokkaido, -Aomori, -Iwate, -Miyagi, -Akita, -Yamagata,
// -Fukushima, -Ibaraki, -Tochigi, -Gunma, -Saitama, -Chiba, -Tokyo, -Kanagawa,
// -Niigata, -Toyama, -Ishikawa, -Fukui, -Yamanashi, -Nagano, -Gifu, -Shizuoka,
// -Aichi, -Mie, -Shiga, -Kyoto, -Osaka, -Hyogo, -Nara, -Wakayama, -Tottori,
// -Shimane, -Okayama, -Hiroshima, -Yamaguchi, -Tokushima, -Kagawa, -Ehime, -Kochi,
// -Fukuoka, -Saga, -Nagasaki, -Kumamoto, -Oita, -Miyazaki, -Kagoshima, -Okinawa
// set the prefecture as "Tokyo"
Repro.SetUserResidencePrefecture(UserProfilePrefecture.Tokyo);
// Possible values are as follows:
// Hokkaido, Aomori, Iwate, Miyagi, Akita, Yamagata,
// Fukushima, Ibaraki, Tochigi, Gunma, Saitama, Chiba, Tokyo, Kanagawa,
// Niigata, Toyama, Ishikawa, Fukui, Yamanashi, Nagano, Gifu, Shizuoka,
// Aichi, Mie, Shiga, Kyoto, Osaka, Hyogo, Nara, Wakayama, Tottori,
// Shimane, Okayama, Hiroshima, Yamaguchi, Tokushima, Kagawa, Ehime, Kochi,
// Fukuoka, Saga, Nagasaki, Kumamoto, Oita, Miyazaki, Kagoshima, Okinawa
// set the prefecture as "Tokyo"
Repro.setUserResidencePrefecture(Repro.UserProfilePrefecture.Tokyo);
// Possible values are as follows:
// Hokkaido, Aomori, Iwate, Miyagi, Akita, Yamagata,
// Fukushima, Ibaraki, Tochigi, Gunma, Saitama, Chiba, Tokyo, Kanagawa,
// Niigata, Toyama, Ishikawa, Fukui, Yamanashi, Nagano, Gifu, Shizuoka,
// Aichi, Mie, Shiga, Kyoto, Osaka, Hyogo, Nara, Wakayama, Tottori,
// Shimane, Okayama, Hiroshima, Yamaguchi, Tokushima, Kagawa, Ehime, Kochi,
// Fukuoka, Saga, Nagasaki, Kumamoto, Oita, Miyazaki, Kagoshima, Okinawa
// set the prefecture as "Tokyo"
Repro.setUserResidencePrefecture(Repro.PREFECTURE_TOKYO);
// Possible values are as follows:
// PREFECTURE_HOKKAIDO, -AOMORI, -IWATE, -MIYAGI, -AKITA, -YAMAGATA,
// -FUKUSHIMA, -IBARAKI, -TOCHIGI, -GUNMA, -SAITAMA, -CHIBA, -TOKYO, -KANAGAWA,
// -NIIGATA, -TOYAMA, -ISHIKAWA, -FUKUI, -YAMANASHI, -NAGANO, -GIFU, -SHIZUOKA,
// -AICHI, -MIE, -SHIGA, -KYOTO, -OSAKA, -HYOGO, -NARA, -WAKAYAMA, -TOTTORI,
// -SHIMANE, -OKAYAMA, -HIROSHIMA, -YAMAGUCHI, -TOKUSHIMA, -KAGAWA, -EHIME, -KOCHI,
// -FUKUOKA, -SAGA, -NAGASAKI, -KUMAMOTO, -OITA, -MIYAZAKI, -KAGOSHIMA, -OKINAWA
// set the prefecture as "Tokyo"
repro.setUserResidencePrefecture(repro.userProfilePrefecture.TOKYO);
// Possible values are as follows:
// HOKKAIDO, AOMORI, IWATE, MIYAGI, AKITA, YAMAGATA,
// FUKUSHIMA, IBARAKI, TOCHIGI, GUNMA, SAITAMA, CHIBA, TOKYO, KANAGAWA,
// NIIGATA, TOYAMA, ISHIKAWA, FUKUI, YAMANASHI, NAGANO, GIFU, SHIZUOKA,
// AICHI, MIE, SHIGA, KYOTO, OSAKA, HYOGO, NARA, WAKAYAMA, TOTTORI,
// SHIMANE, OKAYAMA, HIROSHIMA, YAMAGUCHI, TOKUSHIMA, KAGAWA, EHIME, KOCHI,
// FUKUOKA, SAGA, NAGASAKI, KUMAMOTO, OITA, MIYAZAKI, KAGOSHIMA, OKINAWA
// set the prefecture as "Tokyo"
Repro.setUserResidencePrefecture(Repro.UserProfilePrefecture.TOKYO);
// Possible values are as follows:
// HOKKAIDO, AOMORI, IWATE, MIYAGI, AKITA, YAMAGATA,
// FUKUSHIMA, IBARAKI, TOCHIGI, GUNMA, SAITAMA, CHIBA, TOKYO, KANAGAWA,
// NIIGATA, TOYAMA, ISHIKAWA, FUKUI, YAMANASHI, NAGANO, GIFU, SHIZUOKA,
// AICHI, MIE, SHIGA, KYOTO, OSAKA, HYOGO, NARA, WAKAYAMA, TOTTORI,
// SHIMANE, OKAYAMA, HIROSHIMA, YAMAGUCHI, TOKUSHIMA, KAGAWA, EHIME, KOCHI,
// FUKUOKA, SAGA, NAGASAKI, KUMAMOTO, OITA, MIYAZAKI, KAGOSHIMA, OKINAWA
// set the prefecture as "Tokyo"
await Repro.setUserResidencePrefecture(UserProfilePrefecture.tokyo);
// Possible values are as follows:
// hokkaido, aomori, iwate, miyagi, akita, yamagata,
// fukushima, ibaraki, tochigi, gunma, saitama, chiba, tokyo, kanagawa,
// niigata, toyama, ishikawa, fukui, yamanashi, nagano, gifu, shizuoka,
// aichi, mie, shiga, kyoto, osaka, hyogo, nara, wakayama, tottori,
// shimane, okayama, hiroshima, yamaguchi, tokushima, kagawa, ehime, kochi,
// fukuoka, saga, nagasaki, kumamoto, oita, miyazaki, kagoshima, okinawa
In case of setting a filter for push notifications or In-App Messages, please choose a string like 東京都
or 大阪府
compare value.
User birthday¶
Setting the birthday of an user
NSDate *date = ... // Create an NSDate object for the user's birthday date
[Repro setUserDateOfBirth:date];
let date = ... // Create an NSDate object for the user's birthday date
Repro.setUserProfile(dateOfBirth: date)
Date date = ... // Create a Date object for the user's birthday date
Repro.setUserDateOfBirth(date);
ReproCpp::setUserDateOfBirth(2000, 12, 31);
DateTime date = ... // Create a DateTime object for the user's birthday date
Repro.SetUserDateOfBirth(date);
let date = ... // Create a Date object for the user's birthday date
Repro.setUserDateOfBirth(date);
let date = ... // Create a Date object for the user's birthday date
Repro.setUserDateOfBirth(date);
let date = ... // Create a Date object for the user's birthday date
repro.setUserDateOfBirth(date.getTime());
let date = ... // Create a Date object for the user's birthday date
Repro.setUserDateOfBirth(date.getTime());
DateTime date = ... // Create a DateTime object for the user's birthday date
await Repro.SetUserDateOfBirth(date);
User age¶
Setting the age of an user
[Repro setUserAge:20];
Repro.setUserProfile(age: 20)
Repro.setUserAge(20);
ReproCpp::setUserAge(20);
Repro.SetUserAge(20);
Repro.setUserAge(20);
Repro.setUserAge(20);
repro.setUserAge(20);
Repro.setUserAge(20);
await Repro.setUserAge(20);
Automatically Recorded Standard User Profiles¶
The following standard user profiles are recorded automatically in each session without having to explicitly call the APIs.
Last Session Date¶
The last day the user used the application is recorded as a date value.
Locale¶
The locale setting of user's device is recorded as a string value. The value is presented in the format like language-script-region
which conforms to IETF language tag. About IETF language tag, please refer to this page.
Note
Because the exact value of locale depends on devices, the same locale may have multiple possible values. For example, the possible values of Japanese locale are
ja
andja-JP
.Consequently, when using locale to setup the filter, please use the
contains
keyword. For example, to specify Japanese locale, please specify by "contains
ja
" in the filter.
Custom User Profile¶
Set any custom profiles that are not defined in the standard user profiles. String is allowed as the key for the profile. Keys starting from ___repro___
cannot be used. Nil or empty string are not allowed, and the maximum key length is 255 characters.
You can set String or Number to property's value.
String¶
Maximum value length is 255 characters.
[Repro setStringUserProfile:@"Developer" forKey:@"Job"];
Repro.setUserProfile(stringValue: "Developer", forKey: "Job")
Repro.setStringUserProfile("Job", "Developer");
ReproCpp::setStringUserProfile("Job", "Developer");
Repro.SetStringUserProfile ("Job", "Developer");
Repro.setStringUserProfile("Job", "Developer");
Repro.setStringUserProfile("Job", "Developer");
repro.setStringUserProfile("Job", "Developer");
Repro.setStringUserProfile("Job", "Developer");
await Repro.setStringUserProfile("Job", "Developer");
Integer¶
[Repro setIntUserProfile:25 forKey:@"Age"];
Repro.setUserProfile(integerValue: 25, forKey: "age")
Repro.setIntUserProfile("Age", 25);
ReproCpp::setIntUserProfile("Age", 25);
Repro.SetIntUserProfile ("Age", 25);
Repro.setIntUserProfile("Age", 25);
Repro.setIntUserProfile("Age", 25);
repro.setIntUserProfile("Age", 25);
Repro.setIntUserProfile("Age", 25);
await Repro.setIntUserProfile("Age", 25);
Decimal¶
[Repro setDoubleUserProfile:176.5 forKey:@"Height"];
Repro.setUserProfile(doubleValue: 176.5, forKey: "Height")
Repro.setDoubleUserProfile("Height", 176.5);
ReproCpp::setDoubleUserProfile("Height", 176.5);
Repro.SetDoubleUserProfile ("Height", 176.5);
Repro.setDoubleUserProfile("Height", 176.5);
Repro.setDoubleUserProfile("Height", 176.5);
repro.setDoubleUserProfile("Height", 176.5);
Repro.setDoubleUserProfile("Height", 176.5);
await Repro.setDoubleUserProfile("Height", 176.5);
Date¶
NSDate* now = [[NSDate alloc] init];
[Repro setDateUserProfile:now forKey:@"LastLogin"];
let now = Date()
Repro.setUserProfile(dateValue: now, forKey: "LastLogin")
Date now = new Date();
Repro.setDateUserProfile("LastLogin", now);
std::time_t now = std::time(0);
ReproCpp::setDateUserProfile("LastLogin", now);
DateTime now = DateTime.Now;
Repro.SetDateUserProfile ("LastLogin", now);
let now = new Date();
Repro.setDateUserProfile("LastLogin", now);
let now = new Date();
Repro.setDateUserProfile("LastLogin", now.toISOString());
let now = new Date();
repro.setDateUserProfile("LastLogin", now.getTime());
let now = new Date();
Repro.setDateUserProfile("LastLogin", now.getTime());
final now = DateTime.now();
await Repro.setDateUserProfile("LastLogin", now);
Conditional Set Operations¶
Sets values only when the profile is not already set, without updating existing profiles.
String (Conditional)¶
Sets a string value only when the specified key has no profile set.
[Repro onlySetIfAbsentStringUserProfile:@"Developer" forKey:@"Job"];
Repro.onlySetIfAbsentUserProfile(stringValue: "Developer", forKey: "Job")
Repro.onlySetIfAbsentStringUserProfile("Job", "Developer");
ReproCpp::onlySetIfAbsentStringUserProfile("Job", "Developer");
Repro.OnlySetIfAbsentStringUserProfile ("Job", "Developer");
Repro.onlySetIfAbsentStringUserProfile("Job", "Developer");
Repro.onlySetIfAbsentStringUserProfile("Job", "Developer");
repro.onlySetIfAbsentStringUserProfile("Job", "Developer");
Repro.onlySetIfAbsentStringUserProfile("Job", "Developer");
await Repro.onlySetIfAbsentStringUserProfile("Job", "Developer");
Integer (Conditional)¶
Sets an integer value only when the specified key has no profile set.
[Repro onlySetIfAbsentIntUserProfile:1 forKey: @"LoginCount"];
Repro.onlySetIfAbsentUserProfile(integerValue: 1, forKey: "LoginCount")
Repro.onlySetIfAbsentIntUserProfile("LoginCount", 1);
ReproCpp::onlySetIfAbsentIntUserProfile("LoginCount", 1);
Repro.OnlySetIfAbsentIntUserProfile("LoginCount", 1);
Repro.onlySetIfAbsentIntUserProfile("LoginCount", 1);
Repro.onlySetIfAbsentIntUserProfile("LoginCount", 1);
repro.onlySetIfAbsentIntUserProfile("LoginCount", 1);
Repro.onlySetIfAbsentIntUserProfile("LoginCount", 1);
await Repro.onlySetIfAbsentIntUserProfile("LoginCount", 1);
Decimal (Conditional)¶
Sets a decimal value only when the specified key has no profile set.
[Repro onlySetIfAbsentDoubleUserProfile:85.5 forKey: @"Score"];
Repro.onlySetIfAbsentUserProfile(doubleValue: 85.5, forKey: "Score")
Repro.onlySetIfAbsentDoubleUserProfile("Score", 85.5);
ReproCpp::onlySetIfAbsentDoubleUserProfile("Score", 85.5);
Repro.OnlySetIfAbsentDoubleUserProfile("Score", 85.5);
Repro.onlySetIfAbsentDoubleUserProfile("Score", 85.5);
Repro.onlySetIfAbsentDoubleUserProfile("Score", 85.5);
repro.onlySetIfAbsentDoubleUserProfile("Score", 85.5);
Repro.onlySetIfAbsentDoubleUserProfile("Score", 85.5);
await Repro.onlySetIfAbsentDoubleUserProfile("Score", 85.5);
Date (Conditional)¶
Sets a date value only when the specified key has no profile set.
NSDate* now = [[NSDate alloc] init];
[Repro onlySetIfAbsentDateUserProfile:now forKey:@"FirstLogin"];
let now = Date()
Repro.onlySetIfAbsentUserProfile(dateValue: now, forKey: "FirstLogin")
Date now = new Date();
Repro.onlySetIfAbsentDateUserProfile("FirstLogin", now);
std::time_t now = std::time(0);
ReproCpp::onlySetIfAbsentDateUserProfile("FirstLogin", now);
DateTime now = DateTime.Now;
Repro.OnlySetIfAbsentDateUserProfile("FirstLogin", now);
let now = new Date();
Repro.onlySetIfAbsentDateUserProfile("FirstLogin", now);
let now = new Date();
Repro.onlySetIfAbsentDateUserProfile("FirstLogin", now.toISOString());
let now = new Date();
repro.onlySetIfAbsentDateUserProfile("FirstLogin", now.getTime());
let now = new Date();
Repro.onlySetIfAbsentDateUserProfile("FirstLogin", now.getTime());
final now = DateTime.now();
await Repro.onlySetIfAbsentDateUserProfile("FirstLogin", now);
Increment/Decrement Operations¶
Performs addition and subtraction on existing numeric profiles. If the profile is not set, it is calculated with an initial value of 0.
Integer Increment¶
Adds a value to the integer profile of the specified key.
[Repro incrementIntUserProfileBy:1 forKey: @"LoginCount"];
Repro.incrementIntegerUserProfile(by: 1, forKey: "LoginCount")
Repro.incrementIntUserProfileBy("LoginCount", 1);
ReproCpp::incrementIntUserProfileBy("LoginCount", 1);
Repro.IncrementIntUserProfileBy("LoginCount", 1);
Repro.incrementIntUserProfileBy("LoginCount", 1);
Repro.incrementIntUserProfileBy("LoginCount", 1);
repro.incrementIntUserProfileBy("LoginCount", 1);
Repro.incrementIntUserProfileBy("LoginCount", 1);
await Repro.incrementIntUserProfileBy("LoginCount", 1);
Integer Decrement¶
Subtracts a value from the integer profile of the specified key.
[Repro decrementIntUserProfileBy:10 forKey: @"Credits"];
Repro.decrementIntegerUserProfile(by: 10, forKey: "Credits")
Repro.decrementIntUserProfileBy("Credits", 10);
ReproCpp::decrementIntUserProfileBy("Credits", 10);
Repro.DecrementIntUserProfileBy("Credits", 10);
Repro.decrementIntUserProfileBy("Credits", 10);
Repro.decrementIntUserProfileBy("Credits", 10);
repro.decrementIntUserProfileBy("Credits", 10);
Repro.decrementIntUserProfileBy("Credits", 10);
await Repro.decrementIntUserProfileBy("Credits", 10);
Decimal Increment¶
Adds a value to the decimal profile of the specified key.
[Repro incrementDoubleUserProfileBy:5.5 forKey: @"Score"];
Repro.incrementDoubleUserProfile(by: 5.5, forKey: "Score")
Repro.incrementDoubleUserProfileBy("Score", 5.5);
ReproCpp::incrementDoubleUserProfileBy("Score", 5.5);
Repro.IncrementDoubleUserProfileBy("Score", 5.5);
Repro.incrementDoubleUserProfileBy("Score", 5.5);
Repro.incrementDoubleUserProfileBy("Score", 5.5);
repro.incrementDoubleUserProfileBy("Score", 5.5);
Repro.incrementDoubleUserProfileBy("Score", 5.5);
await Repro.incrementDoubleUserProfileBy("Score", 5.5);
Decimal Decrement¶
Subtracts a value from the decimal profile of the specified key.
[Repro decrementDoubleUserProfileBy:25.0 forKey: @"Balance"];
Repro.decrementDoubleUserProfile(by: 25.0, forKey: "Balance")
Repro.decrementDoubleUserProfileBy("Balance", 25.0);
ReproCpp::decrementDoubleUserProfileBy("Balance", 25.0);
Repro.DecrementDoubleUserProfileBy("Balance", 25.0);
Repro.decrementDoubleUserProfileBy("Balance", 25.0);
Repro.decrementDoubleUserProfileBy("Balance", 25.0);
repro.decrementDoubleUserProfileBy("Balance", 25.0);
Repro.decrementDoubleUserProfileBy("Balance", 25.0);
await Repro.decrementDoubleUserProfileBy("Balance", 25.0);
Conditional Set and Increment/Decrement Operations for Standard User Profiles¶
Conditional set and increment/decrement operations are also available for standard user profiles.
Age (Conditional)¶
Sets a value only when age is not already set.
[Repro onlySetIfAbsentUserAge:25];
Repro.onlySetIfAbsentUserProfile(age: 25)
Repro.onlySetIfAbsentUserAge(25);
ReproCpp::onlySetIfAbsentUserAge(25);
Repro.OnlySetIfAbsentUserAge(25);
Repro.onlySetIfAbsentUserAge(25);
Repro.onlySetIfAbsentUserAge(25);
repro.onlySetIfAbsentUserAge(25);
Repro.onlySetIfAbsentUserAge(25);
await Repro.onlySetIfAbsentUserAge(25);
Gender (Conditional)¶
Sets a value only when gender is not already set.
[Repro onlySetIfAbsentUserGender:RPRUserProfileGenderMale];
Repro.onlySetIfAbsentUserProfile(gender: .male)
Repro.onlySetIfAbsentUserGender(UserProfileGender.MALE);
ReproCpp::onlySetIfAbsentUserGender(ReproCpp::UserProfileGenderMale);
Repro.OnlySetIfAbsentUserGender(UserProfileGender.Male);
Repro.onlySetIfAbsentUserGender(Repro.UserProfileGender.Male);
Repro.onlySetIfAbsentUserGender(Repro.GENDER_MALE);
repro.onlySetIfAbsentUserGender(repro.userProfileGender.Male);
Repro.onlySetIfAbsentUserGender(Repro.UserProfileGender.Male);
await Repro.onlySetIfAbsentUserGender(UserGender.male);
Email Address (Conditional)¶
Sets a value only when email address is not already set.
[Repro onlySetIfAbsentUserEmailAddress:@"user@example.com"];
Repro.onlySetIfAbsentUserProfile(emailAddress: "user@example.com")
Repro.onlySetIfAbsentUserEmailAddress("user@example.com");
ReproCpp::onlySetIfAbsentUserEmailAddress("user@example.com");
Repro.OnlySetIfAbsentUserEmailAddress("user@example.com");
Repro.onlySetIfAbsentUserEmailAddress("user@example.com");
Repro.onlySetIfAbsentUserEmailAddress("user@example.com");
repro.onlySetIfAbsentUserEmailAddress("user@example.com");
Repro.onlySetIfAbsentUserEmailAddress("user@example.com");
await Repro.onlySetIfAbsentUserEmailAddress("user@example.com");
Residence Prefecture (Conditional)¶
Sets a value only when residence prefecture is not already set.
// set the prefecture as "Tokyo"
[Repro onlySetIfAbsentUserResidencePrefecture:RPRUserProfilePrefectureTokyo];
// set the prefecture as "Tokyo"
Repro.onlySetIfAbsentUserProfile(residencePrefecture: .tokyo)
// set the prefecture as "Tokyo"
Repro.onlySetIfAbsentUserResidencePrefecture(UserProfilePrefecture.TOKYO);
// set the prefecture as "Tokyo"
ReproCpp::onlySetIfAbsentUserResidencePrefecture(ReproCpp::UserProfilePrefectureTokyo);
// set the prefecture as "Tokyo"
Repro.OnlySetIfAbsentUserResidencePrefecture(UserProfilePrefecture.Tokyo);
// set the prefecture as "Tokyo"
Repro.onlySetIfAbsentUserResidencePrefecture(Repro.UserProfilePrefecture.Tokyo);
// set the prefecture as "Tokyo"
Repro.onlySetIfAbsentUserResidencePrefecture(Repro.PREFECTURE_TOKYO);
// set the prefecture as "Tokyo"
repro.onlySetIfAbsentUserResidencePrefecture(repro.userProfilePrefecture.TOKYO);
// set the prefecture as "Tokyo"
Repro.onlySetIfAbsentUserResidencePrefecture(Repro.UserProfilePrefecture.TOKYO);
// set the prefecture as "Tokyo"
await Repro.onlySetIfAbsentUserResidencePrefecture(UserProfilePrefecture.tokyo);
Date of Birth (Conditional)¶
Sets a value only when date of birth is not already set.
NSDate *date = ... // Create an NSDate object for the user's birthday date
[Repro onlySetIfAbsentUserDateOfBirth:date];
let date = ... // Create an NSDate object for the user's birthday date
Repro.onlySetIfAbsentUserProfile(dateOfBirth: date)
Date date = ... // Create a Date object for the user's birthday date
Repro.onlySetIfAbsentUserDateOfBirth(date);
ReproCpp::onlySetIfAbsentUserDateOfBirth(2000, 12, 31);
DateTime date = ... // Create a DateTime object for the user's birthday date
Repro.OnlySetIfAbsentUserDateOfBirth(date);
let date = ... // Create a Date object for the user's birthday date
Repro.onlySetIfAbsentUserDateOfBirth(date);
let date = ... // Create a Date object for the user's birthday date
Repro.onlySetIfAbsentUserDateOfBirth(date);
let date = ... // Create a Date object for the user's birthday date
repro.onlySetIfAbsentUserDateOfBirth(date.getTime());
let date = ... // Create a Date object for the user's birthday date
Repro.onlySetIfAbsentUserDateOfBirth(date.getTime());
DateTime date = ... // Create a DateTime object for the user's birthday date
await Repro.onlySetIfAbsentUserDateOfBirth(date);
Age Increment¶
Adds the specified value to the current age.
[Repro incrementUserAgeBy:1];
Repro.incrementUserProfileAge(by: 1)
Repro.incrementUserAgeBy(1);
ReproCpp::incrementUserAgeBy(1);
Repro.IncrementUserAgeBy(1);
Repro.incrementUserAgeBy(1);
Repro.incrementUserAgeBy(1);
repro.incrementUserAgeBy(1);
Repro.incrementUserAgeBy(1);
await Repro.incrementUserAgeBy(1);
Age Decrement¶
Subtracts the specified value from the current age.
[Repro decrementUserAgeBy:1];
Repro.decrementUserProfileAge(by: 1)
Repro.decrementUserAgeBy(1);
ReproCpp::decrementUserAgeBy(1);
Repro.DecrementUserAgeBy(1);
Repro.decrementUserAgeBy(1);
Repro.decrementUserAgeBy(1);
repro.decrementUserAgeBy(1);
Repro.decrementUserAgeBy(1);
await Repro.decrementUserAgeBy(1);
User Profile Deletion¶
Deletes configured user profiles.
Custom Profile Deletion¶
Deletes the custom user profile for the specified key.
[Repro deleteUserProfile:@"Job"];
Repro.deleteUserProfile(forKey: "Job")
Repro.deleteUserProfile("Job");
ReproCpp::deleteUserProfile("Job");
Repro.DeleteUserProfile("Job");
Repro.deleteUserProfile("Job");
Repro.deleteUserProfile("Job");
repro.deleteUserProfile("Job");
Repro.deleteUserProfile("Job");
await Repro.deleteUserProfile("Job");
Standard Profile Deletion¶
Deletes standard user profiles.
Delete Gender:
[Repro deleteUserGender];
Repro.deleteUserProfileGender()
Repro.deleteUserGender();
ReproCpp::deleteUserGender();
Repro.DeleteUserGender();
Repro.deleteUserGender();
Repro.deleteUserGender();
repro.deleteUserGender();
Repro.deleteUserGender();
await Repro.deleteUserGender();
Delete Age:
[Repro deleteUserAge];
Repro.deleteUserProfileAge()
Repro.deleteUserAge();
ReproCpp::deleteUserAge();
Repro.DeleteUserAge();
Repro.deleteUserAge();
Repro.deleteUserAge();
repro.deleteUserAge();
Repro.deleteUserAge();
await Repro.deleteUserAge();
Delete Email Address:
[Repro deleteUserEmailAddress];
Repro.deleteUserProfileEmailAddress()
Repro.deleteUserEmailAddress();
ReproCpp::deleteUserEmailAddress();
Repro.DeleteUserEmailAddress();
Repro.deleteUserEmailAddress();
Repro.deleteUserEmailAddress();
repro.deleteUserEmailAddress();
Repro.deleteUserEmailAddress();
await Repro.deleteUserEmailAddress();
Delete Residence Prefecture:
[Repro deleteUserResidencePrefecture];
Repro.deleteUserProfileResidencePrefecture()
Repro.deleteUserResidencePrefecture();
ReproCpp::deleteUserResidencePrefecture();
Repro.DeleteUserResidencePrefecture();
Repro.deleteUserResidencePrefecture();
Repro.deleteUserResidencePrefecture();
repro.deleteUserResidencePrefecture();
Repro.deleteUserResidencePrefecture();
await Repro.deleteUserResidencePrefecture();
Delete Date of Birth:
[Repro deleteUserDateOfBirth];
Repro.deleteUserProfileDateOfBirth()
Repro.deleteUserDateOfBirth();
ReproCpp::deleteUserDateOfBirth();
Repro.DeleteUserDateOfBirth();
Repro.deleteUserDateOfBirth();
Repro.deleteUserDateOfBirth();
repro.deleteUserDateOfBirth();
Repro.deleteUserDateOfBirth();
await Repro.deleteUserDateOfBirth();