「広告ブロック」と書きましたが本来広告のみをブロックする用途ではないので、本文中では「コンテンツブロック」という言い方をしております。iOS9でのコンテンツブロックがどのように行われるのかの検証とその対策をまとめます。
#コンテンツブロックの仕組み
iOS 9から搭載されたコンテンツブロック機能は標準では使えません。対応しているアプリをインストールし、「設定 > Safari > コンテンツブロッカー」からONにすることで機能します。
アプリによってブロック出来る広告・ソーシャルボタン・解析タグは異なります。
Safari 9.0の公式ページを見ると分かるように仕組みは単純で、アプリ毎のJSONファイルがSafariに適用されているだけです。
[
{
"action": {
"type": "block"
},
"trigger": {
"url-filter": "webkit.org/images/icon-gold.png"
}
},
{
"action": {
"selector": "a[href^=\"http://nightly.webkit.org/\"]",
"type": "css-display-none"
},
"trigger": {
"url-filter": ".*"
}
}
]
上記の例ではwebkit.org/images/icon-gold.png
の画像を読み込ませない、ページ内全ての「http://nightly.webkit.org/
」へのリンクは非表示とする、ということです。
#実際調べてみて分かったこと
##「Crystal」で読み込まれないJavaScriptのファイル名
「Crystal」では「analytics.js」というファイル名のJavaScriptは同一サーバであろうが、中身を問わず(!)動作しない。このブロックによってGoogleアナリティクスが動作しない。
なお、「plusone.js」もブロックされ、Google+の「+1ボタン」「共有ボタン」も表示されない。
##「Crystal」で表示されないclass名
「Crystal」にて、class名「ads-ad」「img_ad」「ad_image」「adsbygoogle」(など)を持つ要素が消える。これらのclass名を持っている要素は、広告でなくても(!)表示されない。このブロックによってスマホ用Google検索結果に広告が表示されない。
#どう対策するか?
##1.何もしない
運営者側的には何もせず、Googleなどの対応を待つ。
「Crystal」では前述の通りAdwordsが表示されない(インプレッションはプラスされる)が、2015年9月30日、Googleは表示されなかった広告を課金対象としない旨を発表した。
Googleは、米AppleがiOS 9で追加した「コンテンツブロッカー」とそれを利用する広告ブロックアプリについては触れていないが、少なくともブロックされた広告について課金される懸念はなさそうだ。
[Google AdWords、表示されたディスプレイ広告のみを課金対象に - ITmedia ニュース]
(http://www.itmedia.co.jp/news/articles/1510/01/news078.html)
また、Google AdSenceなど審査の厳しい広告をブロックされるのは理不尽であるという声も上がって来ている。ユーザーの為にならない有害な広告のみがブロックされるような動きが出てくるのが一番良いように思う。
[iOS 9の人気有料広告ブロックアプリ「Crystal」、“ホワイトリスト化”でEyeoから報酬受け取りへ - ITmedia ニュース]
(http://www.itmedia.co.jp/news/articles/1509/25/news066.html)
[ネット広告業界団体IAB、“容認できる広告”の指針「L.E.A.N. Ads」プログラム立ち上げ - ITmedia ニュース]
(http://www.itmedia.co.jp/news/articles/1510/16/news054.html)
##2.広告ブロックするユーザーをブロックする
「広告ブロックするユーザーはユーザーでは無い」という考え方の元に、ページ自体を見せない。広告収益のお陰で運営が可能なサイト・ブログもあるだろう。タダで閲覧しようとするユーザーは運営者にとって無益なのである。広告ブロックユーザーをブロックする手法は下記などに記述がある。
[コピペでOK。iOS9のAdBlockが有効な場合にページの表示を無効にするサンプル:phpspot開発日誌]
(http://phpspot.org/blog/archives/2015/09/okios9adblock.html)
[How to Display Alternate Content to AdBlock Users [Google AdSense]]
(http://www.labnol.org/internet/alternate-content-for-adblock/28602/)
##3.ブロックされない広告に変更する
調整が可能な自身のページであれば、現在ブロックされていない・されにくい広告に変更するという手もある。アプリのローカライズやバージョンアップによってはいつの間にかブロックされているかも…というリスクはつきまとう。
#広告ブロックアプリのこれからと今後
大体下記のようなことを考えました。
- 開発が容易なため同様のアプリが乱立する
- ローカライズされたアプリが各国で出てくる
- ホワイトリストの導入で、Google広告OKになる(アナリティクス含む)
大切なことは、自身のページについてアナリティクス等でiPhoneのユーザーの割合などから影響を推測して動くのが一番かなあと感じます。