Skip to content

Conversation

@prosdev
Copy link
Contributor

@prosdev prosdev commented Dec 25, 2025

Implements Issue #5: Frequency Capping Plugin

Changes

  • Add frequencyPlugin with session/day/week frequency capping
  • Auto-loads sdk-kit storage plugin for persistence
  • Tracks impression counts and timestamps per experience
  • Supports getImpressionCount, hasReachedCap, recordImpression APIs
  • Auto-records impressions on experiences:evaluated events
  • Emits experiences:impression-recorded events
  • Cleans up old impressions (beyond 7 days)

Testing

  • 25 comprehensive tests covering all functionality
  • Tests for session, day, and week caps
  • Tests for event integration
  • Tests for storage persistence
  • Tests for edge cases (empty IDs, large counts, old data cleanup)
  • All tests passing

Dependencies

  • Uses @lytics/[email protected] (fixed ESM bundling)
  • Leverages sdk-kit's storage plugin underneath

Closes #5

- Add frequencyPlugin with impression tracking
- Auto-loads sdk-kit storage plugin for persistence
- Supports session, day, and week frequency caps
- Tracks impression counts and timestamps
- Emits impression-recorded events
- Comprehensive test coverage (25 tests)

Closes #5
@prosdev prosdev merged commit f576f75 into main Dec 25, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Phase 0] Task 3.1: Build Frequency Capping Plugin

2 participants