-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathabTests.ts
More file actions
353 lines (349 loc) · 11.1 KB
/
Copy pathabTests.ts
File metadata and controls
353 lines (349 loc) · 11.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
import type { ABTest } from "./types.ts";
/**
* Tests are defined here. They will be assigned mvt ranges based on the
* size of the test and the number of groups, these ranges may not be contiguous.
*
* For 100% tests to run concurrently with other tests, they should be assigned to different
* test spaces. This means that some users will be in multiple tests at the same time.
*
* Example:
* [Space A]
* - 20% Test control MVT 0-99
* - 20% Test variant MVT 100-199
* - 50% Test control MVT 200-449
* - 50% Test variant MVT 450-699
*
* [Space B]
* - 100% Test control MVT 0-499
* - 100% Test variant MVT 500-999
*/
const ABTests: ABTest[] = [
{
name: "webx-dark-mode-web",
description: "Dark mode accessibility feature test on web",
owners: ["dotcom.platform@theguardian.com"],
status: "ON",
expirationDate: "2027-04-09",
type: "server",
audienceSize: 0 / 100,
groups: ["enable"],
shouldForceMetricsCollection: false,
},
{
name: "growth-holdback-group",
description:
"Test for 5% holdback group that does not qualify for any testing so long as the test is live in the RRCP",
owners: ["growth.dev@guardian.co.uk"],
expirationDate: "2027-01-01",
type: "client",
status: "ON",
audienceSize: 0 / 100,
audienceSpace: "A",
groups: ["control"],
shouldForceMetricsCollection: false,
},
{
name: "growth-auxia-banner",
description: "Use Auxia API for deciding when to show a RR banner",
owners: ["growth.dev@guardian.co.uk"],
expirationDate: "2026-12-01",
type: "client",
status: "ON",
audienceSize: 1,
audienceSpace: "C",
groups: ["control", "variant"],
shouldForceMetricsCollection: true,
},
{
name: "commercial-prebid-price-floor-holdback",
description:
"This test will be the 5% holdback group for the prebid price floor",
owners: ["commercial.dev@guardian.co.uk"],
expirationDate: "2026-07-16",
type: "client",
status: "OFF",
audienceSize: 5 / 100,
audienceSpace: "A",
groups: ["holdback"],
shouldForceMetricsCollection: true,
},
{
name: "commercial-spacefinder-highvalue-section",
description:
"Test to measure the impact on ad density after adding to high value sections in spacefinder",
owners: ["commercial.dev@guardian.co.uk"],
expirationDate: "2026-09-01",
type: "client",
status: "OFF",
audienceSize: 10 / 100,
audienceSpace: "A",
groups: ["control", "variant"],
shouldForceMetricsCollection: true,
},
{
name: "commercial-ozone-hashed-email",
description:
"Pass hashed email to Ozone via pubProvidedId for audience matching",
owners: ["commercial.dev@guardian.co.uk"],
status: "ON",
expirationDate: "2026-09-30",
type: "client",
audienceSize: 0,
audienceSpace: "A",
groups: ["control", "variant"],
},
{
name: "fronts-and-curation-loop-click-through",
description:
"Test impact of click to article via loop videos on fronts",
owners: ["fronts.and.curation@guardian.co.uk"],
status: "ON",
expirationDate: "2026-09-19",
type: "server",
audienceSize: 5 / 100,
audienceSpace: "A",
groups: ["control", "variant"],
shouldForceMetricsCollection: false,
},
{
name: "fronts-and-curation-click-to-play",
description: "Test click to play longform videos vs autoplay",
owners: ["fronts.and.curation@guardian.co.uk"],
status: "OFF",
expirationDate: "2026-09-28",
type: "server",
audienceSize: 0 / 100,
groups: ["control", "variant"],
shouldForceMetricsCollection: false,
},
{
name: "martech-admiral-adblock",
description:
"Control group for Admiral ad blocker - runs the detection script but does not show the modal",
owners: ["martech.dev@guardian.co.uk"],
expirationDate: "2027-01-21",
type: "client",
status: "ON",
audienceSize: 20 / 100,
audienceSpace: "A",
groups: ["control", "variant"],
shouldForceMetricsCollection: false,
},
{
name: "webx-monitor-group-contamination-v2",
description:
"V2 of test to measure the impact of contamination between groups in ab tests",
owners: ["dotcom.platform@theguardian.com"],
status: "ON",
expirationDate: "2026-09-30",
type: "client",
audienceSize: 10 / 100,
audienceSpace: "A",
groups: ["control", "variant"],
shouldForceMetricsCollection: false,
},
/**
* Puzzles & Games rollout, tier v0 (the master switch).
*
* Gates the baseline Puzzles & Games experience: the new Puzzles Hub
* page, and the 6 V0 puzzle pages (sudoku easy/medium/hard/killer,
* word-wheel, wordiply). At v0, there is no archive, no calendar, no
* progress indicators, no sign-in-to-track-progress prompt, no "more
* from puzzles" rail, and the hub's sub-nav has no links yet.
*
* This is the master switch for the whole Puzzles & Games experience:
* turning it off (or down to 0%) hides everything: the hub, the V0
* puzzle pages, and (by the cumulative design below) every later tier
* too, since v1/v2 only take effect when this is also enabled.
*
* See `puzzles-new-hub-v1`/`puzzles-new-hub-v2` below for the later
* rollout tiers, and `src/lib/puzzlesHubVersionExperiment.ts` /
* `src/lib/puzzlesHubExperiment.ts` in dotcom-rendering for the
* corresponding cumulative gate-check helpers
* (`isPuzzlesHubEnabled`/`isPuzzlesHubV1Enabled`/`isPuzzlesHubV2Enabled`).
*/
{
name: "puzzles-new-hub",
description: "Rollout of the new Puzzles Hub experience",
owners: ["puzzles.team@guardian.co.uk"],
status: "ON",
expirationDate: "2026-12-31",
type: "server",
audienceSize: 0 / 100,
audienceSpace: "A",
groups: ["control", "variant"],
shouldForceMetricsCollection: false,
},
/**
* Puzzles & Games rollout, tier v1 (w/c 12 Oct launch).
*
* Only takes effect when `puzzles-new-hub` (v0) is ALSO enabled for the
* reader. This test does nothing on its own, by design, so the
* rollout can never end up in an inconsistent state (e.g. v1 features
* showing while the v0 baseline they build on is switched off).
*
* On top of v0, this tier activates: the full hub sub-nav links (to
* /word-games, /logic-puzzles, /trivia-and-quizzes), a
* sign-in-to-track-progress message, a calendar/archive view for
* crosswords/logic-puzzles/word-games (not Wordiply, which has no
* archive), progress indicators (Available/Completed), the "More from
* Puzzles & Games" related-content rail, newsletter signup, and
* changes to the existing crossword page (print CTA repositioning, a
* "play other puzzles" container).
*
* To roll back from v1 to v0 without a deploy: flip this test's
* `audienceSize` to `0 / 100` (or `status` to `"OFF"`) while leaving
* `puzzles-new-hub` untouched.
*/
{
name: "puzzles-new-hub-v1",
description:
"Rollout of the v1 Puzzles & Games features (w/c 12 Oct), on top of the puzzles-new-hub v0 baseline",
owners: ["puzzles.team@guardian.co.uk"],
status: "ON",
expirationDate: "2026-12-31",
type: "server",
audienceSize: 0 / 100,
audienceSpace: "A",
groups: ["control", "variant"],
shouldForceMetricsCollection: false,
},
/**
* Puzzles & Games rollout, tier v2 (future, no launch date confirmed
* yet as of this writing).
*
* Only takes effect when BOTH `puzzles-new-hub` (v0) AND
* `puzzles-new-hub-v1` are ALSO enabled for the reader, same
* cumulative-by-design principle as v1 above, applied one tier further.
*
* On top of v0+v1, this tier activates: the On the Ball and Film Reveal
* iframe games (Trivia and Quizzes group), a "Most played" container,
* EventKit-driven navigation, migrating existing crossword pages onto
* the new Puzzle Page template, and search-engine mobile app nudges.
*
* Kept at 0% until that work begins; there is nothing to roll back yet.
*/
{
name: "puzzles-new-hub-v2",
description:
"Rollout of the v2 Puzzles & Games features (no date confirmed yet), on top of the puzzles-new-hub/puzzles-new-hub-v1 baseline",
owners: ["puzzles.team@guardian.co.uk"],
status: "ON",
expirationDate: "2026-12-31",
type: "server",
audienceSize: 0 / 100,
audienceSpace: "A",
groups: ["control", "variant"],
shouldForceMetricsCollection: false,
},
{
name: "identity-and-trust-consent-rr-banner-us",
description:
"Test to measure the impact of not showing the consent RR and banner for US users",
owners: ["identitydev@theguardian.com", "martech.dev@guardian.co.uk"],
status: "ON",
expirationDate: "2026-12-01",
type: "client",
audienceSize: 100 / 100,
audienceSpace: "D",
groups: ["control", "variant-1", "variant-2"],
shouldForceMetricsCollection: false,
},
{
name: "fronts-and-curation-editorial-test",
description: "Allow editorial A/B tests to run on web",
owners: [
"fronts.and.curation@guardian.co.uk",
"ab.test.mission@guardian.co.uk",
],
status: "ON",
expirationDate: "2036-08-12",
type: "server",
audienceSize: 0 / 100,
groups: ["a", "b"],
shouldForceMetricsCollection: false,
},
{
name: "commercial-prebid-failsafe-timeout",
description: "Gradually roll out the Prebid failsafe timeout feature",
owners: ["commercial.dev@guardian.co.uk"],
expirationDate: "2026-10-28",
type: "client",
status: "ON",
audienceSize: 0 / 100,
audienceSpace: "B",
groups: ["control", "variant"],
shouldForceMetricsCollection: true,
},
{
name: "articles-and-publishing-revamped-immersive-layout",
description: "New grid-based immersive layout for all articles",
owners: ["articles.and.publishing@guardian.co.uk "],
status: "ON",
expirationDate: "2027-08-31",
type: "server",
audienceSize: 0 / 100,
groups: ["enable"],
shouldForceMetricsCollection: false,
},
{
name: "commercial-mobile-above-nav-test",
description: "Test adding the mobile-above-nav ad slot to mobile pages",
owners: ["commercial.dev@guardian.co.uk"],
expirationDate: "2026-10-30",
type: "server",
status: "ON",
audienceSize: 0 / 100,
audienceSpace: "B",
groups: ["control", "variant", "variant2"],
shouldForceMetricsCollection: true,
},
{
name: "commercial-rich-links",
description:
"Test to measure the impact of fixing rich links insert behaviour and reduced restrictions on ad insertion around rich links.",
owners: ["commercial.dev@guardian.co.uk"],
expirationDate: "2026-10-28",
type: "client",
status: "ON",
audienceSize: 0 / 100,
audienceSpace: "A",
groups: ["control", "variant"],
shouldForceMetricsCollection: true,
},
{
name: "commercial-header-bidder-timeouts",
description:
"Test to measure the impact of changing the Prebid and APS timeout value.",
owners: ["commercial.dev@guardian.co.uk"],
expirationDate: "2026-10-28",
type: "client",
status: "ON",
audienceSize: 2.1 / 100, // 0.35% in each variant
audienceSpace: "A",
groups: [
"variant-500",
"variant-750",
"variant-1000",
"variant-1250",
"control", // 1500ms timeout
"variant-1650",
],
shouldForceMetricsCollection: true,
},
{
name: "commercial-article-end-header-bidding",
description:
"Test opening up the article-end ad slot in the US region for HeaderBidding",
owners: ["commercial.dev@guardian.co.uk"],
expirationDate: "2026-10-01",
type: "client",
status: "ON",
audienceSize: 0 / 100,
audienceSpace: "B",
groups: ["control", "variant"],
shouldForceMetricsCollection: true,
},
];
const activeABtests = ABTests.filter((test) => test.status === "ON");
export { ABTests as allABTests, activeABtests };