Skip to content
Bixlow, AI CRO agent

How can I show relevant content based on each visitor’s behavior?

You need a signal, a rule that turns it into a group, a change for that group and a slice that does not see it. How to choose the signal, examples that work and how to measure it honestly.

To show relevant content based on each visitor's behavior you need three things: a signal to read (where they came from, whether they've been before, which page they saw or what they touched), a rule that turns that signal into a group of visitors, and a change on the page for that group only. And a fourth one almost everyone skips: a slice of that group that doesn't see the change, so you know whether it actually helps. Below is how to choose the signal, examples that work and how to set it up without asking engineering for anything.

Step 1: pick a signal that says something

Not everything a visitor does deserves a reaction. Useful signals are the ones that change what that person needs to read. They come in two kinds.

What you know before they do anything. It arrives with the page and doesn't depend on their behavior on it:

  • Traffic source: the utm_source or the site that sent them. Someone arriving from an Instagram ad with an offer in mind expects to see that offer.
  • New or returning: a returning visitor already knows the brand and doesn't need the introduction.
  • Landing page: someone who came in through a blog post is at a different stage than someone who landed on a product page.
  • Device, language and country: mobile calls for shorter copy; country changes shipping, delivery times and payment methods.

What they do while on the page. Clicks, form fields they start and abandon, a category they visit several times, the cursor heading for the browser bar. It's the freshest signal, but also the easiest to over-read.

If you are starting out, start with the first kind. It's more stable, takes minutes to set up and usually has more volume.

Step 2: turn the signal into a rule

A signal does nothing until you turn it into a rule like "if this happens, this visitor is in this group". For example:

  • Comes from Instagram and is on mobile.
  • Is returning and their landing page contains /collection/.
  • Arrives with utm_campaign=black-friday.

In Bixlow those rules are saved as named audiences and reused: the same "Instagram mobile" audience can decide who a change runs for and who enters a test. You can combine country, language, device, browser, new or returning, URL, landing page, referrer and UTMs. If your site knows more about the visitor (say, whether they have an account or which plan they're on), you pass it with window.bixlow.identify() and it works in the rule too.

One detail that matters: the traffic source is stored the first time the visitor arrives. So "came from Meta Ads" is still true three pages later, when the UTMs are long gone from the URL.

Step 3: decide what changes for that group

The change has to answer what the signal says about the person. A few we often see working:

SignalWhat to change
Arrives from an ad with an offerRepeat the offer at the top, in the ad's own words
Returning visitorDrop the brand introduction and take them straight to what they looked at last time
Enters through a blog postA block with the related product, not the whole catalogue
MobileSticky buy button at the bottom, shorter copy
Country with different shippingThat country's shipping cost and time next to the price
Starts the form and leaves itA discreet reminder that answers the most common doubt

Notice that almost none of them is a discount. Often it's enough to answer a question or remove what's in the way. For more ideas by page type, see ecommerce personalization.

In Bixlow you ask for the change in the editor chat ("if the visitor comes from Instagram, replace the homepage headline with the ad's offer") and the agent builds it on your real page. For signals that happen on the page, like clicking an element or filling in a field, the workflow fires on that event. For something more elaborate, like exit intent, the agent writes the action that detects it. You check it in the preview before publishing.

Step 4: keep a slice without the change

This is where most personalisation goes wrong. A message for returning visitors will almost certainly "convert well", because returning visitors already converted better before. If you compare the personalised group with the rest of the site, you're measuring the difference between two kinds of visitor, not the effect of your change.

The honest way is to launch it as an A/B test inside the same audience: half the returning visitors see the change and half don't. In Bixlow that's a test with the audience applied. The split happens in the browser, each visitor always sees the same thing, and the verdict comes from Bayesian statistics once there's enough sample and duration. If the change doesn't improve anything, you'll know, and you won't leave it on the site for months thinking it works.

Mistakes we see often

  1. Too many segments at once. Every segment splits your traffic. With six small audiences you won't get an answer from any of them for months. Start with one or two big ones.
  2. Reacting to everything. A pop-up for every signal turns the site into a fairground. Cap the frequency and ask what the visitor gains from each message.
  3. Personalising with data that feels creepy. "Hi, visitor from Leeds" helps nobody. Use the signal to adapt the content, not to show off what you know. We talk about where the line is in personalization without being creepy.
  4. Not checking the rule with real data. Open the site with the URL your campaign would use (UTMs included) and check the change appears. Then, in a normal window, check it doesn't.

Frequently asked questions

Do I need a CDP or a CRM to personalise by behavior? Not to start. Source, device, new or returning and landing page are read by the script in the browser. If you later want to use data from your own systems, pass it with identify().

Does it slow the site down? The change is applied in the browser on the page that has already loaded, with a single script. Rules are evaluated in the visitor's own browser, with no round trip per decision.

Is it legal to personalise based on behavior? Using traffic source or device to adapt a page is common practice. Whatever you store in the visitor's browser has to be covered by your cookie policy and, where needed, by consent. Check it with whoever handles legal for your site.

Which Bixlow plan do I need? Audiences and A/B tests start on the Standard plan. If you'd like to see first what you'd change on your site, the free analysis proposes hypotheses with the evidence for each one.

Which segment should you personalise first?

Tell us where your traffic comes from and what you sell, and we will suggest the first audience and the change we would test for it. Free, no strings attached.

We'll only use your email to get in touch with you about this request.

AI CRO agent

Meet our AI CRO agent

What you just read, put to work by an agent: it understands your visitors, decides what to test or personalize, builds it on your site without a developer and tells you when a result is real.

Meet the agent