Targeting

Audience Targeting

Choose which visitors are eligible for an experiment — new or returning visitors, plus rules on traffic source, browser, language, sessions and more.

Intermediate6 min read

Page rules decide where an experiment runs and devices decide on what. Audience targeting decides who: which visitors are eligible to be assigned a variant at all. You set it on the Targeting step of the experiment wizard, under the third question, 03 Who should see it?

A visitor who doesn’t match the audience never enters the experiment: they see your site as it is, and they aren’t counted in the results.

You can change the audience while the test is a Draft or Paused; pause a running test to change targeting.

The visitor cards

Three cards pick the basic audience. Exactly one is selected, and a tap saves it straight away.

  • All Visitors — the default. Everyone who matches the page rules and devices is eligible.
  • New Visitors — only people on their first visit to your site.
  • Returning Visitors — only people who have visited before.

How the script tells them apart: the first time it runs in a browser it stores a long-lived visitor ID. A visitor whose browser has no ID yet when their session starts is new; one whose ID was already there is returning. The verdict is pinned for the whole browser session, so a first-time visitor stays new on every page of that first visit and becomes returning from their next session on.

Advanced audience rules

Under the cards, open Advanced audience rules to add conditions on visitor attributes. The box shows Optional when it’s empty and the number of saved rules otherwise.

Click Add Condition to add a row, pick the Attribute, the Operator and the Value, then click Save rules (or Cancel to drop your edits). A row left with an empty value is dropped when you save.

Attribute Operators Values
Traffic source is, is not Paid social, Paid search, Organic search, Email, Direct, Referral
Browser is, is not Chrome, Safari, Firefox, Edge, Samsung, Other
Operating system is, is not iOS, Android, Windows, macOS, Linux, Other
Language is, is not, starts with A lower-case language code such as en or de
Sessions is, is not First session, 2 to 5 sessions, More than 5 sessions
Landing page is, is not, contains, does not contain, starts with, ends with A path such as /summer-sale
UTM campaign is, is not, contains, does not contain, starts with, ends with A campaign name, as in the utm_campaign parameter

A few values are checked when you save:

  • Language takes the two- or three-letter code only. The visitor’s browser language en-US counts as en, so Language is en matches every English variant.
  • Landing page is a path without spaces. With is, is not and starts with it must begin with /.
  • Spaces around a value are trimmed when you save.

Combining conditions

From the second row on, each condition starts with an and / or dropdown that joins it to the one above.

  • and — both conditions must hold.
  • or — either side is enough.
  • and binds tighter than or: A and B or C means (A and B) or C. Read the list top to bottom as groups joined by and, separated by or.

The visitor card applies on top of every group. Choosing New Visitors with the conditions A and B or C means (new and A and B) or (new and C) — a returning visitor never qualifies, whichever group they would match.

A worked example — new visitors who arrive from paid ads, on either network:

Card:                  New Visitors
Condition 1:           Traffic source  is  Paid social
Condition 2:  or       Traffic source  is  Paid search
Condition 3:  and      Language        is  en

This reads (new and Paid social) or (new and Paid search and en): the language condition belongs only to the second group. To require English for both, add Language is en to the first group as well.

How rules are evaluated on your site

The Split Test Pro script checks the audience in the visitor’s browser, after the page rules and devices have passed. A visitor must match all three — URL targeting, device targeting and the audience — to be assigned a variant.

  • Captured once per session. Landing page, UTM campaign and traffic source come from the first page of the browser session and stay fixed for the rest of it. Landing page is that first page’s path; UTM campaign is its utm_campaign parameter.
  • Counted per session. Sessions counts the visitor’s browser sessions on your site, increasing once per new session, never per page view.
  • Read from the browser. Browser and operating system come from the user agent; language from the browser’s language setting.
  • Case-insensitive. UTM campaign is Summer-Sale matches summer-sale.
  • A missing signal fails closed. When the script can’t determine an attribute — no usable browser language, or a session count it couldn’t store because the browser blocks storage — every condition on that attribute is false, including is not. Unknown is never “not X”.

Traffic source is worked out from the landing page’s UTM parameters and the referring site, checked in this order (the first match wins):

Traffic source When
Paid social utm_medium is paid_social, paidsocial or social_paid; or utm_source is a social network (facebook, instagram, tiktok, pinterest, linkedin, x, twitter) with a medium containing paid or cpc
Paid search utm_medium is cpc, ppc, paid, paidsearch or sem
Email utm_medium is email or newsletter
Organic search The visitor came from a search engine (Google, Bing, DuckDuckGo, Yahoo, Baidu, Yandex, Ecosia)
Direct No referring site and no UTM parameters
Referral Anything else, such as a link on another site

Only a referring site on a different hostname from the landing page counts; moving between pages of the same site is not a referral.

Limits

  • Up to 20 rules. When the set is full, Add Condition is disabled and the box reads Up to 20 rules. A New Visitors or Returning Visitors card is stored as one extra rule at the head of each or group, so it counts toward the 20.
  • Values up to 256 bytes each.
  • No Country. Location targeting is not offered today; for geo-specific behaviour, use a JS variant.
  • No logged-in status or cart contents. Use a JS variant for those too.

Reading results by audience

You don’t need audience targeting just to compare groups. On the Results tab, the Visitors filter splits any experiment into New visitors and Returning visitors, and the Advanced filter narrows the report with the same attributes as the rules above. See Segmenting Results.

Common mistakes

  • Targeting an audience you could filter instead. Every condition shrinks the experiment’s traffic and slows it down. If you only want to see how new visitors responded, run on everyone and use the Visitors filter.
  • Mixing and and or without grouping in mind. An and after an or belongs only to the last group. Repeat the condition in each group that needs it.
  • Expecting “is not” to include unknowns. Language is not de excludes visitors whose language can’t be read, not just German speakers.
  • Testing your audience with the preview link. Preview skips audience rules; check as a real visitor instead.
  • Forgetting that landing page is the session’s first page. Landing page is /summer-sale matches a visitor on every page of a session that started on /summer-sale, and never one who reached it from your home page.

Next steps

Ready to ship a winner?
Start free today.

Sign up free in under a minute — no credit card, no installation steps until you're ready.

  • No credit card
  • 14-day free trial