トラッカーブロッカーツールの難題 – 技術的な観点から

Vivaldi をすべてのユーザーに無料で提供する精神に基づき、私たちはトラッカーブロッカーの動作方法にいくつかの変更を加えることを試みています。これらの変更は、トラッカーブロッカーが検索エンジンとのパートナーシップに予期しない影響を与えていた方法に関連しています。

ウェブは多様なアイデア、動機、そして利益が交差する場所です。時には、これらの利益が対立することがあります。Vivaldi では、ウェブがより良いものになるよう、さまざまな関係者の願いをバランスよく保つことの難しさを深く認識しています。

Vivaldi は数年前に 広告・トラッカーブロッカーを導入しました。その目的は、ユーザーにとって有益である、かつトラッキングや悪質な広告からくる他の問題に悩まされることがないという安心感を提供することにありました。しかし、同時に、ユーザーが自分のお気に入りのウェブサイトや Vivaldi 自体をサポートできるようにしたいとも考えていました。これが、私たちが 3 つのブロックレベルを設定した理由です。何もブロックしないレベル、全てをブロックするレベル、そしてその間に悪質なトラッカーのみをブロックするレベルです。

この中間の選択肢が存在するのは、今でもウェブの重要な部分が主に広告収入に依存しているからです。私たちは、一部のユーザーが完全に広告から守られることを望むことを理解していますが、広告に依存している特定のサイトをサポートしたいと考えるユーザーにも、その選択肢を提供すべきだと考えています。

しかし、時間が経つにつれて、この設定に問題があることに気付き始めました。パートナーの検索エンジン(英文記事)から、収益が減少していて異常に低いと言われました。調査を進めるうちに、トラッカーブロッカーを有効にすると、その取引が機能するために必要な一部のトラフィックもブロックされていることが判明したのです。

当然、このパートナーシップは我々にとって重要な収益源であるため、私は調査を行い、解決策を提案することになりました。過去に行った広告ブロッカーの修正とは異なり、今回はこの変更について詳細に説明する必要があると感じています。この変更がうまくいかない場合、元に戻す可能性は十分にありますが、しばらくはこのままであると予想しています。

修正自体に入る前に、元々の問題について説明したいと思います。この背景には複雑な理由がありますが、できるだけ明確にしようと思います。

基本的な考え

検索エンジンとのパートナーシップは、主にユーザーがその検索エンジンを使って検索を行うことに依存しています。これは一般的な利用ケースです。その見返りとして、検索エンジンはその検索に対する収益の一部を私たちに提供します。通常、検索エンジンは、ユーザーが検索結果に表示された広告とやり取りすることで収益を得ています。私たちは通常、検索エンジンがユーザーの検索内容に基づいた有用な広告を表示することを期待しています。

広告ブロッカーがパートナーの検索エンジンで広告の表示を許可するように設定されている場合、見た目にはうまくいっているように思えましたが、実際にはそうではありませんでした。その理由は、広告詐欺との戦いに関係しています。

広告詐欺は、インターネット上のほとんどの広告取引が、いくつかの大手テック企業を介して行われる現在の広告環境から生じています。これらの企業は、すでに馴染みのあるビッグテック企業、つまり Meta、Google、Microsoft です。

広告に使用される技術(または広告技術)に対するビッグテックの覇権は、広告を表示する企業と広告主との間に直接的な信頼関係を築くことをほぼ不可能にしています。これにより、誰でも広告詐欺を行うためにシステムを悪用する可能性があるのです。広告詐欺は、広告とのやり取りを多く行うことによって、広告に対して大きな支払いを引き起こすことを目的としています。

当然、すべての仲介業者は広告詐欺を検出するためのメカニズムを実装しています。私たちが許可する少数の検索エンジン広告が正常に機能するためには、これらのメカニズムが正確に機能するようにする必要があります。しかし、実際には、私たちのトラッカーブロッカーがそれらを壊していたのです。なぜそうなったのかを理解するためには、広告詐欺検出メカニズムの歴史を説明する必要があります。

広告の初期

初期の頃、広告に対して支払いを受けるために必要だったのは、その広告がウェブページで読み込まれたことを確認することだけでした。これを CPM(Cost Per Mille [1,000 インプレッションあたりのコスト])と呼びます。設定が簡単で、支払いを受けるのも簡単でしたが、同時に不正行為も非常に簡単に行うことができる環境でした。この単純な実装から、誰でも何千回も広告を読み込むリクエストを送信し、大金をかき集めることができました。

広告主はもちろん、すぐにこれを緩和しようと試みます – 広告とのやり取りが本物であるかどうかを確認しようというものです。これは、広告とやり取りしているユーザーエージェントが信頼できるものであることを確認し、その広告とのやり取りに対する支払いを広告を表示したサイトに帰属させることを意味します。これを広義には広告アトリビューション(広告帰属)と呼びます。したがって、緩和策は 3 つのカテゴリに分けられます:

  • クライアント側で行う広告帰属チェック
  • サーバー側で行う広告帰属チェック
  • 広告とのやり取りがカウントされるための要件を引き上げる

最初の 2 つの緩和策は、CPM 広告にはあまり効果的ではありません。なぜなら、広告を表示し、それから利益を得るサイトが広告が表示される環境を完全に制御しているからです。これにより、CPM 広告は実質的に広告主とサイトとの間に完全な相互信頼がある場合にのみ成立するため、今日では CPM 広告はあまり見られず、ほとんど収益を上げません。

そのため、広告とのやり取りが何を要求されるかの基準が上がり始めました。その方向への最初のステップは、初期の頃から存在していました。それは、広告自体をクリックした後に広告の遷移先ページが読み込まれることを要求するものです。これを CPC(Cost Per Click)と呼び、現在でも使用されていますが、以前ほど一般的ではありません。最も単純な形では、ターゲットリンクを繰り返し読み込むことで簡単に不正ができてしまいます。

CPC 広告のクリック詐欺の軽減は、比較的簡単です。この場合、広告のランディングページでアトリビューションチェックが行われます。そのページは広告費を支払っている企業のものであるため、詐欺を正確に検出する動機があります。以前は CPC 広告は一般的でしたが、さらに難易度の高い代替手段が人気を集める中で、最近ではあまり使われなくなっています。

クリックだけではもう収益を得ることはできない

現在、広告の要件として第三の種類が一般的になりつつあります。この方法は、広告詐欺の利益を無効にするほど時間やお金の面でコストがかかる行動を、詐欺をしようとする者に要求します。この方法は CPA(Cost Per Acquisition)と呼ばれ、広告されたサイトに利益をもたらす行動を取ることが求められます。訪問者が何かを購入したり、サブスクリプションに登録したり、サービスの利用を開始した後にのみ、広告を表示しているサイトの所有者は報酬を受け取ります。

では、ユーザーエージェントや IP アドレスが実際に信頼できるものであり、クリックファームの一部ではないことをどう信頼するのでしょうか(CPC の場合)。そして、広告が購入に繋がったかどうかをどう追跡するのでしょうか(CPA の場合)。ここで、クライアントサイドとサーバーサイドの広告アトリビューションの違いが重要になってきます。

サーバーサイドの広告アトリビューションは、ウェブサイトが直接収集した情報を広告主と共有することに依存しています。これには、IPアドレスを確認するだけの簡単な方法もあります。もしあなたの IP アドレスが多くの他のユーザーと共有されている場合、CPC 広告で不正なクリックを試みている可能性があります。これは、職場や学校で多くの人とインターネット接続を共有している場合や、IP アドレスを隠すセキュリティツール(通常は VPN として商業化されている安全なプロキシなど)を使用している場合に発生することがあります。

もしショッピングサイトでアカウントを作成している場合、いくつかの詳細が広告主と共有されることがあります。それらの詳細は、他のショッピングサイトからの情報と照合することで、あなたが信頼できる買い物客であるかどうかを確認するために使用されます。

クライアントサイドの広告アトリビューションは、主に広告主から読み込まれるスクリプトに依存しており、そのスクリプトはクライアントの活動に関する情報を広告主に報告します。特定のスクリプトは、特定の広告主が広告を出している任意のサイトで読み込むことができます。これらのスクリプトは、クライアントが訪れるサイトの組み合わせを含むさまざまな情報を測定し、それが信頼できるかどうかを判断します。

残念ながら、このようなサードパーティのスクリプトは、さまざまなサイトで読み込まれ、ユーザーが行っていることに関する情報を第三者に送信するため、トラッカーのように見えることが多いです(時には実際にトラッカーのように機能することもあります)。

当然のことながら、これらのスクリプトは広告ブロックやトラッカーブロックのリストに載ることになります。これにより、トラッカーブロックがこの種のアトリビューションを完全に破壊することになります。

トラッカーかどうか?

広告アトリビューションスクリプトの基本的な考え方は悪意のあるものではありません。これらのスクリプトは、広告に関わる異なる企業が不正が行われたかどうかを確認するためのものです。理想的な世界では、これらの企業はすべてウェブとそのユーザーの利益を最優先に考え、不正が行われていないことが確認できた時点でそのデータをすぐに廃棄するはずです。

残念ながら、前述したように、これらの企業は実質的に大手テック企業であり、何度も信頼しづらいことが証明されています。中には、広告アトリビューションを言い訳にして、さらに多くのデータ収集を行おうとする企業もあります。彼らは「良いことをする」と約束しますが、気まぐれであり、その約束を反故にすることを防ぐものはあまりありません。

このような状況を考慮すれば、これらのスクリプトが既知のトラッカーのリストに載るのは驚くべきことではありません。その結果、トラッカーブロックが広告収益にどのように影響するかを説明するために必要なすべての要素が揃ったことになります。

確かに、広告アトリビューションを担当するスクリプトがブロックされると、広告をクリックしたり、購入したりしても何もカウントされません。したがって、Vivaldi の広告ブロッカーがサイトで広告を許可し、トラッカーブロッカーが有効になっている場合、そのサイトはあまり広告収益を得ることができません。これは問題です。なぜなら、この問題にもかかわらず、トラッカー全体が依然としてプライバシーに有害であり、その中には広告アトリビューションのトラッカーも含まれているからです。

そして、ここで競合する利害関係が関わってきます。広告テクノロジー企業は広告詐欺を防ぎたいと思っており、ユーザーは追跡されたくないと考えています。私たちは、ユーザーに対してプライバシーの観点で競争力を維持しつつ、Vivaldi を無料で提供し続けるためには、両方をうまく満足させる必要があります(大手テック企業とは異なり、私たちはこの約束を守り続けるつもりです)。

では、どうやってそれを実現するのか?

広告主に既に知っていることを伝える

広告アトリビューションの問題に対処するための既存の方法は大きく分けて 2 つあります。私たちは、ブラウザユーザーに広く不評を買っている現在の業界のトレンドを拒否することに決めました。それは、広告をアトリビューションするために必要なデータ収集をブラウザに組み込むというものです。データ収集のプロセスにブラウザを積極的に参加させ、広告アトリビューションに必要なすべてのデータをブラウザメーカーの手に渡すことは、私たちの原則に反します。

私たちが選んだアプローチは、広告のランディングドメインのコンテキスト内で、特定のトラッカーURLへのリクエストを制限された時間内に許可するというものです。以前の実装に関する調査では、基本的により優れた方法は見つかりませんでした。このアプローチにはいくつかの利点があります:

  • 許可されたトラッカーは、明らかに広告であるものをクリックした後にのみ読み込まれます。
  • 許可されたトラッカーは広告のランディングサイトのみに読み込まれ、他のサイトでは読み込まれないため、潜在的な被害を制限できます。
  • その他のトラッカーは引き続きブロックされます。
  • トラッキングの責任は引き続き広告主にあり、既存のウェブ技術を使用しています

私たちは複数の検索エンジンと提携しており、ユーザーがどの検索エンジンを使用するか選べるべきだと考えています。そのため、各検索エンジンに対してカスタマイズされた例外リストが必要でした。また、発生する問題を即座に修正できるようにしたかったので、広告ブロッカーの新しい追加ルールオプションを実装し、必要な制御レベルを提供できるようにしました。技術的な詳細が興味があれば、こちら(英文記事)で確認できます。

広告ブロッカーのコードと同様、この実装はリリースされたソースコードのバンドルの一部として完全にこちらで公開されています。これにより、私たちの実装がここや他の記事で説明されている通りであることを完全に確認できます。

このソリューションの最良の点は、広告アトリビューションスクリプトが通常、トラッキングスクリプトを提供するのと同じ会社が提供する広告のコンテキスト内でのみ実行されることです。

つまり、もしあなたが Startpage を使用して Google の広告をクリックした場合(前述の通り、インターネット上のほとんどの広告契約は大手テック企業を仲介者として通過します)、Google の広告アトリビューションスクリプトが読み込まれます。これにより、そのサイトにアクセスしたことが追跡される可能性があります。しかし、広告をクリックした時点で Google はすでにその情報を知っているので、私たちは Google にそれ以上の情報を伝えているわけではありません。

私たちはこの原則に最大限従うよう努めています。そのため、プライバシーへの影響は最小限、または限りなくゼロに近いと予想しています。

これがあなたにとって意味することは?

簡単に言うと、広告をクリックしない限り、何も変わりません。もし、私たちの検索パートナーの検索結果に表示された広告をクリックした場合、私たちは現在、広告アトリビューションスクリプトの限定的な選択を読み込むことを許可します。これらのスクリプトは、トラッカーブロックリストに載っている場合でも許可されます。

これらは、限定的な時間内でのみ読み込まれ、広告が導いたサイトにいる限りのみ読み込まれます。この限定的な範囲のアプローチにより、これらのスクリプトがプロファイル作成に寄与する可能性を大幅に防ぎ、あなたのプライバシーは安全に保たれると私たちは考えています。

どのトラッカーがこのメカニズムで許可されているかについては、広告およびトラッカーブロッカーのポップアップに表示されます。

全体として、広告ブロッカーとトラッカーブロッカーはこれまで通り動作し、ウェブ全体での広告とトラッカーのリクエストをブロックし続けます。

でも、広告やトラッカーはやっぱり嫌なら?

ご心配なく。その気持ちはよく理解しており、Vivaldi はもちろん対応しています。もし、パートナーサイトで広告を一切表示させたくなく、広告アトリビューションも完全に無効にしたい場合は、以下の手順を実行してください:

デスクトップ:

  1. 設定 > プライバシーとセキュリティ > トラッカー・広告ブロックを開く
  2. 「トラッカーと広告をブロック」を選択
  3. 「ソースの管理」をクリック
  4. 「広告ブロッカーのソース」内で「Vivaldi のパートナーからの広告を許可」をオフにする

Android:

  1. Vivaldi メニューから設定を開く
  2. 「トラッカーと広告をブロック」を選択
  3. 「ソースの管理」を選択
  4. 「Vivaldi のパートナーからの広告を許可」をオフにする

iOS は、広告アトリビューションは現時点では実装されていません。ただし、検索エンジンパートナーの広告は表示されます。これを無効化するには、上記 Android の場合と同じ手順で設定を変更してください。

パートナーからの広告を無効にすることを選択した場合、Vivaldi の開発支援を考えてもらえると嬉しいです。私たちは外部投資家を持っていません。ウェブブラウザの開発には費用がかかるので、どんな小さな支援でも歓迎しています。

とはいえ、私はユーザーが広告なしでウェブを視聴し体験する権利を尊重します。広告ブロッカーの改善作業は今後数ヶ月にわたって進められ、uBlock Origin との機能的な同等性を目指しています。

オープンなウェブのための戦いは続きます

現在、インターネット上の広告は複雑な状況にあります。一方では、いまだに多くのビジネスにとって広告が資金調達の現実的な手段であり、他方では広告技術企業の影響で広告に対する信頼が低下し、ますます多くの人々が広告ブロッカーをインストールしています。

私たちが最も望まないのは、この傾向によりほとんどのインターネットビジネスがペイウォール(有料コンテンツ)の背後に退くことです。これがオープンウェブにとって大きな打撃となり、参加する術がない人々を排除してしまいます。すでに、ニュース分野では「真実はペイウォールに隠されて、我々がみている無料コンテンツは全て嘘である」(英文記事)といった状況が見られています。

いつものように、私たちは広告企業に対して、ユーザーのプロファイル作成のためのトラッキングを停止させるよう求める立法を支持しています。私たちは、プロファイルを作成することなく関連性を持たせることができるコンテキスト広告の使用を推奨しています。さらに、ユーザーは、自分に提示される広告が詐欺やマルウェアでないことを信頼できる必要があります。

私たちはこのビジョンを現実に近づけるための戦いを続けていきます。

原文 – The great tracker blocker conundrum – Technical

訳 – Akira
Team Vivaldi
Twitter | Mastodon | Facebook | Instagram | note

豊富な機能とカスタマイゼーションで、もっと自由にブラウジングを楽しもう!

Vivaldi をダウンロード