Real signals first. Matching comes next.
Every ad request that reaches Skrypte is checked before anything else happens: is it a real browser, is it a real visitor, is it coming from the domain it claims to be. Requests that fail those checks are blocked before an ad is ever served. This is where we started, because targeting is only as good as the traffic underneath it.
Alongside that filtering, we already capture page context (the URL, page title, language, referrer), on-page engagement (scroll depth, time on page, clicks) and coarse geographic data for every visit. None of it decides which ad gets served today. That's the next layer we're building on top of a traffic pipeline we can already trust.