開発者用拡張機能を公開するサイト
youtubeの動画広告の仕組みについて
ふと気になったもので、拡張機能を作らないまでも
youtubeの動画広告がどのような仕組みで表示されているのかを調査しました。
知ってる方は何を今更という内容。
youtubeの動画を再生しているのはhtmlのvideoタグですが
srcタグには生URLではなく非同期通信用のコードっぽいものが書かれています。
「blob:https://www.youtube.com/4f3ff402-~」 といったもの。
Q1. src属性を変更したらどうなるのか
まずこのsrc属性を無理やり変更したらどうなるのか。
確認したところ、本来のsrc属性に即戻るようでした。
つまりsrc属性を他の動画にしただけでは動画内容を変更できません。
広告が表示される時もこのsrc属性が変更され、
無理やり変更すると広告動画のsrc属性に戻されます。
つまり広告動画のsrc属性を元の動画に戻すだけでは広告非表示にはなりません。
またこのsrc変更を3回行うと長いロードが挟まり、4,5回目でエラーになります。
ただしこれを広告で行うとその広告はスキップされます。
内部的には読み込みを繰り返してしまったときの安全装置にでもなっているのでしょうか。
因みにエラーになるまで合計7秒ほどかかるので、スキップが出るならスキップした方が早いです。
これらからわかるのは、動画内容は見えないところで管理されており、
見えるところをいくら変更しても効果はない or 薄いということ。
Q2. シークバーをいじくる
動画のシークバーは通常時と広告で異なります。
広告の際は黄色になりスライドができなくなります。
では広告再生中にシークバーを戻したらどうなるのか。
これはどこまで戻すかによりますが、見た目だけ戻しても操作はできません。
操作をできるようにしても再生時間が異なるので合わなくなります。
因みに広告から通常時に戻した場合は「動画終了」を検知できなくなるらしく
広告が終了しても元の動画に戻らなくなります。
実際無意味。
Q3. スキップボタンを無理やり押す
スキップ可能な広告に表示されるスキップボタンのイベントを無理やり発生させたらどうなるか。
色々試してみたのですが、それ以前のイベントのトリガーがわかりませんでした。
デベロッパーツールで調べるとあの辺りにクリックイベント自体はあるのですが、
広告スキップがクリックイベントなのか、別のイベントなのかが不明です。
Eventコンストラクターでアタッチして実行できるかまでは試してませんが。
なお評価ボタンは普通にクリックイベントでした。
なので押し忘れを防止したい人のための自動評価拡張機能等は作成できます。
Q4. youtube内にEmbedする
大変手間ではありますが、JSでyoutubeの共有埋め込みコードは取得できます。
それをyoutube内にappendするとどうなるか、ですが
結果はiframeプレイヤーがエラー4になりました。
またiframeプレイヤーはオンラインで通信できる環境でないと使えないため
(通信できるならlocalhostでも大丈夫)
拡張機能のポップアップやサイドパネルに表示するとエラー153になります。
対策されてますねぇとは思うのですが、埋め込みはyoutube以外のサイトであれば
例えばGoogle検索の検索一覧でも可能です。
なので拡張機能としては、
・動画再生ページで埋め込みコードを自動で取得する
・取得したコードを使って埋め込み動画を設置する
の2点ができればある程度広告が表示されにくくなった
youtubeお気に入りリストみたいなものが作れます。
確実に広告がなくなるものでもありませんが。
調査結果
調査していると、本当に色々と対策されているなぁと思うものです。
それだけ広告回避等したい人がいて、拡張機能等をつくる人がおり、
需要が生まれ、いたちごっこを繰り返しているということでしょう。
現段階でも広告を飛ばす拡張機能はストアでたくさん公開されていますしね。
youtubeの動画広告がどのような仕組みで表示されているのかを調査しました。
知ってる方は何を今更という内容。
youtubeの動画を再生しているのはhtmlのvideoタグですが
srcタグには生URLではなく非同期通信用のコードっぽいものが書かれています。
「blob:https://www.youtube.com/4f3ff402-~」 といったもの。
Q1. src属性を変更したらどうなるのか
まずこのsrc属性を無理やり変更したらどうなるのか。
確認したところ、本来のsrc属性に即戻るようでした。
つまりsrc属性を他の動画にしただけでは動画内容を変更できません。
広告が表示される時もこのsrc属性が変更され、
無理やり変更すると広告動画のsrc属性に戻されます。
つまり広告動画のsrc属性を元の動画に戻すだけでは広告非表示にはなりません。
またこのsrc変更を3回行うと長いロードが挟まり、4,5回目でエラーになります。
ただしこれを広告で行うとその広告はスキップされます。
内部的には読み込みを繰り返してしまったときの安全装置にでもなっているのでしょうか。
因みにエラーになるまで合計7秒ほどかかるので、スキップが出るならスキップした方が早いです。
これらからわかるのは、動画内容は見えないところで管理されており、
見えるところをいくら変更しても効果はない or 薄いということ。
Q2. シークバーをいじくる
動画のシークバーは通常時と広告で異なります。
広告の際は黄色になりスライドができなくなります。
では広告再生中にシークバーを戻したらどうなるのか。
これはどこまで戻すかによりますが、見た目だけ戻しても操作はできません。
操作をできるようにしても再生時間が異なるので合わなくなります。
因みに広告から通常時に戻した場合は「動画終了」を検知できなくなるらしく
広告が終了しても元の動画に戻らなくなります。
実際無意味。
Q3. スキップボタンを無理やり押す
スキップ可能な広告に表示されるスキップボタンのイベントを無理やり発生させたらどうなるか。
色々試してみたのですが、それ以前のイベントのトリガーがわかりませんでした。
デベロッパーツールで調べるとあの辺りにクリックイベント自体はあるのですが、
広告スキップがクリックイベントなのか、別のイベントなのかが不明です。
Eventコンストラクターでアタッチして実行できるかまでは試してませんが。
なお評価ボタンは普通にクリックイベントでした。
なので押し忘れを防止したい人のための自動評価拡張機能等は作成できます。
Q4. youtube内にEmbedする
大変手間ではありますが、JSでyoutubeの共有埋め込みコードは取得できます。
それをyoutube内にappendするとどうなるか、ですが
結果はiframeプレイヤーがエラー4になりました。
またiframeプレイヤーはオンラインで通信できる環境でないと使えないため
(通信できるならlocalhostでも大丈夫)
拡張機能のポップアップやサイドパネルに表示するとエラー153になります。
対策されてますねぇとは思うのですが、埋め込みはyoutube以外のサイトであれば
例えばGoogle検索の検索一覧でも可能です。
なので拡張機能としては、
・動画再生ページで埋め込みコードを自動で取得する
・取得したコードを使って埋め込み動画を設置する
の2点ができればある程度広告が表示されにくくなった
youtubeお気に入りリストみたいなものが作れます。
確実に広告がなくなるものでもありませんが。
調査結果
調査していると、本当に色々と対策されているなぁと思うものです。
それだけ広告回避等したい人がいて、拡張機能等をつくる人がおり、
需要が生まれ、いたちごっこを繰り返しているということでしょう。
現段階でも広告を飛ばす拡張機能はストアでたくさん公開されていますしね。
Copyright © スペース・アイ株式会社