Skip to content

Commit 62b16ea

Browse files
mkomorskiMarcin Komorskijdwieland8282
authored
Enrichment lift measurement module (prebid#6007)
* Enrichment lift measurement module * extension * Update enrichmentLiftMeasurement.md aligned the references made to "user id systems" to "user id submodules" --------- Co-authored-by: Marcin Komorski <marcinkomorski@marcins-mbp.home> Co-authored-by: jdwieland8282 <wieland.jeff@gmail.com>
1 parent af81287 commit 62b16ea

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
layout: page_v2
3+
title: Enrichment Lift Measurement Module
4+
display_name: Enrichment Lift Measurement Module
5+
description: Enrichment Lift Measurement Module
6+
page_type: module
7+
module_code: enrichmentLiftMeasurement
8+
enable_download: true
9+
vendor_specific: true
10+
sidebarType: 1
11+
---
12+
13+
# Enrichment Lift Measurement
14+
15+
The **Enrichment Lift Measurement Module** allows publishers to evaluate the performance of User ID submodules by configuring and executing A/B tests. It offers several configuration options that enable publishers to:
16+
17+
- Route traffic to selected User ID submodules.
18+
- Control where the A/B test configuration is stored.
19+
- Specify how User ID submodules should be disabled.
20+
21+
Additionally, the module attaches the A/B group configuration to analytics labels for tracking and reporting.
22+
23+
## How It Works
24+
25+
1. The publisher initializes the module using `config.setConfig`.
26+
2. When a user loads the page, the module determines which User ID submodules should participate in the test based on the configured percentages.
27+
3. Submodules not selected for the test are disabled via activity controls, either during submodule initialization or at the enrichment level.
28+
4. The A/B group configuration (enabled/disabled submodules) is saved in either `localStorage` or `sessionStorage`. (In `memory` mode, this step is skipped, and the configuration is recalculated on each page load.)
29+
5. The A/B configuration is attached to analytics labels to enable performance tracking and analysis.
30+
31+
## Configuration
32+
33+
{: .table .table-bordered .table-striped }
34+
35+
| Parameter | Description | Allowed Values | Default |
36+
|-------------------------|------------------------------------------------------------------|--------------------------------------------|---------|
37+
| `storeSplits` | Defines where to store the A/B group configuration | `memory`, `sessionStorage`, `localStorage` | - |
38+
| `suppression` | Determines how to disable User ID submodules | `submodules`, `eids` | `eids` |
39+
| `modules[].name` | Name of the User ID submodule | *(string)* | - |
40+
| `modules[].percentage` | Percentage of users for whom the module is enabled | *(number between 0 and 1)* | - |
41+
| `testRun` | A label used for storing and reporting test configuration status | *(string)* | - |
42+
43+
## Configuration Example
44+
45+
```javascript
46+
pbjs.setConfig({
47+
enrichmentLiftMeasurement: {
48+
modules: [
49+
{ name: 'idSharedSystem', percentage: 1.0 }, // Enabled for 100% of users
50+
{ name: '33acrossIdSystem', percentage: 0.5 } // Enabled for ~50% of users
51+
],
52+
storeSplits: 'memory', // Configuration is not stored; recalculated on each page load
53+
suppression: 'submodules',
54+
testRun: 'JulyTest'
55+
}
56+
});
57+
```
58+
59+
The following object will be attached to analytics labels based on the configuration above:
60+
61+
```javascript
62+
{
63+
JulyTest: [
64+
{ name: 'idSharedSystem', percentage: 1.0, enabled: true },
65+
{ name: '33acrossIdSystem', percentage: 0.5, enabled: false } // May be true or false depending on random selection
66+
]
67+
}

0 commit comments

Comments
 (0)