Cloudflare Workers sit at the edge, making them perfect for filtering ad traffic before it reaches your server.
Why Edge-Based Filtering?
- Latency: <5ms added to request
- Scale: Handles millions of requests
- Cost: Pay-per-request pricing
- No infrastructure: Serverless
Implementation
export default {
async fetch(request, env) {
const ip = request.headers.get('CF-Connecting-IP');
const ja3 = request.headers.get('CF-JA3');
const country = request.headers.get('CF-IPCountry');
// Layer 1: IP reputation
const ipScore = await checkIPReputation(ip, env);
if (ipScore < 20) {
return new Response('', { status: 403 });
}
// Layer 2: TLS fingerprint
if (KNOWN_BOT_JA3.includes(ja3)) {
return serveSafePage(request);
}
// Layer 3: Pass to origin with scoring headers
const modifiedRequest = new Request(request, {
headers: {
...Object.fromEntries(request.headers),
'X-Bot-Score': ipScore.toString(),
'X-TLS-Risk': ja3Risk.toString()
}
});
return fetch(modifiedRequest);
}
};
Performance
- Average latency added: 3ms
- Bot traffic blocked: 92%
- False positive rate: <1%
Resources
- ads-review — reference implementation
- WuXiang Shield — managed edge filtering
Filter at the edge, not at your origin.
Top comments (0)