adobe / adobe/aem-experimentation
rumTracking: exposure/tracking override
- Dominant language
- JavaScript
- Stars
- 16
- Forks
- 14
- PR merge metrics
- No merged PRs in 30d
Description
Part of #66
## Problem
The plugin fires its own RUM per decision type with no opt-out. A BYO engine already fires exposure server-side, so you get **double counting**, and the plugin's inline reporting doesn't apply to externally-owned experiments.
## Proposal
```js
loadEager(document, {
rumTracking: 'off' | ((event) => void),
});
```
- `'off'` disables the built-in RUM.
- a function delegates it (the integrator forwards to their own sink).
- default (unset) keeps today's behavior.
Note: the plugin already emits `aem:experimentation` DOM events per decision, so custom tracking can also hook those without an override — `rumTracking` specifically governs the **built-in RUM**.
## Acceptance criteria
- [ ] `rumTracking: 'off'` suppresses the built-in RUM calls for all decision types.
- [ ] `rumTracking: fn` is invoked with the same event payload instead of the built-in call.
- [ ] Unset = unchanged behavior.
Contributor guide
Research direction
Start at the `loadEager(document, { rumTracking })` entry point and trace how built-in RUM is called for each decision type; the issue does not name files or tests. Check how the existing `aem:experimentation` events relate to that path, then verify that `'off'` suppresses built-in calls, a function receives the same payload instead, and unset preserves current behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- analytics
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100