How to Implement A/B Testing for Anonymous Users in Uesio?


Hi Team,

I have recently deployed a Wealth Goals Calculator app (Link: Uesio) and am now looking to implement an A/B Testing framework to optimize our conversion funnel.

Current Workflow:

User Profile: The application is public-facing; all users are anonymous/guests.

Conversion Event: The primary conversion occurs when a user submits their email address to gate the final PDF report generation.

Objective: To split traffic between two UI variants (A and B) and identify which layout yields a higher email-capture rate.

I would appreciate your guidance on the most efficient, metadata-driven approach within Uesio for the following:

Session Persistence & Assignment: For anonymous users, what is the best practice for assigning a variant (A/B) on the initial load and ensuring the assignment remains “sticky” throughout the user journey?

Conditional UI Rendering: What is the recommended method to toggle between these two UI versions on a single page? Should this be handled via component visibility rules linked to a client-side state, or is there a more performant architectural pattern in Uesio?

Lead Attribution: Since the email is captured right before the PDF is generated, how can I best ensure the assigned variant “tag” is accurately attributed and saved alongside the lead record in the collection?

I want to ensure the implementation aligns with Uesio’s core principles for performance and scalability. Looking forward to your insights and best practices!

Hi @rbdwt09

Thanks for the detailed context and for sharing the Wealth Goals Calculator – this is great.

Here’s how I’d approach it within uesio’s architecture and principles:

  1. Session persistence & variant assignment

On first page load, generate or read a client-side identifier (e.g., from localStorage ) and use a simple deterministic split to assign the user to variant A or B (for example, hash or modulo on that ID).

Store both the identifier and the chosen variant in page/app state so they remain sticky for the entire session; for multi-page flows, pass this state through navigation or store it in a lightweight collection keyed by that anonymous ID if you need cross-session consistency.

  1. Conditional UI rendering

Keep both UI variants on a single uesio page and control which one renders using visibility rules bound to the variant value in client state.

This avoids extra round-trips, keeps layout logic metadata-driven, and lets you iterate quickly: you can change the split logic or add more variants without restructuring navigation.

  1. Lead attribution

When the user submits their email (right before PDF generation), include the variant value and the anonymous ID with the payload that writes to your lead collection.

That way every lead record has fields like ab_variant and anonymous_session_id , which you can then use for funnel analytics, experiment reporting, and any downstream attribution logic.

  1. Alignment with uesio performance & scalability

This approach is metadata-driven (variant in state, visibility rules on components, variant stored as fields on the lead record) and keeps the runtime logic simple and stateless on the server side.

It also scales well: all heavy lifting stays client-side, and the back end only receives a couple of extra fields on the lead write, which is negligible from a performance standpoint.

Hope this helps, it’s not quite uesio functionality out of the box and leans more towards developer tips & tricks/analytics knowledge.

Best Regards