Live · The personalization layer

Every visitor gets a page made for them.

Decided in real time, proven by a holdout.

AXO is a personalization layer that decides what every visitor sees, in under 200ms, without a CDP, an identity graph, or a data warehouse behind it.

It's one layer you touch three ways: a lightweight tag that senses and acts on the page, an app where your team drives, and agentic tooling so your own agent can drive it at a scale no team could.

Start free →See how it works ↓
CaptureDecideServeLearn
BEFORE YOU READ THE ARGUMENT

Same visitor. Same URL. Two different pages.

ILLUSTRATION

Dana lands on our pricing page twice, three days apart. Nothing about the URL changes, nobody logs in, and no rule was hand-written for her. The only thing that moved between these two renders is what she did on the site in between.

DR
Dana Rivera
anonymous · never filled a form
SAME URLaxoapp.ai/pricing
axoapp.ai/pricing
First visit · 40 seconds in

Personalization that proves itself.

One script tag. AXO reads what each visitor came for and reshapes the page to match, then measures whether that actually helped.

See how it works →
from googlesession 1scroll 22%no page repeats
AXO swapped · Headline · Primary CTA
WHAT CHANGED · BEHAVIOR
axoapp.ai/pricing
Third visit · after two docs pages

You have read how the holdout works. Here is what rollout looks like.

Install is one line and about 15 minutes. The 10% control group starts on the first impression, so your first reading is already causal rather than a before-and-after guess.

Start free trial →
directsession 3read /docs · holdout9m dwell
AXO swapped · Headline · Body · Primary CTA

Illustration – authored copy showing the two renders this page could serve, not a capture of a live result. The signals listed are ones the tag genuinely reads in-session; the wording is ours. Nothing here is a customer, and no figure on this page is a measurement.

01 · ONE LAYER, THREE WAYS TO TOUCH IT

Sense and act at the tag. Steer in the app, or through an agent.

ONE LAYER
THE TAG
<script
src="axo.js" defer>
~32kb · loads before your analytics · no server round-trip on the hot path
THE APP
The real AXO dashboard for a live store: 18,000 visitors scored in the last 24 hours and a verdict that AXO is winning by +27% over the held-back control, statistically significant at p<0.01.
AGENTIC TOOLING
segment.read()
variant.draft()
channel.fanout()
130+ MCP tools · drive any step

Sensing and acting happen at the tag. Steering happens in the app, or through an agent.

02 · WHAT IT DOES: THE LOOP

One loop. Every visitor. Every session.

Four things happen to every visitor, automatically, in the time it takes the page to paint. Then it repeats, getting smarter each cycle.

THE LOOP
steps 1–3 · <200ms
no human in the loop
1
Capture
signals in
2
Decide
segment out
3
Serve
before paint
4
Learn
bandit tunes
↻ compounds
1

Capture

The tag observes behavioral signals: scroll velocity, dwell, hover, pauses, tab-switches, source, time of day. No form, no login, no PII. Just what the visitor actually does.

2

Decide

Client-side scoring sorts the visitor into a segment: live, this pageview, recomputed as behavior shifts. No SQL, no batch refresh. Deterministic: same signals in, same segment out.

3

Serve

The matched variant renders in the zone: sub-200ms, before paint, zero flicker, frequency-capped. The visitor never sees the swap. They just see a page that fits.

4

Learn · compounds

A multi-armed bandit measures lift per segment per zone, reallocates toward what's winning, retires what isn't. Every cycle sharpens the next. No manual A/B readout, no stats team.

Steps 1–3 happen in under 200ms, per visitor, with no human in the loop. Step 4 is why the page gets better while you sleep. The loop is the product.
INSIDE THE APP

The loop is the idea. This is the surface.

Four screens, one tag. Every stage of the loop has a real place your team (or its agent) can watch, steer, and prove it: nothing mocked.

AXO · Live Feed
The AXO Live Feed: a real-time table of every page view, scroll, segment assignment, and personalization fire on the site, tagged by cohort and visitor.
CAPTUREEvery click, scroll, and segment assignment as it happens — the raw behavioral signal the loop reads from.
AXO · Profiles
An AXO visitor profile for a known Comparison Shopper: behavior and commerce stats, brand affinities, and an Identifiers panel stitching cookie, email, and hashed email into one identity.
IDENTIFYAnonymous sessions resolve into one known shopper — cookie, email, and hashed ID stitched together, with lifetime value, segment, and brand affinities attached.
AXO · Segments
The AXO Segments screen: K-means ML clusters (Desktop Cart-Hoverer, Hesitant Clicker, Mobile Quick Clicker, Trust-Seeking Deep Reader) deduped into the heuristic library, each with its traffic share, sessions, conversion rate, and measured lift.
DECIDEK-means finds the cohorts in your traffic, then dedupes each cluster against your heuristic library — every one carrying its live share, conversion rate, and measured lift.
AXO · The Toolkit
The AXO Toolkit: a capability spine of tools (Tag, Forms, Leads, Catalog, Profiles, Sessions, Enrichment) each exposed as an MCP server and REST endpoint, with the point tools they replace.
OPERATEYour whole stack on one spine: every capability is an MCP server and a REST endpoint, replacing ~$15k/mo of point tools.
THE 15 MINUTES, SHOWN

Four things happen, in this order.

Nobody believes a no-code claim from a sentence. This is the screen the work happens on, and the sequence you move through on it.

  1. 01

    Put the tag on the page

    One script tag, deferred. It goes in your tag manager or your head, and from that moment every session is being scored – before a single variant exists.

    your tag manager, or the head
  2. 02

    Point at what should change

    Click the element you want AXO to be able to swap and it becomes a zone, with a self-healing selector and a declared set of fields. No template edit, no release.

    Personalize · Content
  3. 03

    Write the variant, or have the agent draft it

    Pick the segment, write the copy. Draft with AI writes a first pass offline for you to approve – nothing generative runs on the live page. The preview beside the editor renders the result against your real site.

    Personalize · Content · Variants
  4. 04

    Publish, and the holdout starts with it

    From the first impression, a tenth of visitors keep the standard page. You do not opt into measurement later or run a separate test – the control group is already there.

    Publish
END TO END · about 15 minutes
AXO · Personalize / Content
The AXO variant editor: a Product Hero zone bound to /product* with its accepted fields, two variants across two segments, the Deliberator variant open with its target segment, priority and copy fields, a conversion-thesis card reading INSUFFICIENT EVIDENCE, and a live preview of the storefront with per-segment toggles beside it.
REAL CAPTUREStep 3, unretouched: the zone, its fields, the variant open for the Deliberator segment, and the live preview beside it. Note the conversion-thesis card refusing to produce a reading – “insufficient evidence · 0 sessions in the last 30 days, below the 30-session floor”. That is the product declining to assert something, in a screenshot, rather than us claiming it does.

Capture of the running app against a demo storefront, the same way the four screens above were taken. The content in it is demo data, not a customer's.

03 · WHAT YOU BUILD AROUND THE LOOP

The loop runs itself. You give it range.

The four-stage loop is automatic. These are the things you (or your agent) set up once and let it carry across every channel.

Install

One script tag, deferred. Live in an afternoon, not a six-month implementation.

Triggers

Cart, browse, dormancy, custom events. The same segment that personalizes the page fans out to email, paid social, push, and SMS, triggered by behavior, not a scheduled blast.

Campaigns + content

You write a brief. A drafting agent writes segment-specific copy and generates on-brand imagery under your brand guardrails. Bring your own model and DAM. A human approves before anything ships.

BRIEF
objective+ PDP CVR
offerfree returns
tonewarm, direct
drafting agent
brand + DAM
Deliberator"Read the reviews: 4.8★, free returns."
Surfer"Selling fast, grab yours today."
Gifter"Gift-ready: bundle + a note."
HUMAN APPROVES
then → ships
One brief → segment-specific copy and on-brand imagery, provenance-tracked and human-approved. Nothing generative runs at decision time.
04 · HOW YOU KNOW IT WORKED

Caused, not correlated.

Every other personalization tool tells you conversions went up. None of them can tell you whether their personalization is why. AXO runs an always-on 10% holdout: a random slice of traffic that gets the un-personalized page. The gap is the real, incremental revenue every change actually drove.

Personalized
Holdout control
incremental lift · +18%
ILLUSTRATION
↑ incremental lift
week 1week 4week 8week 12

The shape above is an illustration, not a customer's account. But when AXO does report that a segment lifted revenue 18%, that 18% is the difference against a live control group running the whole time: the closest thing to a clean causal read you can get on a live site. Not asserted. Measured.

AXO · Performance / Analytics
The AXO Analytics dashboard: revenue, conversion rate, average order and a landing-to-conversion engagement funnel for every scored session.
MEASUREDThe same read, live in the app: revenue, conversion rate, and the full landing-to-conversion funnel across every scored session.
THE DEMONSTRATION IS THIS PAGE

Everything above is a claim. This part is the product.

LIVE ON THIS PAGE

Every other vendor shows you a picture of their tool working. We are the personalization layer and this site runs our production tag, so the panel below is not an illustration of a decision – it is the decision AXO made about you, read back out of your own browser.

READING
Asking the tag what it decided for you.

The tag loads deferred, after your analytics, so this takes a moment.

AXO holds back 10% of visitors on every site it runs, this one included.
Whichever side of that you are on was decided before this section rendered.
WHAT THE TAG SAYSwindow.axo
VISITOR ID
SESSION ID
SEGMENT
HOLDOUT BUCKETED ON
Read from your browser. This panel sends nothing – the tag had already made these decisions before you scrolled here.
05 · HOW TRAFFIC IS ALLOCATED

Variants earn traffic. Nobody declares a winner.

Testing tools that wait for significance hold a fixed split for weeks, then wait for someone to read the dashboard, call the winner, and ship it. AXO runs a multi-armed bandit instead: every variant's share of traffic is recomputed each hour from the conversions it has actually driven, so traffic flows continuously toward what converts – and away from what doesn't – for as long as the variants are live.

Earning starts at the first impression

A new variant starts with an equal claim on traffic and earns more as evidence arrives that it converts. There's no test window to schedule and no end date to wait for – allocation is simply always running.

Losers get starved

A variant that isn't converting loses share automatically, until it's getting almost none. Nothing has to be switched off in a meeting – by the time you look, the winner is already carrying most of the traffic.

Steady for each visitor

The draw is deterministic per session, so a visitor keeps the same variant across pageviews instead of watching the page flip-flop mid-visit. The odds move between sessions, not under someone's cursor.

REAL EVIDENCE WINS

AXO's simulator can exercise a site before real visitors arrive – useful for demos and dry runs, dangerous if fake traffic could steer real allocation. So the optimizer enforces one rule: the moment a real visitor is exposed to a variant, simulated traffic is excluded from the evidence entirely. A simulated session can never outvote a real conversion.

And while a site is still running on simulated evidence, the dashboard says so: a SIMULATED DATA badge sits on the optimizer until real exposures arrive, then clears on its own. Numbers that came from a simulator are labeled as such – you are never left to guess.

One more boundary: the bandit only decides traffic shares. Every variant it allocates between was written, or approved, by a human – allocation is the part that runs on its own; authoring never is.

How the optimizer works, in the docs →
06 · HOW IT SCALES PAST YOU

A human can drive it. An agent can drive it to infinity.

Every operation in AXO (read a segment, draft a variant, rank an experience, fan out to a channel, tune the bandit) is one of 130+ MCP tools. The same actions your team takes by hand, your agent takes programmatically, at a speed and breadth no team could click through.

Explore the MCP server →
Capture
segment.read()
Decide
experience.rank()
Serve
variant.draft()
Learn
bandit.tune()
AGENT · 130+ MCP tools · drives every stage

The human stays in the loop, not out of it. You decide where the agent runs, and where it asks first.

07 · WHY IT'S DIFFERENT

No CDP. No identity graph. No warehouse. No hallucinating model in the decision.

The legacy way is four tools (a CDP, an experimentation tool, an activation tool, and an AI bolt-on) stitched across four contracts and a six-month implementation. AXO is one layer that does the whole loop.

AXO
5+ tool stack
Time to first variant
< 1 hour
3–6 months
Audience authoring
Cohorts emerge
SQL + manual rules
Anonymous visitor coverage
100%
Logged-in only
Decision latency
< 200 ms
Batch (hours–days)
Creative production
Generative, brand-governed
Separate tool or agency
Asset management
Built-in DAM + bring-your-own
Standalone DAM contract
Recommendations
Built-in (cooccurrence + embeddings)
Separate reco engine
Identity & CRM sync
Bidirectional (Salesforce, HubSpot)
One-way export
Channel fan-out
Built-in
Separate activation contract
Agent surface
130+ MCP tools
Dashboards only
Optimization
Self-tuning, per cohort
Manual A/B
Vendor count
1
5+

FOUR GUARANTEES THAT HOLD THE WHOLE THING UP

Deterministic

Rules and classical ML on the live path. No generative text deciding what a visitor sees. Same signals in, same experience out.

Identity-optional

Segments work on anonymous behavior. Layer identity in from your CRM only when it pays off.

PII-optional

Behavioral segmenting needs no PII. It enters only the channels that require it (email, CRM, paid audiences) and stays there.

Consent-first

Built-in consent gate, CMP integration, Google Consent Mode v2, GDPR + CCPA tiered. A visitor can drop their segment in one click.

Compare AXO head-to-head with Dynamic Yield, Optimizely, Insider →
WHAT YOU ARE ACTUALLY WORRIED ABOUT

The awkward questions, answered first.

Including the two most vendors leave out: what you get when there is not enough traffic to prove anything, and what happens when the measurement says the personalization did not work.

NOT ENOUGH TRAFFIC

What if we do not have the traffic to prove anything?

Then AXO will tell you that instead of showing you a lift number. The optimizer reports "insufficient evidence" until a comparison actually separates from the holdout, and it keeps reporting it for as long as that stays true. Lower-traffic sites still get the personalization; they just wait longer for a verdict, and the product is honest about the wait rather than dressing up noise as a win.

PAGE SPEED

What does the tag do to page speed?

It is one script tag, loaded deferred, so it runs after your analytics and never blocks rendering. Cohorting and the decision happen client-side in under 200ms, and swaps are applied per zone rather than by re-rendering the page, so your largest contentful paint is not waiting on us. If the tag is blocked or fails, the visitor gets your standard page.

YOUR DATA

What data leaves our site?

Behavioral signals from the session – pages, scroll, dwell, referrer, cadence – plus the identifiers you choose to send. No PII is required: AXO runs anonymous by default and personalizes on behavior alone, and identity is something you add later only if it earns its place. Nothing about the visitor is sold, shared, or pooled across customers.

NEGATIVE RESULT

What happens if the holdout says it did not work?

You get told. A variant that loses against the control is reported as losing, and the optimizer stops sending traffic to it rather than quietly reallocating and calling the total a win. This is the reason the holdout is always on and cannot be switched off per experiment – a control group you can disable when the news is bad is not a control group.

ENGINEERING

How much engineering time does this take?

One line to install, and about 15 minutes to go from the tag being live to the first personalized zone. Zones are defined by pointing at page elements rather than by editing templates, so the work after install sits with whoever owns the copy, not the release train.

REPLACING TOOLS

Do we have to rip out our CDP or A/B tool first?

No. AXO decides in-session on behavior it observes itself, so it does not need a warehouse, a CDP audience, or an identity graph to start. Teams typically run it alongside what they have and let the holdout readings decide what stays.

08 · FURTHER READING

The arguments behind the architecture.

Personalization that thinks. For every visitor.

The loop runs in an afternoon. Segments emerge from behavior. The bandit sharpens every cycle. A holdout proves it paid off.

Start free →See pricingBook a demo