Skip to content
Platform · Audiences

Targeting without a rules-engine cliff.

10 condition types. AND / OR nesting. Reusable segments across experiments and flags.

01 — Conditions

10 conditions. Three categories.

Context

What the browser already knows — location, device, URL.

  • Locationcontext
  • Devicecontext
  • Browsercontext
  • Platform (OS)context
  • Languagecontext
  • Query paramcontext
Identity

Who the visitor is — cookies, return behavior, your own IDs.

  • Cookieidentity
  • New vs returningidentity
Custom

Your app’s own attributes — anything you pass in.

  • Custom attributecustom
  • Custom JavaScriptcustom
02 — Nested rules

AND / OR. As deep as you need.

Every condition is a leaf. Group leaves with AND or OR, then nest groups inside other groups. No artificial depth limit, no rules-engine vendor-speak — just the algebra your stats team already uses.

Conditions evaluate in the order that short-circuits fastest, so a 6-level rule tree costs the same as a flat one for most visitors.

AND
  Location = US, CA
  OR
    Device = Mobile
    AND
      Browser = Chrome
      New vs returning = returning
  Custom attribute plan = 'pro'
03 — Segments

Reusable segments. Define once. Attach to many.

Save a rule tree as a segment. Reference that segment from as many experiments and feature flags as you want. Change the segment definition once — every place it’s used updates.

Segments version automatically. Roll back the segment, roll back every audience that references it.

Segment
us-mobile-pro
3 conditions · AND
Attached to
  • exp · pricing-tiers
  • exp · onboarding-flow
  • flag · new-checkout
  • flag · referral-bonus
04 — Where they evaluate

Client-side or server-side. Same rules, either way.

SNIPPET

Client-side, for experiments.

The browser snippet evaluates audience rules locally — the full datafile ships with the page, so there’s no round-trip. Context conditions (location, device, browser, URL) come from navigator, window, anddocument.

  • No server hop per visitor.
  • Custom attributes via window.avsb.setAttribute.
  • Custom JS conditions run in an isolated scope.
NODE SDK

Server-side, for flags.

The Node SDK runs the same rule engine in your backend. Pass a user context object with any identity or custom attributes, and the SDK returns a consistent variation — no client round-trip needed.

  • Deterministic bucketing across services.
  • Redis sticky bucketing for multi-instance apps.
  • SSE streaming so flag updates arrive live.

Show the right visitors the right experiment.

Start free — no card. Build your first audience in minutes.