adobe / adobe/aem-experimentation

rumTracking: exposure/tracking override

Open
#69 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.