メニュー
日本語

広告ブロックの仕組み: フィルター開発の流れと、Chromeの“Manifest v3”が脅威である理由

広告ブロッカーって、一体どのように機能するか?

広告ブロッカーの中核となるのは、フィルターリスト(単に「フィルター」とも呼ばれる)です。文字通り、特別な構文で記述されたフィルタリングルールのリストです。

(ウェブを広告などの邪魔なものからフィルターするという例えから名付けられています)

広告ブロッカーの仕事を短文に絞ると、「広告ブロッカーはフィルタリングルールを解釈する」になります。

この「フィルタリングルール」という複雑な構文を理解し、特定の要素のブロック、特定の方法でのWebページの変更など、これらのルールの実行内容に基づいてWebトラフィックでアクションを実行します。

フィルターリストは多種あります。何千人ものユーザーたちが継続的にそれらを最新の状態に保ち、フィルターリストがちゃんと広告をブロックし、サイトなどの重要なものを壊さないように取り組んでいます。(例:日本語サイト用 豆腐フィルタ)

Chromeブラウザの今後の変更 Manifest v3(Google拡張機能の設定ファイルであるmanifest.jasonのバージョン3)とも呼ばれる) について聞いたことがあるかもしれません。

これらの変更は、私たちみんなが知っているフィルターエコシステムを終わらせる恐れがあります。

この記事はGoogle Chrome開発者を対象としています。開発者たちには例のエコシステムを損なうという目標はなく、単に適切な理解を欠けていると信じたいところです。

そのため、フィルタエコシステムの機能とManifest v3(マニフェストv3)の現在の実装の問題点を詳細に説明する必要があります。

もしかすると、読者の皆様でもこれらの仕組みを知りたい方がいるかもしれません。

広告ブロッカーの仕組み


前述したように、広告ブロッカーはフィルタリングルールを解釈する“トランスレーター”です。

  1. まず、広告ブロッカーはフィルターリストをダウンロード(いろんな場所からダウンロードした異なる任意のフィルターリストを使用加)
  2. 広告ブロッカーがONになっていると、ダウンロードしたリストに入っているフィルタリングルールに対してWebページのコードのチェックを開始

広告ブロックの仕組み

技術の詳細を少し掘り下げてみましょう。より深いレベルではどのようになっているのか。
フィルタリングには複数の方法があります:

ネットワークフィルタリング

Webページ上の広告は、空中から魔法のように表示されているわけではありません。

広告は何らかの方法で取得される必要があります。例えば、サーバーからダウンロードされるとか。

そのためには、ブラウザがWebリクエストを送信する必要があります。フィルタリングルールは、どのリクエストが、有用なコンテンツではなく広告を取得しようとしているのかを広告ブロッカーに通知し、ブロックする必要があると知らせます。

整形フィルタリング

すべてのWebページにはDOM(document object model〈ドキュメントオブジェクトモデル〉)があります。

それは基本的にページの構造とそのすべての要素を含むHTMLドキュメントです。

もちろん、ページ上の広告も要素であり、DOMに反映されます。広告ブロッカーはDOMの一部を削除できます。フィルタリングルールは、どの部分が広告で削除する必要があり、どの部分は触れる必要がないのかをブロッカーに理解させるのに役立ちます。

もちろん、実際にはさらに複雑ですが、これで大雑把に流れをイメージできたかと思います。

技術面について詳しく知りたい場合は、広告ブロック構文ガイドをご覧ください。

フィルターリスト


AdGuardフィルタ、EasyListなど、数千個ではないにしても数百個のフィルターリストが存在します。

これらのフィルターを常に最新の状態に保つには、数千人のボランティアの方々と専門家の日々の作業が必要です。

フィルターは、単なる広告のブロック以上のことを行うことができ、ユーザーたちは自分の好みに合わせてさまざまなフィルターの組み合わせでフィルタリングを自分にあわせてカスタマイズできます。

以下に、フィルタがどれだけ多様であるかを示すため、人気のあるフィルターリストを紹介します。

  • EasyList 多くのユーザー向けの基本フィルターで、広告のブロックのみを目的としている
  • EasyPrivacy もう1つの人気のある選択肢で、オンライントラッカー(追跡)をブロックする
  • Fanboy's SocialList シェア、いいね!ボタンなどのSNSウィジェットをブロックするフィルター
  • AdGuard迷惑要素 あらゆる迷惑要素(Cookie通知、オンラインアシスタントなど)をブロックするAdGuard独自フィルター
  • 多数の言語固有フィルターリスト: EasyList Germany、RUAdlist、AdGuard Turkishフィルター、日本語用豆腐フィルタ、その他多数。

巨大なフィルターリストデータベースがあるこのWebサイトをチェックしてください。

そしてこれが問題:導入予定のGoogle Chrome変更は、デフォルトのフィルターリスト(いわゆる「スタティック」ルール)が1つしかないことを想定して開発されています。
そのデフォルトフィルタリストを一連の「ダイナミック」ルールで変更はできますが、それらの数制限はとてつもなく小さく、わずかの最大5,000本です。
上記の多くのフィルターリストは、複数どころか、ほとんどは一つもそういった制限に入りきらないのです。

フィルターリスト開発の流れ


前述のように、フィルターリストは常に更新する必要があります。それには主な理由が2つあります。

1)新しい広告をブロックするため
2)壊れているものを修正するため(フィルター内のルールは多量であり、時々壊れるものがどうしてもはつげんする)。

もちろん、フィルターリストの保持者は何百万ものWebサイトを監視することはできません。ユーザーのフィードバックに大きく依存しています。
具体的な例でいえば:

  • AdGuardフィルタリポジトリには、40,000以上の(フィルタ改善・修正の)タスクが現在解決されています。毎週約500本の新タスクが現れ、ほぼ同量が解決されます。
  • EasyListとその地域別フィルターサブスクリプションは、ほとんどの場合フォーラムからからフィードバックを受け取り、数万のスレッドがあります。

多くの広告ブロッカーには、ユーザーが直面しているフィルター関連の問題を簡単に報告できるツールを提供しています。

たとえば、AdGuardユーザーは特別なWebレポートツールをご利用できます。
このような苦情に基づいて、フィルター開発者はフィルターリストを修正→広告ブロッカーはフィルターを更新→バン!広告がなくなる。

フィルタは常に更新され続けています

これにより、別の問題が発生します。Chromeにおいてダイナミックルールは、スタティックルールと比較して優先順位が異なります。より多くの混乱をもたらし、フィルターリスト保持者の作業を非常に困難にします。

ユーザーは新しいフィルターリストをどこで入手できる?


現代の広告ブロックの基礎の1つは、ユーザーが(デフォルトリストから選択するのではなく)URLで大きさに関係なく自由にカスタムフィルターリストを追加できることです。
これは、フィルターリストエコシステムの健全性に不可欠です:

  • ユーザーたちは、新しいフィルターリストを試したりすることができる
  • 開発者は、第三者を通る必要なく自分のフィルタをユーザーと直接共有できる

同じ問題の別の面は、既存のダイナミックルールの制限は、上記のすべてのことを不可能にしてしまうことです。これは、フィルター開発コミュニティが徐々に衰退してしまうことにつながります。

今後はどうなる?


Chromeで計画されているすべての変更が今のまま実現されてしめば、私たち全員にとって広告ブロックの未来は暗くなります。

  1. フィルターエコシステムは、非常に痛い打撃を受ける
  2. 使い慣れたフィルターの種類と大規模でアクティブなコミュニティの代わりに、少数の広告ブロッカーの開発者だけが残り、彼らはできる限り少数のフィルターリストを維持する
  3. ユーザーの観点から、柔軟なアプローチと広告ブロックを好みに合わせてカスタマイズする機能の代わりに、多様性が低い“統合された”フィルターリストを使わないといけないことに
  4. コミュニティは他の広告ブロック方法に移行し、それらの方法に努力を集中する

当時、私たちはSafariのコンテンツブロッカーについて多くの厳しい言葉を話してきました。少なくとも、無数のトリックと「ダクトテーピング」のおかげで、なんとか満足のいくソリューションに到達することができました。
Google Chromeの場合、正直なところトンネルの先に光は見えません。

解決策は?


実際、これらすべての問題は、GoogleがChromeで取りたいと思っている方向から大きく逸脱することなく、対処および解決できます。そのためにすべきことはこちらだと思います:

  • スタティックルールとダイナミックルールの両方に「フィルターリスト」という用語を適用
  • ダイナミックルール数の制限を劇的に上げる
  • フィルター規則の優先順位を再考する必要があります。ダイナミックルールには、スタティックルールと同じ優先順位が必要です。

開発者の観点から見ると、ダイナミックルールのみを持つ方がはるかに簡単です。開発者コミュニティにとって、ルールをスタティックカテゴリとダイナミックカテゴリに分割することは、必要なくカオスを誘発するものに見えます。

同時に、Google Chrome開発者と対話し、みんなを(特に第一としてChromeユーザーを)満足させる妥協案を見つける準備が私たちにはできています。

P.S.
フィルター保持者になりたい方はいつも大歓迎しております!🙌
このページをご覧になり、AdGuardフィルタの改善にご協力できる方法と、その見返りとして得られるものをご覧ください。

この記事を気に入っていただけましたか?

AdGuard for Windows

AdGuard for Windowsは、単なる広告ブロッカーではなく、広告をブロックし、危険なサイトへのアクセスを制御し、ページの読み込みを高速化し、不適切なコンテンツから子供を保護する、多目的ツールです。
ユーザーレビュー: 13857
星5つのうち4.7
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細

AdGuard for Mac

AdGuardはmacOSの仕様を念頭に設計されたユニークな広告ブロッカーです。 ブラウザやアプリで広告を取り除くだけでなく、個人情報追跡、フィッシング、詐欺から端末を守ります。
ユーザーレビュー: 13857
星5つのうち4.7
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細

AdGuard for Android

AdGuard for Androidは、Android搭載端末に最適なソリューションです。 他のほとんどの広告ブロッカーと違って、root権限を必要とせず、アプリでのフィルタリング、アプリ管理など、幅広い機能を提供しています。
ユーザーレビュー: 13857
星5つのうち4.7
ダウンロードされますと、使用許諾契約書に同意したことになります。

AdGuard for iOS

一番効果的なSafari用広告ブロッカー。ポップアップ広告を除去し、ページの読み込みを高速化し、個人情報を保護します。手動要素ブロックツールと柔軟にカスタマイズ可能な設定により、ニーズにぴったり合ったフィルタリングを楽しみいただけます。
ユーザーレビュー: 13857
星5つのうち4.7
ダウンロードされますと、使用許諾契約書に同意したことになります。

AdGuard ブラウザ拡張機能

AdGuardは、Webページ上のすあらゆる広告を効果的にブロックします。また最速で軽量な広告ブロック拡張機能です!是非AdGuardを使って広告のない高速で安全なブラウジングをお楽しみください。
ユーザーレビュー: 13857
星5つのうち4.7

AdGuard for Safari

Appleが新しいSDKの使用を開発者全員に強制し始めてから、Safari用の広告ブロック拡張機能は苦境に立たされています。AdGuard拡張機能は、Safari用の高品質な広告ブロック機能を復活させることがミッションです。
ユーザーレビュー: 13857
星5つのうち4.7
App Store
ダウンロード
ダウンロードされますと、使用許諾契約書に同意したことになります。

AdGuard Home

AdGuard Home は、広告とトラッキング(追跡)をブロックするネットワーク全体用ソフトウェアです。 セットアップを完成すると、全ての家庭内デバイスをカバーし、クライアント側のソフトウェアさえ必要ありません。 Internet-Of-Thingsや接続するデバイスの登場と伴って、ネットワーク全体を制御することがますます重要になってきています。
ユーザーレビュー: 13857
星5つのうち4.7

AdGuardコンテンツブロッカー

AdGuard Content Blockerは、コンテンツブロッカーテクノロジーをサポートするモバイルブラウザー(Samsung Internet、Yandex.Browser)のすべての種類の広告を排除します。 Android for AdGuardよりも制限されていますが、無料で簡単にインストールでき、広告のブロック品質も高いです。
ユーザーレビュー: 13857
星5つのうち4.7
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細

AdGuardアシスタント

“AdGuardデスクトップアプリのお手伝い役”ブラウザー拡張機能。カスタム要素のブロック、Webサイトのホワイトリストへの登録、報告の送信などといった機能に直接ブラウザーからアクセスできるようにします。
ユーザーレビュー: 13857
星5つのうち4.7
Chrome用アシスタント これは現在お使いのブラウザですか?
インストール
ダウンロードされますと、使用許諾契約書に同意したことになります。
Firefox用アシスタント これは現在お使いのブラウザですか?
インストール
ダウンロードされますと、使用許諾契約書に同意したことになります。
Edge用アシスタント これは現在お使いのブラウザですか?
インストール
ダウンロードされますと、使用許諾契約書に同意したことになります。
Opera用アシスタント これは現在お使いのブラウザですか?
インストール
ダウンロードされますと、使用許諾契約書に同意したことになります。
Yandex用アシスタント これは現在お使いのブラウザですか?
インストール
ダウンロードされますと、使用許諾契約書に同意したことになります。
Safari用アシスタント これは現在お使いのブラウザですか?
お使いのブラウザが見つからない場合は、AdGuard拡張機能の設定にある旧レガシーアシスタント版を試してみてください。

AdGuard Temp Mail β

匿名性とプライバシーを保護する、無料の捨てメアド(一時メールアドレス)ジェネレーター。メインのメールサービスに迷惑メールは届きません!
ユーザーレビュー: 13857
星5つのうち4.7

AdGuard for Android TV

AdGuard for Android TV は、広告をブロックし、プライバシーを保護し、スマートテレビのファイアウォールとして機能する唯一のアプリです。Webの脅威に関する警告を受け取り、セキュアDNSを使用し、トラフィックを暗号化しましょう。セキュリティを向上して、広告なしでお気に入りの番組をお楽しみください!
ユーザーレビュー: 13857
星5つのうち4.7
AdGuardをダウンロード中です AdGuardをインストールするには、矢印が指してるファイルをクリックしてください 「開く」を選択し、「OK」をクリックして、ファイルがダウンロードされるのをお待ちください。 ダウンロードが終了し開きましたウィンドウでAdGuardを「Applications」フォルダにドラッグで移動させてください。 AdGuardをダウンロードして頂きありがとうございます! 「開く」を選択し、「OK」をクリックして、ファイルがダウンロードされるのをお待ちください。 ダウンロードが終了し開きましたウィンドウで「インストール」をクリックしてください。 AdGuardをダウンロードして頂きありがとうございます!
以下のQRコードをスキャンすることでモバイル端末にもAdGuardをインストールできます。