Skip to main content
Choose one primary goal and keep a holdout group. Results compares sessions assigned to personalization with sessions that kept the original.

Choose a goal

For an event goal:
Create a matching goal named demo_requested. Prefer a successful action over the click that starts it.

Read the comparison

Review session counts, conversion rates, lift, and the confidence interval together. Small samples and wide intervals need more evidence. Variant-level rates are observational: different visitors receive different variants. Use the website-level personalized-versus-holdout comparison for the main outcome.
The browser and server deterministically bucket the logical site ID, experiment salt and anonymous visitor ID. The configured personalized percentage determines the holdout fraction. Membership is stable for the same inputs and allocation; changing the threshold can move visitors, and restarting can change the experiment context.Holdout visitors keep originals and skip model calls. Paused experiments produce the off group. Previews always personalize and are measured separately. A personalized visitor can still receive originals because of weak context, fallbacks or rendering guards.Retain a nonzero holdout to estimate lift. Setting 100% personalization removes the contemporaneous original comparison. Decide the primary goal and analysis window before drawing conclusions.
Up to 20 goals are supported, with exactly one primary when the list is nonempty. Repeated firing of the same goal within 1.5 seconds is deduplicated. Conversion rates count sessions with at least one conversion, not the total number of repeat events.Serving a variant is not a visible exposure. Exposing a variant is not evidence it caused conversion. The server validates referenced pages, targets, variants and goals and recomputes experiment membership rather than trusting the browser’s claimed group.
Sessions expire after 30 minutes without activity and are shared across tabs for the site. Browser identity reset starts a new journey. Time to personalize measures navigation/route start through application of a non-default variant; decision round trip, server time and model inference are distinct metrics. Percentiles use fixed latency buckets.Internal extension traffic can be marked with localStorage['dynamite:internal'] = '1' and excluded. Check that state when validating real measurement. Preview sessions never establish live uplift.For registered articles, dynamite:first_article and dynamite:second_article track the first two distinct reads in a session. Continuation is second-article sessions divided by first-article sessions within the same group and interval.
Raw events are retained 35 days; sessions 180 days; daily counters and latency rollups remain. Production writes dedicated Postgres analytics tables. Queues flush roughly every 1.5 seconds and on graceful shutdown; abrupt process loss can drop recent buffered events. Local file-mode development keeps analytics in memory. Results are measurement, not a financial ledger.Source: tracker, experiment assignment, analytics.