At a glance
At a stealth startup, I worked on a proof of concept for collecting real-time website behaviour and turning it into campaign-ready customer signals. The work covered the browser SDK, event pipeline, profile building, and inference layer.
Built
A browser SDK and event pipeline for capturing site activity, shaping behavioural profiles, and recommending campaign actions.
Signals
Page views, clicks, searches, forms, product interest, session flow, and permitted identity signals like email.
Tension
The useful product had to balance sharper personalization with consent, privacy, and explainability.
Context
The product looked for intent while users were still browsing
The startup was exploring a marketing intelligence product: instead of only reading analytics after the fact, could a client understand what a visitor seemed interested in while they were still on the site?
My work touched the browser SDK, event ingestion, profile construction, and the inference layer that turned behaviour into campaign suggestions.
SDK
The SDK collected high-signal interactions
The SDK was embedded on client sites. It captured behaviour that could help explain intent without requiring the client to rebuild their product.
Session signals
Visits, page views, referrers, and the path a visitor took through the site.
Interaction signals
Clicks, searches, form engagement, product views, content views, and repeated category interest.
Identity signals
When permitted, an email or known identifier could connect anonymous activity to a durable profile.
Client analytics
The goal was not more counters. It was cleaner context for marketing decisions.
Pipeline
Raw events became behavioural profiles
The backend normalized raw events, stitched sessions, updated profile traits, and produced campaign recommendations. The interesting work was the middle layer: turning noisy actions into signals a marketing team could actually use.
- Tracked first-party behaviour directly from the client site.
- Grouped repeated actions into profile-level interests and traits.
- Used permitted identifiers to connect sessions when available.
- Explored enrichment and inference for campaign recommendations.
Lesson
Better targeting needs a clear signal chain
The technical problem went past event capture. We had to decide which signals were worth collecting, how long they should matter, and how to explain why a recommendation was made.
This project made me more careful about data products. Inferred traits should not be treated like facts, and useful personalization still needs consent, source context, and a way for humans to inspect the output.
