{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"redocly_category":"Products","product_name":"Real-time","type":"markdown"},"seo":{"title":"Creating a Real-time 2.0 A/B Test","description":"Treasure Data Product Documentation · Collect and Unify · Segment and Activate · Experiment and Analyze · Decisioning Automate with AI Scale and Trust.","siteUrl":"https://docs.treasuredata.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"creating-a-real-time-20-ab-test","__idx":0},"children":["Creating a Real-time 2.0 A/B Test"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This feature is in BETA version. For more information, contact your Customer Success Representative."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Real-Time A/B Testing allows marketers to experiment and optimize customer journeys by testing multiple variants of a campaign treatment—such as message content, timing, or delivery channel—in real time."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With A/B Testing in Treasure Data Real-Time Journeys, you can test what works best and continuously improve performance without waiting for batch updates."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/creating-a-realtime-time-ab-test-2025-10-09-4.7c8c183e6cf420261b3216adf8e88229fdd10658a751bbc1f9bea4503d363387.5b2238d2.png","alt":"Real Time AB Test"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"key-capabilities","__idx":1},"children":["Key Capabilities"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-create-ab-tests-in-journey-flows","__idx":2},"children":["1. Create A/B Tests in Journey Flows"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add A/B Test steps anywhere in the journey (except after end or jump nodes)."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create up to 8 variants plus an optional control group."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Customize test and variant names (default: A–H)."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Split traffic equally or assign custom percentages."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Supports nested tests (up to 10 layers) and merge branches post-test."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-automatic-variant-assignment","__idx":3},"children":["2. Automatic Variant Assignment"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Users are randomly and consistently assigned to a variant when they reach the A/B test node."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Variant assignment is based on a stable internal ID, ensuring consistent treatment across sessions and re-entries."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-persisted-test-membership","__idx":4},"children":["3. Persisted Test Membership"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Variant assignments are stored and can be referenced for downstream analytics and targeting."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Even after users exit a journey, their test membership is retained for future re-targeting or analysis."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"coming-soon-in-future-milestones","__idx":5},"children":["Coming Soon in future milestones"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following enhancements are planned for an upcoming milestone:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"activation-with-variant-metadata","__idx":6},"children":["Activation with Variant Metadata"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Marketers will be able to pass A/B test and variant data to external systems during activation. This will support downstream personalization and performance measurement."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Activation payloads will include the test name and variant (if assigned)."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If multiple A/B tests are nested, the system will send the closest relevant variant."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"drag-on-rules-for-segment-targeting","__idx":7},"children":["Drag-On Rules for Segment Targeting"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the Real-Time Segment Editor, marketers will be able to include or exclude profiles based on their A/B test group membership."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Support for targeting current or historical variant members."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Useful for follow-up actions, retargeting, or suppressing specific variants."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"safeguards--deletion-protection","__idx":8},"children":["Safeguards & Deletion Protection"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Edit Protection: Once a journey is launched, A/B tests within it cannot be changed."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Delete Protection: A journey cannot be deleted if one of its A/B tests is referenced in another journey. This prevents accidental breakage of dependent experiments."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example-use-case","__idx":9},"children":["Example Use Case"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Campaign Objective: Optimize email subject lines"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Stage 1: Add an A/B Test node testing two subject lines (Variant A and Variant B)."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Stage 2 (Future): Use a drag-on rule to only show a follow-up offer to users from Variant A who opened the email."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Analysis (Future): Export variant membership through activation metadata to evaluate click-through and conversion rates."]}]}]}]},"headings":[{"value":"Creating a Real-time 2.0 A/B Test","id":"creating-a-real-time-20-ab-test","depth":1},{"value":"Key Capabilities","id":"key-capabilities","depth":2},{"value":"1. Create A/B Tests in Journey Flows","id":"1-create-ab-tests-in-journey-flows","depth":3},{"value":"2. Automatic Variant Assignment","id":"2-automatic-variant-assignment","depth":3},{"value":"3. Persisted Test Membership","id":"3-persisted-test-membership","depth":3},{"value":"Coming Soon in future milestones","id":"coming-soon-in-future-milestones","depth":2},{"value":"Activation with Variant Metadata","id":"activation-with-variant-metadata","depth":3},{"value":"Drag-On Rules for Segment Targeting","id":"drag-on-rules-for-segment-targeting","depth":3},{"value":"Safeguards & Deletion Protection","id":"safeguards--deletion-protection","depth":2},{"value":"Example Use Case","id":"example-use-case","depth":2}],"frontmatter":{"seo":{"title":"Creating a Real-time 2.0 A/B Test"}},"lastModified":"2025-12-02T09:24:53.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/customer-data-platform/real-time/creating-a-realtime-ab-test","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}