AdSense配置ページをCDN配信すると収益が減るのか?
はじめに
Google先生で検索していたらなんとも不穏な検索結果が出てきたので、情報の真偽について考えてみます。見つけたのは、次の記事です。
当ブログでは、CloudflareとAdSenseを共に利用しています。上記の記事内容が正しいとすれば、大きな問題となります。
問題の本質はなにか?
最大の問題は、「GoogleAdSenseの収益が減ること」です。ではなぜ減るのか、それはCloudflareから「元の訪問者IPがサーバーに返されていない」ためです。なので、元の訪問者IPアドレスをGoogleAdSenseが取得できれば問題ないと考えて良いでしょう。
※GoogleAdSenseは、元の訪問者IPアドレスなどを利用してユーザーに合わせた広告を配信することで、収益を上昇させていると考えられています
ここで、「元の訪問者IPがサーバーに返されていない」ことは事実でしょう。次のページで「X-Forwarded-For
」および「CF-Connecting-IP
」ヘッダーに元の訪問者IPアドレスを含めると記載されています。元IPアドレスは、Cloudflareのものに置き換えられてしまっています。
GoogleAdSenseは元の訪問者IPを取得できるのか?
GoogleAdSenseが元の訪問者IPアドレスを取得する方法について考えます。まず、GoogleAdSenseはJavaScriptで書かれたスクリプトをページに読み込むため、JavaScriptでのIPアドレス取得について考えます。
これは不可能です。なぜなら、JavaScriptからIPアドレス取得する方法はありません。
次に思いつくのは、サーバーへのアクセス時です。GoogleAdSenseのスクリプトを読み込むため、もしくはスクリプトでサーバーとの通信処理を実施した際に、サーバー側でのIPアドレス取得について考えます。
こちらは、可能でしょう。サーバーへのリクエスト元の訪問者IPアドレスをGoogleAdSenseが正常に取得できていれば問題ありません。
では、サーバーへのリクエスト元の訪問者IPアドレスを正常に取得できるのでしょうか?結論から言えば、正常に取得できると考えます。なぜならば、ユーザーのブラウザ上から読み込まれるスクリプトのドメインは、googleadservices.com
だからです。当ブログのドメインであるwww.bugbugnow.net
ではありません。
ここで重要なのは、Cloudflare(CDN)がどのドメインに対して有効なのかです。もちろん、当ブログのドメインであるwww.bugbugnow.net
だけです。Cloudflareは、googleadservices.com
をキャッシュしていません。googleadservices.com
へのアクセスは、Cloudflareを経由せずにおこなわれるため、元の訪問者IPはGoogleAdSenseに正常に渡されると考えられます。
まとめ
GoogleAdSenseを利用しているページをCDNでキャッシュしても「元の訪問者IP」による原因で広告収益さがると言うことは考えにくいです。(※上記の考察の中に漏れや間違いがある場合は、その範囲ではありません)
実際のところ、1か月程度CloudflareとGoogleAdSenseを併用していますが、特段収益が悪化したようには感じていません。(悪化するほどの収益がそもそも存在しなかった可能性もあります)
補足
ただし、Cloudflareの「Rocket Loader」は別です。Rocket Loaderは、外部スクリプトをCloudflare経由で取得するため、「リクエスト元の訪問者IPアドレス」を外部サーバー(GoogleAdSense)に渡している保証はありません。