Fill.md is committed to keeping every impression safe for brands and respectful for users. Here is what we do today and what we are shipping next.
We will never serve ads in these categories. See /prohibited for the full list.
Every impression passes through our GIVT (General Invalid Traffic) filter at the edge: 22 known bot User-Agent patterns, data-center IP blocklist (AWS, Azure, GCP, Hetzner, OVH, DigitalOcean), prefetch detection, and per-IP rate limiting (100 impressions/min). High-CTR fraud is flagged and blocked within 24 hours.
Our SDK enforces the MRC standard: 50% of pixels in view for 1+ continuous seconds (display). Implemented via IntersectionObserver v2 with trackVisibility, with fallback for Safari/Firefox. Non-viewable impressions are not counted or billed.
Every new cash-mode creative is reviewed before it can serve. Currently manual review with <24h turnaround. LLM-based auto-classification shipping Week 2 post-launch.
Advertisers can set allowlists (serve only on these publishers) and blocklists (never serve on these publishers or categories). Publishers can block specific advertiser categories from appearing in their apps.
Questions? admin@fill.md