Personalization
Personalization allows you to specify the conditions of a promotion that applies to certain authorized users. When setting up a promotion, you can define which user attributes are used as a condition(s). For example, players with a certain level or number of transactions can receive a discount when purchasing virtual items.
Setting up a personalization is available with any authentication type: through User ID or Xsolla Login.
User flow
- The user goes to the landing page with personalized content.
- The user clicks Log in and authorizes through User ID or Xsolla Login.
- User sees additional personal offers.
- The user clicks Buy now and pays for items.
Set up attributes
The sequence of attribute settings depends on the user authorization option used in the Web Shop.
User attribute validation rules
To create user attribute validation rules:
- Open your project in Publisher Account.
- In the side bar click Login.
- Click Configure in the pane of a Login project.
- Go to the User database block and select the User attributes schema section.
- Specify the attribute validation rules in JSON Schema format (optional):
- In the
properties
field, specify a set of user attributes and their properties. Allowed data types:string
,number
,integer
, orboolean
. The object’s depth: 1. - In the
additionalProperties
field, specify whether it is possible to create additional fields not listed in theproperties
object. Set the value totrue
if you want to allow additional fields orfalse
to disallow. - In the
required
field, specify a list of required attributes. - Set the value of the
type
field toobject
.
- In the
JSON Schema example:
- json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"game": {
"description": "Name of the game played by user.",
"type": "string"
},
"age": {
"description": "User's age.",
"type": "integer"
},
"had_ban": {
"description": "Whether the user was banned.",
"type": "boolean"
},
"last_purchase": {
"description": "Date of user's last purchase.",
"type": "string",
}
},
"additionalProperties": false,
"required": [
"age",
"game",
"last_purchase"
],
"type": "object"
}

Catalog display rules
You can use Publisher Account or API calls to manage the rules that specify how the catalog based on configured attributes is displayed. This includes the set and quantity of items and the conditions that will be applied to these items.
A rule can contain an unlimited number of items of the following types:
- item
- bundle
- package of currencies
- game keys
You can create, modify, delete, activate, or deactivate rules. You can create multiple conditions with the same user attribute in one rule.
To create a catalog display rule:
- Open your project in Publisher Account.
- Click Store in the side menu.
- In the Catalog Management pane, click Configure.
- In the Catalog display rules pane, click Configure.
- Click Create rule.
- Specify the name of the rule and set the conditions for displaying the item in the catalog.
- Set the items to which the rule will be applied.
- Check the settings.
- Click Save.
Set up a promotional campaign with discounts
To start a promotional campaign with a discount:
- Open your project in Publisher Account.
- In the side bar click Store.
- Click Promotions > Create promotion.
- Specify the following parameters:
- Enter the promotion title.
- Choose Discount as a promotion type.
- Set up discounts that apply to one or several items.
- Set the discount amount.
- Click Next.
- If you want to set up promotion for specific users, switch the Trigger promotion only for specific users toggle to On and specify the condition(s).
- If you want to limit the availability of a promotion to specific users, switch the Limit number of times one user can use promotion toggle to On and specify the number.
- Click Next.
- Set the campaign start and end dates.
- Click Next.
- Check the settings and click Save and exit.
- Click Store in the side menu and go to Promotions.
- Select the promotion, click the ••• menu button to open a menu and click Edit plan.
- Activate the promotion.
Was this article helpful?
Rate this page
Don’t want to answer
Thank you for your feedback!
Found a typo or other text error? Select the text and press Ctrl+Enter.