Sentinel — AI AdBlock
Bilinen reklam ağlarını anında engelleyen, tanımadığı alan adlarını bir dil modeline sorarak öğrenen reklam engelleyici eklenti.
Sentinel, yapay zekâ destekli ve kendi kendine öğrenen bir reklam engelleme eklentisidir. Bilinen reklam ve izleme ağlarını hiçbir şey sormadan anında engeller, tanımadığı alan adlarını ise arka planda bir dil modeline sorarak öğrenir. Cem Emir Yüksektepe ile birlikte geliştirdik. Eklentinin arka uç sunucusu, telemetrisi ya da aboneliği yok.
Amaç
Klasik reklam engelleyiciler büyük ve elle bakımı yapılan filtre listelerine dayanır. Listede olmayan yeni bir reklam ağı ya da siteye özel bir reklam kutusu çıktığında birinin onu fark edip listeye eklemesi gerekir. Ben bu boşluğu yapay zekâyla kapatmak istedim. Amacım, kurulduktan sonra hiçbir ayar gerektirmeyen, karşılaştığı yeni alan adlarını kendisi sınıflandıran ve aynı soruyu ikinci kez sormayacak kadar tutumlu bir engelleyici yapmaktı.
Nasıl çalışır
İlk katman statik bir engel listesidir. 140'tan fazla bilinen reklam ve izleme ağı, Chrome'un declarativeNetRequest kurallarıyla doğrudan tarayıcı motorunda engellenir. declarativeNetRequest, eklentinin istekleri kendisi incelemesine gerek kalmadan tarayıcıya önceden kural verdiği bir API'dir ve bu yüzden performansa yük getirmez.
İkinci katman öğrenme katmanıdır. Sayfalarda görülen ve henüz tanınmayan üçüncü taraf alan adları bir kuyruğa alınır. Kuyruk dolduğunda bu alan adları 15'erli gruplar halinde, seçtiğiniz yapay zekâ sağlayıcısına tek bir istekle sorulur ve her biri için engelle ya da izin ver kararı alınır. Her karar 30 gün boyunca tarayıcıda saklanır. Aynı alan adı tekrar görüldüğünde yapay zekâ hiç çağrılmaz.
Reklam olduğuna karar verilen alan adları için dinamik bir engelleme kuralı eklenir. Bu kurallar yalnızca üçüncü taraf istekleri keser. Yani bir alan adı kendi sitesinde hiçbir zaman engellenmez ve bu sayede sitelerin kendi işlevleri bozulmaz.
Üçüncü katman kozmetik filtredir. Ağ düzeyinde engellenemeyen, sayfanın içine gömülü reklam kutuları için sayfanın sadeleştirilmiş yapısı bir kez yapay zekâya gönderilir ve siteye özel CSS seçicileri alınır. Bu seçiciler 7 gün boyunca site bazında saklanır. Uygulanmadan önce bir güvenlik denetiminden geçerler ve video oynatıcıyı ya da sayfa düzenini gizleyemezler. Bunun yanında yapay zekâ gerektirmeyen deterministik bir katman da var: nofollow ya da sponsored bağlantı içindeki ve standart reklam boyutlarındaki görseller doğrudan gizleniyor.
Öne çıkan özellikler
- Herhangi bir öğeye sağ tıklayıp "bu öğeyi reklam olarak engelle" diyebiliyorsunuz. Eklenti alanı çizgiyle vurgulayıp onay istiyor ve kural o siteye özel olarak saklanıp her ziyarette yeniden uygulanıyor.
- OpenAI, Google Gemini, DeepSeek ve Anthropic Claude sağlayıcılarından birini seçip kendi API anahtarınızı girebiliyorsunuz. Her sağlayıcıda ucuz sınıftaki bir model kullanılıyor.
- Ayarlar sayfasındaki "Anahtarı test et" düğmesiyle anahtarın çalışıp çalışmadığını hemen görebiliyorsunuz.
- API anahtarı girmezseniz eklenti yalnızca statik listeyle, tamamen çevrimdışı çalışmaya devam ediyor.
- Açılır pencerede bugün ve toplamda engellenen istek sayıları, önbellekteki karar sayısı, önbelleği temizleme ve siteyi yeniden tarama düğmeleri bulunuyor.
- Arayüz Türkçe ve İngilizce.
Topluluk kuralları
Varsayılan olarak kapalı olan isteğe bağlı bir özellik daha var. Sağ tıkla engellediğiniz reklamlar, yalnızca alan adı ve CSS seçicisi olacak şekilde anonim olarak bir topluluk sunucusuyla paylaşılabiliyor. Net puanı +3'e ulaşan kurallar herkeste kendiliğinden uygulanıyor. Puanı düşük kurallar ise diğer kullanıcılara önce "bu bir reklam mı" sorusuyla gösteriliyor ve oylanıyor. Bu sunucu için FastAPI ve SQLite kullanan tek dosyalık bir referans uygulama yazdım. İstekleri doğruluyor ve IP başına dakikada istek sınırı uyguluyor. Ayarlarda sunucu adresi girilmedikçe bu özellik hiçbir veri göndermiyor.
Teknik altyapı
Eklenti Manifest V3 ile yazıldı. Arka plandaki servis çalışanı sağlayıcılarla konuşmayı, kuyruk ve toplu sorgulamayı, önbelleği, dinamik kuralları ve istatistikleri yönetiyor. İçerik betiği kozmetik filtreleme ve sağ tık akışıyla ilgileniyor. Yapay zekâ yanıtlarını toleranslı bir JSON ayrıştırıcıyla okurum, çünkü modeller zaman zaman yanıtın etrafına fazladan metin ekleyebiliyor. Önbellek ve kararlar chrome.storage.local içinde, kuyruğun boşaltılması ise alarms API'si ile zamanlanıyor. Yayın paketi bir kabuk betiğiyle üretiliyor ve sürüm numarası tarih ile saatten otomatik oluşturuluyor.
Gizlilik ve güvenlik
API anahtarı yalnızca tarayıcıda saklanıyor, senkronize edilmiyor ve yalnızca sizin seçtiğiniz sağlayıcının resmi API'sine HTTPS üzerinden gönderiliyor. Yapay zekâya giden veriler üçüncü taraf alan adları ve script ile stilleri çıkarılmış, görünür metinleri yaklaşık 70 karaktere kısaltılmış bir sayfa yapısı özetinden ibaret. Form verisi, parola ya da kişisel bilgi hedeflenmiyor. Geliştirici olarak bizim çalıştırdığımız bir sunucu yok ve hiçbir veri bize ulaşmıyor.
Maliyet
Ucuz modeller, toplu sorgulama ve 30 günlük önbellek sayesinde tipik bir kullanımda günlük yapay zekâ çağrısı birkaç düzineyi geçmiyor. İlk günlerden sonra karşılaşılan alan adlarının çoğu önbellekte olduğu için çağrı sayısı neredeyse sıfıra iniyor.
Kullanım alanları
- Hazır filtre listelerinin geç kaldığı yeni ya da yerel reklam ağlarını yakalamak isteyenler için uygundur.
- Kendi API anahtarını kullanarak yapay zekâ destekli engellemeyi denemek isteyen kullanıcılara hitap eder.
- Ortak bir kural havuzu oluşturmak isteyen küçük topluluklar referans sunucuyu kendi sunucularında barındırabilir.
- Bir dil modelinin tarayıcı eklentisi içinde düşük maliyetle nasıl kullanılabileceğine örnek arayan geliştiriciler için incelenebilir.
Durum
Chrome Web Store için mağaza metinlerini, izin gerekçelerini, ekran görüntülerini ve gizlilik politikasını hazırladık. Eklenti şu an geliştirici modunda yüklenerek kullanılabiliyor.
- Kategori
- Tarayıcı ve e-posta eklentileri
- Yıl
- 2026
Teknolojiler
- JavaScript
- Chrome Extension
- Manifest V3
- AI
Bağlantılar
- GitHub https://github.com/cememir/aidblock