Skip to main content
Represents the types of entitlements that can be granted when a user accepts an offer. Each entitlement type includes optional value and unit fields for specificity.

Definition

public enum Entitlement {
  case freeTrial(value: Double? = nil, unit: EntitlementUnit? = nil)
  case discount(value: Double? = nil, unit: EntitlementUnit? = nil)
  case credit(value: Double? = nil, unit: EntitlementUnit? = nil)
}

public enum EntitlementUnit {
  case months
  case days
  case percent
  case dollars
}
Entitlements may expire over time. Use isActive() or isActivePublisher() to check current status rather than storing the entitlement object.

Entitlement Types

CaseAssociated ValuesDescription
.freeTrialvalue: Double?, unit: EntitlementUnit?Time-limited free access to premium features. Common units: .days, .months
.discountvalue: Double?, unit: EntitlementUnit?Percentage or dollar-based discount. Common units: .percent, .dollars
.creditvalue: Double?, unit: EntitlementUnit?Account credits applied to user’s balance. Common unit: .dollars

Entitlement Units

UnitDescriptionTypical Use
.monthsDuration in monthsFree trials (e.g., “3 months free”)
.daysDuration in daysFree trials (e.g., “30 days free”)
.percentPercentage valueDiscounts (e.g., “20% off”)
.dollarsDollar amountDiscounts or credits (e.g., “$10 off”)
Entitlements are automatically tracked and synced across devices when you call identify().