# Show returning visitors something different from new ones

> First-time visitors need an introduction; returning ones need a reason to act. How to tell them apart and show each the right message.

Use cases · Published 2026-11-01

A first-time visitor doesn't know you yet: they need to learn what you offer and why to trust you. A returning visitor already knows that, and the same introduction wastes their time. Showing each the right message takes two rules: one for a visitor's first visit, one for every visit after.

## How GeoEngage tells them apart

GeoEngage keeps a small visit count in the visitor's browser. A visit ends after 15 minutes without activity, so three conditions can tell visitors apart ([Behavior conditions](https://geoengage.app/docs/rules/conditions#behavior)):

| Condition | Matches |
| --- | --- |
| **First Visit** | Whether this is the browser's first visit. |
| **Visit Count** | How many visits this browser has made. |
| **Days Since Last Visit** | Whole days since the previous visit began. |

It's per browser, not per person: someone who visits on their phone and then their laptop counts as new on each. Clearing site data, or a private window, also starts them over.

## What to say to each

| Visitor | What helps | Example message |
| --- | --- | --- |
| First visit | What you offer, why to trust you | Free returns for 30 days on every order |
| Returning | A reason to act now | Welcome back! The items you looked at are still here |
| Back after a month | What's changed | New this month: the feature you asked for |
| Visited three times, hasn't signed up | A nudge | Questions before you decide? Book a 15-minute call |

The first two are a store's, the last two a software company's. The messages are examples: write your own, and only promise what's true.

## Build the two rules

1. **New visitors:** a rule with **First Visit** is `true`, and a **Show Banner** or **Sticky Bar** with your introduction.
2. **Returning visitors:** a rule with **First Visit** is `false`, and a **Show Notification** that welcomes them back.
3. Set each one's **Display Frequency** to *Once Per Session*, so it says its piece once a visit ([Display frequency](https://geoengage.app/docs/rules/timing#display-frequency)).
4. Choose **Save & Publish** on both.

[Try this rule in the GeoEngage rule builder](https://geoengage.app/try), no account needed.

For the longer gap, use **Days Since Last Visit** greater than `30`. A first-time visitor has no previous visit, so it never matches them.

## Leave out your customers

A returning visitor may already be a customer, and "first order discount" or "start your free trial" reads badly to them. If your site knows who's signed in, your code can tell GeoEngage with `setAttributes`, and a **Visitor Attribute** condition can then leave customers out of a rule ([Customer data conditions](https://geoengage.app/docs/rules/conditions#customer-data)).

## Check that it helped

Turn on **A/B Testing** for each rule, with one version against nothing, and judge it on your goal ([A/B tests](https://geoengage.app/docs/rules/ab-tests)). To see how new and returning visitors convert in general, save a [segment](https://geoengage.app/docs/analytics/segments) for each and compare them.

## Common questions

### Does this need cookies?

No. GeoEngage sets no cookies. The visit count lives in the browser's storage on your own domain ([Identity and storage](https://geoengage.app/docs/widget/storage)).

### Can it show the exact products they looked at?

Not by itself. A rule shows words you write. To mention products, your own code would have to pass them to GeoEngage, for example as an attribute.

---

Source: https://geoengage.app/blog/returning-visitors-different-message
