- YouTubeは最近、広告ブロック対策の実験を強化しており、一部の利用者にフェイクバッファリング現象が発生している
- このフェイクバッファリングは、広告の長さの約80%ぶん動画の開始を遅延させる方式で動作する
- 利用者は広告ブロックフィルターに特定の設定を追加することで、この効果を一部回避できる
- YouTubeはグローバルキャッシュおよびSABRプロトコルなど、さまざまな技術で広告ブロックを検知・対処している
- 一部のJavaScriptロックスクリプトにより、ブラウザ、フィルター、拡張機能の動作が制限される現象も発生している
概要
- 最近YouTubeが広告ブロック防止機能を再導入し、実験中である
- A/Bテストを通じて、一部のアカウントにのみ実験的機能が適用されている
- 利用者はuBlock OriginやBraveブラウザで、これらの変化を回避できるフィルターを利用できる(基本フィルターにすでに含まれている)
フェイクバッファリング現象
- 主な現象は動画開始時の長いバッファリングである(再生途中では発生しない)
- このフェイクバッファリングの長さは、本来広告を見なければならなかった時間の80%程度である
- たとえば広告が15秒なら、利用者は約12秒のバッファリングを経験することになる
- 複数の広告が連続する場合、それぞれの長さの80%を合計した時間ぶん待機効果が発生する
- 広告ブロック利用者はそれでも時間的な得をすることになる
内部構造と動作原理
- InnerTubeはYouTubeの公式内部APIであり、Web・モバイルクライアントが動画と関連情報にアクセスするために使われる
- 動画ストリームはGVS(Google Video Services) を通じて配信され、リンクには有効期限があるため再生成が必要になる
- YouTubeはネットワーク負荷の最適化のためにGoogle Global Cacheサーバーも活用している
- 過去には単純にクエリパラメータで動画範囲を指定していたが、最近はSABR(Server ABR) という独自のバイナリプロトコルを使っている
- SABRは必要に応じて**backoff(遅延命令)**を送り、クライアントを一定時間待機させる
フェイクバッファリングの実際の発生原因
- 広告ブロックを検知した場合、InnerTubeはGVSストリームに広告の長さの80%ぶんのbackoffを含める
- このbackoffは広告ブロックの有無に関係なく、A/Bテストグループに属している場合は常に適用される
- 広告がブロックされていない利用者は、バックエンドでcontent videoを事前読み込みするため、このような遅延を体感しない
- "Experiencing interruptions" などの通知は、長時間のbackoffによって表示される現象である
- Web上で出回っている"CPU過負荷問題"などは事実ではない
広告を根本的にブロックする方法
- 広告ストリーム自体を受け取らないために、
isInlinePlaybackNoAd属性をtrueに設定できる
- JSONリクエストに
"isInlinePlaybackNoAd":true 項目が入ると、InnerTubeは広告とbackoffを含めない
- uBlock Originのユーザーフィルターに関連ルールを挿入して自動適用できる
- この属性はフロントエンドJavaScriptおよびProtocol Buffers定義で確認できる
制限と副作用
- この方式は、すでに読み込まれたYouTubeシングルページアプリ内での**ナビゲーション(ウォームロード)**でのみ回避できる
- 初回アクセス(コールドロード)時には、バックエンドが提供する初期データのため適用できない
- 強制的に初期データを削除する試みは、ライブストリーム、ページ速度、ユーザー体験など複数の問題を引き起こす
ロックスクリプト(Locker Script)の回避
- YouTubeは一部の実験グループに、`` タグの上部へグローバルオブジェクトを変更不能な状態にするロックスクリプトを挿入している
- uBlock Originなどの拡張機能は、そのスクリプトが実行される前にのみオブジェクトのフックを行える
- FirefoxはHTMLフィルタリングでこれを回避できるが、Chromiumブラウザはこの方式をサポートしていない
- これに対応して、Object.assignフック方式でフィルター回避が可能である
- この方法を使うと、高度なProxy機能を用いて
"isInlinePlaybackNoAd":true の挿入が可能になる
1件のコメント
Hacker Newsの意見
最近YouTubeを完全に断った体験を共有。以前は教育系・科学系の優れたコンテンツを1日に何時間も見るほどのヘビーユーザーだったが、実際にはそれほど必要ではなかったと気づいたという。おまけに広告のないすっきりした状態になる点にも言及。誰かにYouTube動画を送られたときにたまに見ることはあるが、自分からわざわざアクセスしない生活になったとのこと。YouTubeのような受動的エンターテインメント消費を減らし、より創造的で意識的な活動に時間を振り向けることを皆に強く勧めている
単純に課金して使う方法もあるという話。家族全員でサブスクリプションプランを使っており、広告のない環境で過ごしている。十分にコストパフォーマンスが高いと感じているとのこと。動画なしでもバイクのビルドプロジェクトを終わらせることはできるだろうが、わざわざそうする必要があるのかという考え
Netflixも同じようにやめ、Primeも解約してAmazon全体の利用を中止したという話。ただしAWSだけはデータの都合上、事実上不可能なので例外。YouTubeは広告なしプランで使っており、もし広告なしの約束を破るならYouTubeも永久停止対象だとしている
YouTubeアカウントを削除してPatreonへ移行。Patreonで支援しているクリエイターの動画は引き続きYouTubeで通知を受けて視聴しているが、そのおかげで、はるかに意図的で質の高いコンテンツ消費ができるようになったという
大規模な人口がこうしたプラットフォームに中毒している現実に言及し、これは「たばこ 2.0」の時代だという比喩
最高の科学番組はPBSやNebulaのようなプラットフォームにもたくさんあるという補足
Googleが広告の強制を続ける限り、私たちがさらされる広告の不適切さや詐欺的な広告に、より敏感に注目して監視すべきだという意見。特に、広告ブロックだけが家族や自分を有害な広告から守る方法になっているなら、Googleが配信する広告そのものに、より大きな責任を求めるべきだという主張
最近のYouTube広告の水準があまりに低く不適切で愕然とするという声。経営陣がKPIやボーナス、昇進のためだけに基準を地面すれすれまで下げている状況だとする。モバイルでサムネイル経由のポルノ広告まで見たことがあるほどで、昔のEvony Online広告よりさらにひどいという。YouTubeが成長停滞に陥っている兆候に見えるという見方
テレビ放送では広告時間が一定に管理されている一方、YouTubeにはひどい広告が多すぎて、しかも長い。ときにはバックグラウンド再生中に5秒でスキップ可能な広告を飛ばしたあと、30分、場合によってはそれ以上のインフォマーシャルが割り込むこともあるという。こうした長い広告が意図せず視聴の流れを妨げるのに許されているのは奇妙で、ほとんど犯罪的だと感じるとのこと。こうした広告を誘致するためなら、YouTubeも莫大な広告費を受け取っているはずだと推測している
コンテンツ制作とプラットフォーム構築にかかる努力と労働には正当な報酬があるべきだという原則。書籍、映画、TV、ニュースなど、あらゆるコンテンツは金銭であれ広告視聴であれ、対価を支払う仕組みだという説明。広告が嫌なら有料購読を勧めるという意見
広告ブロック開発者を称える「Thin Adblock Writer Line」の旗があるなら、もう車に付けていただろうという愉快な応援
単にプレミアム料金を払えばいいという提案。誰もYouTubeを使うことを強制してはいないというメッセージ
FirefoxではHTMLフィルタで広告ブロックが簡単に可能だと言及。ただしこの方式はChromiumでは拡張APIがないため不可能だという事実に驚き、開発環境の違いに衝撃を受けたという話
最近YouTubeのバッファリングによる遅延をよく経験しているが、実はそれほど不便ではないという立場。広告がうっとうしい理由は時間ではなく、本来望んでいない音声と映像を強制的に見せられる点にあるという。12秒のバッファリング中はメールを確認したり、少しぼーっとしたりして自然に適応しているとのこと。むしろ毎回バッファリングが繰り返されると、脳が自動的に無視するパターンになるように感じるという。むしろ5回に1回のようにたまに起きる方が気になるだろうとしている
「なぜ私たちは広告ブロックを正当化するのか。コンテンツには費用がかかり、保存や配信にも金がかかるのに、広告ブロックに道徳的根拠や特権意識を感じる理由があるのか」という根本的な問いを提示。単に広告が不快だからというだけなら、自分たちに「なぜ私たちは無料を当然視するのか」と問い返すべきだという考え。道徳的な断罪ではなく、純粋に理解したいという質問
かつてGoogle AdSenseは1ページあたり広告3個までという制限があり、違反すると停止されることもあったが、今では1つのウェブページに10個、15個以上の広告が埋め込まれているという指摘。YouTubeも最初はバナーから始まり、今では動画前広告、中間広告、動画内のスポンサー枠、プレミアム加入者向けの下部広告まであふれている。Google検索ですら上部が広告で埋まり、自然検索結果を見るには下にスクロールしなければならないほどだという。無料利用の権利を主張したいわけではないが、「やりすぎだ」と感じるので、すべての端末でAdBlockを使っているという説明
「なぜ私たちは無料に権利意識を持つのか」という問い自体が、実際のユーザーの考え方とずれているという指摘。できるからやる、やりたいからやるのであって、それを止める側にこそ倫理的理由が必要だという主張。誰かが広告を必ず見なければならない倫理的義務はないとしている。むしろ広告は人間の注意を操作して利益を得る、本質的に操作的でプライバシー侵害的なものであり、そもそも強制できない契約だという説明
Googleはユーザーの味方を装いながら、実際には敵対的かつ反競争的になっているので、広告ブロックは戦争で銃を取るようなものだという比喩。広告はもともとブロックが難しいか不可能だったが、今日ブロックされる広告の大半は、実際には広告と監視が混ざったハイブリッドだという説明。関連記事と追加の背景知識へのリンクを提示
YouTubeクリエイターが総収益の55%を受け取る構造を指摘。Googleの莫大な利益中心の仕組みを批判する空気がある一方、実際には主要な費用の大半はクリエイターに回っているのが現実だという。Patreonでの支援のような積極的な参加は一部の熱心なファンしか実践せず、無料の食事を食べながらレストランに文句ばかり言う大多数のユーザーは、費用負担を避けているのだと皮肉っている
Object.definePropertyを使ってグローバルオブジェクトのプロパティを不変にし、デコイオブジェクトによるブロック回避を可能にするスクリプトの動作は、ブラウザまたは仕様上の重大な欠陥だという指摘。ページのコンテンツやスクリプトがブラウザ拡張機能の動作を制限できてはならないという主張自分にとって広告ブロックの目的は注意散漫とコンテキストスイッチを防ぐことにあると明かし、広告がもたらす情報過多が、すでに高い認知負荷にさらに上乗せされる不快さに耐えがたいという意見
YouTubeを見ながらどうして認知負荷が高くなるのかと問い返し、途中で本物の手術訓練映像でも観察しながら心臓移植手術でもしているのかと皮肉る反応
月13ドル払えばコンテキストスイッチの心配なしに簡単に解決できるという意見。認知負荷が高いなら、それだけ十分稼いでいそうだから、その方が効率的だという主張
広告を消しつつコンテンツ制作者の収益を守るため、家族全員分のYoutube Premiumを喜んで払っているという人の体験を淡々と紹介
自分はそんな考えにはまったく同意せず、NewPipeを活用して1円も払わず広告なしで使っているという立場
上の話が風刺なのかどうか判断に迷うが、本気ならインターネットの大地主に自発的かつ喜んで追加の金を払う人を見るのは意外だという感想
YouTubeが広告を動画ストリームに直接注入しないこと自体が意外だという見方。HLS/DASH環境では途中にコンテンツを容易に差し込めるため、ストリームに含めれば広告ブロックはより困難になるはずだという予想。さらに再生速度でパケット転送を制限すれば、事前ダウンロードで回避することも防げるという分析
こうした環境でもHLSはハードウェア規模で極めて最適化されているため、ターゲティング広告のために計算量を増やすとコストが爆発するはずだという説明。Netflixのストリーミング・エッジサーバー性能最適化資料を参照すると関連内容がもっと分かるという勧め
YouTubeは変化を急激に進めるのではなく、徐々に適用しようとしているのだろうという分析。近いうちにストリームへ広告を直接挿入するシナリオになるだろうという予測。現在は広告と動画ストリームが分離されているが、サーバーサイド広告挿入の実験も別途進行中だという話
SponsorBlockやTubularのような、タイムスタンプベースの群衆知型広告ブロックの流れを紹介。今後はデバイス内でリアルタイムAIコンテンツ認識による広告ブロックも登場するはずで、どれだけ防いでも広告ブロックは簡単には終わらないだろうという自信
実際、YouTubeは現在サーバーベース広告挿入(SSAI)のA/Bテストを実施中だとして、自分はまだその広告を体験していないが関連状況を共有している
クライアント側でも広告が動画に挿入されるのと同じように切り取れるはずだという見方。SponsorBlockのような群集データベースベースなら広告検出は十分可能で、ストリーム広告も回避してブロックできるだろうという主張