We bought a brand-safety list once. It was the industry standard one, it cost real money, and within a week it had demonetised a cooking channel, two wedding creators and an entire category of religious holiday content.
None of that content was unsafe. It was unparseable, and the list treats those as the same thing.
How a blocklist fails a language it cannot read
Keyword blocklists work by matching terms against a transcript. When the transcript is in a language the vendor does not model well, three failures compound:
- Transliteration produces false positives. Perfectly ordinary Bangla words romanise into English strings that sit on the blocklist.
- Transcription quality is poor enough that the matched term often is not the word that was said.
- The fallback for low confidence is refuse, so anything the model cannot read confidently is treated as risky.
The result is a system that is most conservative exactly where the content is most local — which is to say, exactly where our inventory is.
What we built instead
We replaced the list with a context model that classifies what an episode is about rather than what words appear in it, trained on our own catalogue and labelled by people who speak the language.
It is worse than the vendor list at English. It is dramatically better at Bangla, which is the only thing we needed it to be good at.
An advertiser asking "is this safe?" deserves a real answer. "We couldn't read it" is not one.
Publishing what it refuses
The part that made advertisers uncomfortable, and that we kept anyway: every refusal is visible to the creator with a reason attached, and the category-level refusal rate is visible to advertisers.
A safety system nobody can inspect is indistinguishable from an arbitrary one. If we are going to take money away from a creator, they get to see why, and they get to disagree.



