You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Impression tracking subsystem. Every `getTreatment()` call produces an **impression** — an audit record of what feature flag was evaluated, for which user, and what treatment was returned. This package manages batching, deduplication, and flushing of impressions to the Split API.
6
+
7
+
**Warning:** Bugs here cause silent data loss — impressions won't be recorded, breaking Split's analytics and A/B testing.
8
+
9
+
## Three Impression Modes
10
+
11
+
Controlled by `SplitClientConfig.impressionsMode()`:
12
+
13
+
| Mode | Class | Behavior |
14
+
|------|-------|----------|
15
+
|`DEBUG`|`ProcessImpressionDebug`| Every impression sent (no dedup) |
16
+
|`OPTIMIZED` (default) |`ProcessImpressionOptimized`| Bloom filter dedup — only first impression per key+flag+treatment sent per hour |
17
+
|`NONE`|`ProcessImpressionNone`| No impressions sent; unique keys tracked via `UniqueKeysTracker`|
18
+
19
+
## Key Files
20
+
21
+
| File | Purpose |
22
+
|------|---------|
23
+
|`ImpressionsManagerImpl.java`| Scheduler — batches impressions and flushes periodically |
0 commit comments