Skip to content


User segmentation is the process of separating users into distinct groups, or segments, based on shared characteristics. Developers might segment users based on language preferences, product version, geographical region, or user persona.

Balancy has several built-in segments:


Defines how much in total the player has already paid in the game:

- Killer Whale ≥$1500
- Whale ≥$500
- Orca ≥$150
- Dolphin ≥$30
- Minnow ≥$1
- None $0


Defines how often the player makes purchases.

- F0 (None)
- F1 (Daily)
- F3 (2-4 a Week)
- F7 (Weekly)
- F14 (Once per 2 Weeks)
- F30 (Monthly)
- F60 (Rarely)


Defines how much time passed since the last purchase.

None (never)
R0 (<1 day)
R1 (1-2 days)
R2 (2-7) days
R7 (7+ days)


Defines the maximum one-time payment the player can afford.

- $5
- $10
- $20
- $50
- $100

All the segments Balancy provides can be edited, and you can also create your own custom Segments. Just open the Segmentation section.

Below are some examples of custom Segments:

Service account

Section for programmers

Balancy informs the client if the client's segment has changed. Read more about ISmartObjectsEvents

namespace Balancy
    public class SmartObjectsEventsExample : ISmartObjectsEvents

        public void OnSegmentUpdated(SegmentInfo segmentInfo)
            Debug.Log("=> OnSegmentUpdated: " + segmentInfo?.Segment?.Name + " ; IsIn = " + segmentInfo?.IsIn);

If you would like to find a specific segment by its UnnyID, you can do so using DataEditor.GetModelByUnnyId:

var segment = DataEditor.GetModelByUnnyId<SegmentOption>(segmentUnnyId);

After you get the segment, you can do some cool things with it, like check if the end user is in the segment, using the IsInSegment method:

var isUserInSegment = LiveOps.Analytics.IsInSegment(segment);