User story
As a deployer, I want device classification to be a selectable provider whose default makes no host-specific call, so that the default path privileges no host and I can opt into a stronger signal where my host provides one.
Description
Introduce a DeviceProvider interface that produces the coarse browser and bot classification the Edge Cookie gate uses. The default provider is User-Agent only and makes no host-specific call. Add an opt-in provider that strengthens the classification with the JA4 (TLS) and HTTP/2 probabilistic identifiers the host exposes, gathered only when that provider is selected. These signals serve identifier gating and bot detection, not bid enrichment, and a richer device model for the ad request is a separate concern.
Done when
- A
DeviceProvider interface is selected by [device] provider.
- The default is User-Agent only and makes no host-specific call.
- An opt-in provider reads the host's JA4 and HTTP/2 probabilistic identifiers, gathered only when selected.
- The bot gate works on the User-Agent-only default.
References
User story
As a deployer, I want device classification to be a selectable provider whose default makes no host-specific call, so that the default path privileges no host and I can opt into a stronger signal where my host provides one.
Description
Introduce a
DeviceProviderinterface that produces the coarse browser and bot classification the Edge Cookie gate uses. The default provider is User-Agent only and makes no host-specific call. Add an opt-in provider that strengthens the classification with the JA4 (TLS) and HTTP/2 probabilistic identifiers the host exposes, gathered only when that provider is selected. These signals serve identifier gating and bot detection, not bid enrichment, and a richer device model for the ad request is a separate concern.Done when
DeviceProviderinterface is selected by[device] provider.References