Report lift for a personalization slot
Compare two variants of a slot on the traffic each one actually received and report which converts better. Pass the baseline arm as variant_a — use __default__ to make the segment’s untagged fallback content the baseline, the closest this feature has to a holdout — the variant under test as variant_b, and the event name that counts as a conversion. Impressions come from the personalization events the web and mobile SDKs already send on every render, so nothing new has to be instrumented. The report returns each arm’s impressions, conversions and conversion rate, the absolute and relative lift, a 95% confidence interval, a z-score, a p-value and whether the difference is significant. state is no_traffic while neither arm has been served and collecting while only one has, and the statistical fields stay null until both arms have traffic. A segment_label the platform does not recognise is treated as no filter.
Authorizations
Dashboard JWT token from Clerk
Headers
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
true, false Path Parameters
Slot key to report on, e.g. hero-banner.
1 - 100Query Parameters
Baseline arm — a variant name, or __default__ for the segment's untagged default content.
1 - 50Treatment arm — the variant under test. Must differ from variant_a, otherwise the request is rejected.
1 - 50Name of the SDK event that counts as a conversion, e.g. clicked_cta or purchase.
1 - 100^[a-zA-Z0-9_.-]+$Report only on visitors in this segment (champion, high_value_engaged, engaged, new, passive, at_risk, dormant, lost). Unrecognised values are ignored.
1 - 64Lookback window in days (1–365).
1 <= x <= 365Response
The lift report — data.arm_a and data.arm_b carry each arm's impressions, conversions and conversion rate, and data.absolute_lift_pct, data.relative_lift_pct, data.confidence_interval, data.z_score, data.p_value and data.is_significant describe the difference. Those are null while data.state is no_traffic or collecting.
The lift report — data.arm_a and data.arm_b carry each arm's impressions, conversions and conversion rate, and data.absolute_lift_pct, data.relative_lift_pct, data.confidence_interval, data.z_score, data.p_value and data.is_significant describe the difference. Those are null while data.state is no_traffic or collecting.