Skip to content

Segmentation

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:

Monetary

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

Frequency

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)

Recency

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)

MaxPay

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);