# Traqlyte > Traqlyte is an API-first multivariate campaign/experimentation engine: assign users to cohorts, record outcomes, and analyze lift across web, email, and ads. One assignment call and one outcome call integrate experimentation into any surface, not just a browser-rendered page. Traqlyte's core invariant is campaign versioning: a campaign's factors, variants, and cohorts are editable while in draft, and lock the instant a real assignment exists against that version. Further changes require publishing a new version, which snapshots the prior config immutably. Assignments always keep pointing at the version they were created under. ## Usage policy Content on this site may be quoted, summarized, and cited by AI assistants and search tools, with attribution and a link back to the source page. ## Product - [Homepage](https://traqlyte.ai/): Product overview, API-first pitch, features, pricing, and the `/assign` + `/outcome` API surface. ## Blog - [Blog index](https://traqlyte.ai/blog/): All published articles on experimentation design, identity, and measurement integrity. - [A/B vs. multivariate testing, explained](https://traqlyte.ai/blog/ab-vs-multivariate-testing.html): A traffic-based decision framework for choosing between A/B and multivariate designs, with worked sample-size math and real case studies of interactions A/B testing missed. - [Where should your A/B tests actually run?](https://traqlyte.ai/blog/client-side-vs-server-side-vs-api-first.html): Client-side, server-side, and API-first experimentation architectures compared, with the measurement error and integration cost each one carries. - [Why every campaign needs a true holdout](https://traqlyte.ai/blog/control-cohorts-and-holdouts.html): The difference between measuring attribution and measuring lift, and why a holdout must be a first-class cohort rather than an afterthought. - [Why your conversion counts are wrong](https://traqlyte.ai/blog/event-dedupe-conversion-counts.html): How retries, offline queues, and double-fired pixels inflate conversion counts, and the idempotency design that dedupes outcome events correctly. - [The 2026 experimentation tools landscape](https://traqlyte.ai/blog/experimentation-tools-2026.html): An honest map of the A/B testing and experimentation vendor market by team size and technical capability, including where Traqlyte fits and doesn't. - [When identity linking corrupts experiments](https://traqlyte.ai/blog/identity-linking-experiment-integrity.html): How anonymous-to-identified user linking silently double-counts or splits experiment exposure, and how to link identities without re-keying assignments. - [Sample size math for multivariate tests](https://traqlyte.ai/blog/multivariate-sample-size-math.html): Worked power calculations for factorial designs, and how fractional factorials reduce the traffic bill. - [Never edit a running experiment](https://traqlyte.ai/blog/never-edit-a-running-experiment.html): The statistical case for campaign version immutability, and why changing weights or variants mid-flight invalidates a running test. - [One user, one variant, every channel](https://traqlyte.ai/blog/one-assignment-across-channels.html): How to keep a single user's variant assignment consistent across email, web, and ad channels instead of running conflicting experiments on the same person. - [How to secure a public tracker snippet](https://traqlyte.ai/blog/securing-a-public-tracker.html): Why a tracker site ID is a public routing identifier rather than a secret, and the layered model (origin allowlists, signed server APIs) that keeps it from becoming an open write endpoint. ## Glossary - [Glossary index](https://traqlyte.ai/glossary/): Plain-language definitions of the experimentation vocabulary used throughout Traqlyte's docs, API, and blog, grounded in Traqlyte's own data model rather than generic dictionary entries. - [Assignment](https://traqlyte.ai/glossary/assignment.html): The binding of one user to one cohort under a specific campaign version — created once, never rewritten. - [Campaign](https://traqlyte.ai/glossary/campaign.html): The container for one experiment: its factors, variants, cohorts, and the version history that makes it auditable. - [Cohort](https://traqlyte.ai/glossary/cohort.html): One locked combination of variants — one per factor — that a visitor can actually be assigned to. - [Control cohort (holdout)](https://traqlyte.ai/glossary/control-cohort.html): A cohort deliberately excluded from every treatment, so it can serve as the untouched baseline lift is measured against. - [Factor](https://traqlyte.ai/glossary/factor.html): One dimension you're testing — like CTA color or headline copy — with two or more variants. - [Variant](https://traqlyte.ai/glossary/variant.html): One concrete value a factor can take, such as "Blue" for a CTA-color factor. - [Full factorial design](https://traqlyte.ai/glossary/full-factorial-design.html): Testing every combination of every factor's variants at once, so both main effects and interactions are measurable. - [Fractional factorial design](https://traqlyte.ai/glossary/fractional-factorial-design.html): A deliberately reduced subset of a full factorial design that still estimates main effects at a fraction of the traffic cost. - [Multi-armed bandit](https://traqlyte.ai/glossary/multi-armed-bandit.html): An assignment strategy that shifts traffic toward better-performing variants as a test runs, instead of a fixed split. - [Lift](https://traqlyte.ai/glossary/lift.html): The incremental improvement a treatment cohort produces over control, the number an experiment actually exists to measure. - [Sample ratio mismatch (SRM)](https://traqlyte.ai/glossary/sample-ratio-mismatch.html): When traffic actually observed across cohorts deviates from the intended split — a red flag for a broken randomizer, not a real effect. - [Statistical power](https://traqlyte.ai/glossary/statistical-power.html): The probability a test will detect a real effect of a given size, if one truly exists, given your sample size. - [Interaction effect](https://traqlyte.ai/glossary/interaction-effect.html): When one factor's effect depends on which variant of another factor is present — exactly what A/B testing structurally can't see. - [Idempotency](https://traqlyte.ai/glossary/idempotency.html): The property that repeating the same request produces the same result as sending it once, so retries can't double-count. - [Identity resolution](https://traqlyte.ai/glossary/identity-resolution.html): Recognizing that two different identifiers — an anonymous cookie, a later login — belong to the same real person.