How to use this lab
The left panel shows three rules, defined the way you'd configure them in Launch's UI. The
right panel shows the evaluation log when you fire the chosen event. Change the event type,
the URL, the page section — the log re-runs instantly. Match Launch's behaviour: rules don't
fire unless their event and all their conditions are true.
Configured rules
Rule 01 · Page View order: 50
When (event)
Library Loaded (Page Top)
If (conditions)
(none — always fires)
Then (actions)
• Set pageName = %Page Name%
• Set channel = %Section%
• Send Beacon (page view)
Rule 02 · PDP enrichment order: 50
When (event)
Library Loaded (Page Top)
If (conditions)
• URL path starts with /products/
Then (actions)
• Set eVar4 = %Product SKU%
• Set prop4 = %Category%
• Set events = "prodView"
Rule 03 · Add to Cart order: 50
When (event)
Click — selector matches button[data-cta="add-to-cart"]
If (conditions)
• URL path starts with /products/
Then (actions)
• linkTrackVars = "events,products,eVar4"
• linkTrackEvents = "scAdd"
• events = "scAdd"
• Send Beacon (link click 'o')
Rule 04 · Purchase order: 50
When (event)
Direct Call — identifier = "purchase"
If (conditions)
(none)
Then (actions)
• events = "purchase:" + %Order ID%
• purchaseID = %Order ID%
• Send Beacon (page view)
What the simulator models
- The Launch event filter: a rule only enters evaluation if its event type matches
what just fired. All other rules are skipped before any condition is checked.
- The Launch condition evaluator: each condition is read top-to-bottom. The first
that returns false aborts the rule.
- The Launch action sequence: actions run in order, accumulating state on a virtual
s object. The final state is what the Send Beacon action transmits.
- The Launch order attribute: when several rules match the same event, they execute
in ascending order value. All four rules above sit at order 50; in production you'd lower this
on rules that must run first (e.g. clearing variables).
What it does not model
- Asynchronous data elements (custom-code data elements that return a Promise).
- Cross-rule sharing of variables — in real Launch, the
s object persists across
rules in the same page-load.
- Extensions other than Adobe Analytics — Target, Audience Manager, Web SDK extensions all
introduce their own actions.
- Browser timing — Library Loaded (Page Top), DOM Ready, Window Loaded, History Change fire
at different stages of page lifecycle in real Launch.
Treat this as a teaching model — it captures the decision logic but not the operational
details. For the real engine, build a property in Adobe's Tags UI and read the
_satellite.setDebug(true) log; it walks the same steps with the real data.