Page Count Segment
BehavioralSegments visitors by total page views into high-engagement or low-engagement. Use this to show more aggressive CTAs or personalized offers to visitors who have browsed deeply. Returns "high-engagement" when pageCount ≥ threshold (default 5), otherwise "low-engagement".
Identifies whether the current visitor is returning or brand new. "returning" means the visitor has a daysSinceLastVisit value on their profile. Use this to suppress welcome flows for repeat visitors or show loyalty messaging. Returns "returning" or "new".
Visit Frequency
BehavioralClassifies visitors by how many total sessions they've had — ideal for frequency-based targeting in retention and re-engagement campaigns. Adjust the thresholds to match your site's traffic patterns. Returns "frequent", "occasional", or "infrequent".
Days Since Last Visit
BehavioralRecency segmentation based on how many days have passed since the visitor last came to the site. Ideal for win-back campaigns targeting lapsed users. Returns "new" (no prior visit), "active" (recent), "cold" (been a while), or "lapsed" (long absence).
Tracks cumulative session count to gauge visitor loyalty over time. Use to graduate visitors through messaging tiers — first-timers see intro content, casual users see engagement nudges, loyal users see retention offers. Returns "first-time", "casual", or "loyal".
Returns the raw device type stored on the visitor's profile — typically "desktop", "mobile", or "tablet". Use this as a profile attribute condition in activities that require device-specific content, or combine it with other signals for richer segments.
Referral Source
ContextualClassifies inbound traffic by its origin — great for aligning page messaging to the visitor's acquisition channel. Paid search visitors might see price-first messaging; social visitors might see social proof. Returns "paid-search", "social", "direct", or "organic".
Identifies the visitor's browser family for browser-specific targeting or analytics segmentation. Useful when testing layouts that render differently across browsers, or when segmenting out legacy browser traffic from modern experiences. Returns "chrome", "firefox", "safari", "edge", or "other".
Mobile vs Desktop
ContextualSimple binary split that collapses mobile and tablet into one bucket. More straightforward than Device Type when you only need two content variations. Use this when your A/B test or experience has distinct mobile vs. desktop layouts. Returns "mobile" or "desktop".
Mbox Name Segment
ContextualReturns a value only when a specific mbox fires, making it easy to scope a profile attribute to a particular page or funnel step. Use it to flag visitors who land on a key page (e.g., checkout, product detail) so you can target them in subsequent visits. Returns the configured match value, or null for all other mboxes.
High Value Visitor
EngagementCombines page view depth and session count to identify your most engaged visitors — those who keep coming back AND browse deeply each visit. Use this to unlock premium offers, surface priority support options, or show high-intent conversion messaging. Returns "high-value" or "standard".
Engagement Score
EngagementComputes a numeric engagement score by weighting page views and sessions. Returns the score as a string so it can be stored as a profile attribute and used in Target audience conditions (e.g., "score >= 20"). Tune the weights based on which signal matters more on your site.
Multi-tier loyalty classification based on cumulative session count — analogous to a simple loyalty program without requiring a login. Great for surfacing tier-appropriate messaging (Bronze gets introductory offers, Gold gets VIP messaging). Returns "gold", "silver", "bronze", or "none".
First Session Flag
EngagementDetects whether this is the visitor's very first session on the site. Use this to trigger onboarding flows, suppress re-engagement messaging for first-timers, or show a "welcome" experience that only appears once. Returns "first-session" or "repeat".
Custom Attribute Check
CustomReads any profile attribute by key — a generic utility for surfacing custom data already stored on the visitor's profile, such as CRM segments, loyalty status, or preferred category. Specify the attribute key and a fallback default if the attribute hasn't been set yet.
Deterministic even/odd split using page view count parity. Because pageCount is unique to each visitor's history, this creates a stable, consistent split within a session. Use as a lightweight way to assign visitors to experience buckets when you need a profile-script-driven variant, not an Activity split. Returns Variant A or Variant B.
Sets a profile attribute value and immediately returns a separate value in one script execution. Useful when you need to stamp a visit-level flag on the visitor's profile (e.g., "promotionSeen = true") while also returning a targeting value for the current mbox request. Returns the configured return value.
Empty starting template for writing a custom profile script from scratch. Profile scripts run server-side on each mbox request — use user.get('key') to read profile attributes, user.setAttribute('key', value) to write them, and return a string value to store on the profile for use in audience conditions.