Overview
Experiences are the always-on side of Activate. Unlike experiments, which split traffic across variants for measurement, an experience runs for every visitor who matches its targeting conditions, every time they visit. This makes them ideal for persistent personalization like abandoned cart nudges, first-time visitor welcomes, or geography-specific promotions.
An experience and a rule are the same underlying object. Creating or editing an experience opens the shared rule editor, so everything that applies to a rule applies here. The key thing to understand is how the action model works: the Activate engine fires data layer events, and your own GTM tags listen for those events and render the visible change. The engine itself does not draw popups, banners, or swap content.
Navigate to Experiences
Open your property and go to Activate > Experiences from the left sidebar. You'll land on a list of every experience configured on the property, with its status, priority, activation count, and last modified time. Click New Experience in the top right to create one, or Browse Playbooks to clone a proven template.
The list is scoped to the property selected in the top nav. Make sure you're in the right property before creating, otherwise the experience will attach to the wrong site and won't appear where you expect it.
Pick a mode
New experiences ask you to choose a mode, and the choice is permanent. Simple gives you a visual condition builder, audience targeting, and an action builder, which covers most personalization needs. Advanced opens a raw SDK rules JSON editor with variables, JsonLogic, filters, and aggregates for multi-rule cascades.
Pick Simple unless you already know you need JsonLogic or cross-rule aggregates. Because the choice can't be changed later, an experience built in Simple mode stays in the visual builder for its whole life, and an Advanced experience stays in the JSON editor.
Set targeting
Choose Inline Conditions or Use Audience. Inline conditions are built from a context, a property, an operator, and a value. Available contexts include cart, session, user, utm, referrer, url, device, geo, time, localstorage, sessionstorage, cookies, and querystring. Operators include equals, contains, starts with, greater than, in list, regex match, and exists.
Multiple conditions combine with AND logic, so every condition must be true for the experience to fire. To reuse a segment definition across many experiences, reference a pre-built audience from the Audiences module instead of rebuilding the same conditions each time. If you skip targeting entirely, the experience fires for every visitor, which is rarely what you want.
Be deliberate about scope. Over-broad targeting means the same event fires everywhere and the personalization loses impact. Too-narrow targeting means the experience rarely fires. Start tight, then widen if you're confident the message is universally relevant.
Define actions
Add one or more actions. Each action pushes a data layer event with an event name and optional event parameters, entered as key and value pairs. When the targeting conditions match, the Activate engine pushes those events to the page's data layer. That is the entirety of what the engine does at the action stage.
The engine does not render popups, banners, content swaps, or pre-filled forms on its own. To produce a visible change, you create a GTM tag that triggers on the event name your action pushes, and that tag renders the popup, swaps the content, or whatever the experience is meant to do. The Generate GTM Code page helps you wire those tags so your data layer events line up with the right triggers.
This separation is deliberate. It keeps the rendering logic in GTM, where your tagging team already works, and lets a single experience drive multiple downstream tags. It also means an experience that "fires" in Activate but shows nothing on the page is almost always a missing or mistriggered GTM tag, not a broken experience.
Set priority and status
Use the priority slider, from 1 to 100, to control evaluation order. Higher priority experiences evaluate first, which matters when more than one could match the same visitor. Use the Fire Once toggle to limit an experience to once per session rather than firing on every matching page view.
Set Status to Draft, Active, Paused, Completed, or Archived. Only Active experiences are included in generated GTM code, so an experience does nothing until you both set it Active and publish the corresponding GTM code. Toggle to Paused to stop it without deleting it. Completed suits a finished time-bound campaign, and Archived removes it from the default list without deleting the configuration.
Experiences are always-on, so every matching visitor triggers them on every visit, unlike experiments which split traffic. The action model is data layer events, not built-in popup or banner widgets, so always pair an experience with the GTM tags that render the change. Events fired by an experience are also captured by Echo, so you can route them server-side to ad platforms without extra configuration.
Troubleshooting
Experience is Active but nothing happens on the site
This is almost always a GTM wiring problem, not an Activate problem. Confirm the experience is firing its data layer event by opening GTM Preview and watching for the event name your action pushes. If the event appears in the data layer but nothing renders, the GTM tag that should listen for that event is missing, paused, or triggered on the wrong event name. If the event never appears, check that the Active experience was included in the published GTM code.
Event fires on the wrong pages
Review your targeting conditions for overly broad rules. The most common culprit is a url condition using "contains" instead of "equals", which matches more pages than intended. Tighten the match and the experience will only fire where you want.
Status change didn't take effect
Only Active experiences are written into generated GTM code, so changing status is not enough on its own. After you set an experience Active or Paused, regenerate and republish the GTM code from the Generate GTM Code page. If you toggled status and behavior didn't change, the old GTM code is still live.