導入したつもりなのに広告が表示されないよ(><)と、自分の周囲ではなにかとトラブルをよく聞く、携帯向けのAdsenseの話。
とあるサイトにて、モバイル向けアドセンスを導入したところ、広告はちゃんと表示されるようになったが、Adsenseの管理画面にログインしてみてみると、表示回数やクリック回数が何も表示されず、「モバイルコンテンツ向けAdsense」の欄が未導入状態のままの表示になる、という現象がありました。アドセンス画面にて発行された貼り付けコードをそのまま使用しているのでなにかの取り違えでもないはず。
似たような症状を検索してもなかなかhitしないので結構特殊ケースなのかもしれないですが、解決策を見つけたので書いておきます。
実は今回のサイトは、前にリバースプロキシを立てた複数サーバ構成で運用しているものでした。wwwサーバ自身は直接グローバルIPを持たずに、プロキシサーバから転送されてアクセスをうける、という構成。プロキシサーバを利用しているときは、アクセス元のIPアドレスなどが通常の方法では取得できなくなるという問題がありますが、まさにそれが今回の原因でした。
以下はphpでの例ですが、アドセンス管理画面にて発行されるコードのなかには、このような行があります。
$GLOBALS['google']['host']=@$_SERVER['HTTP_HOST'];
$GLOBALS['google']['ip']=@$_SERVER['REMOTE_ADDR'];
・・・
$GLOBALS['google']['url']=@$_SERVER['HTTP_HOST'] . @$_SERVER['REQUEST_URI'];
ここを、プロキシ構成の場合はこのように書き直します。
$GLOBALS['google']['host']=@$_SERVER['HTTP_X_FORWARDED_HOST'];
$GLOBALS['google']['ip']=@$_SERVER['HTTP_X_FORWARDED_FOR'];
・・・
$GLOBALS['google']['url']=@$_SERVER['HTTP_X_FORWARDED_HOST'] . @$_SERVER['REQUEST_URI'];
こうすると、IPアドレスなどを正しく取得できるようになって、広告の表示回数やクリック数もただしく集計されるようになりました。
こういうところも着実に設定をして、マネタイズを着実に積み重ねていきましょう。