
かれこれ2ヶ月くらい前からads.txtの警告メッセージがGoogle AdSenseの管理画面に表示され、ついに自分のところにも来たかーと思い対応する事になりました。
「ads.txt ファイルが含まれていないサイトがあります。収益に重大な影響が出ないよう、この問題を今すぐ修正してください。」
ルートディレクトリに管理画面で生成したads.txtファイルを置けば良いだけのようだったので、ドメイン直下に置いて1ヶ月程放置していたのですが、しばらくぶりに管理画面を開いたらまだ警告が出続けていたので真面目に対応する事にしました。
自分はwordpressをサブディレクトリにインストールしていますが、当時はサブドメインやサブディレクトリを認められていなかったため、ドメイン直で申請していました。
つまりドメイン直下は厳密には.htaccessでリダイレクトをかけているのを忘れていたため、ドメイン直下に配置してもadsファイルが見れないのです。
よく考えればファイルなので
https://○○○.com/ads.txt
のようにすればブラウザからも確認出来ます。
ということでこのファイルも.htaccessのリダイレクトをかけるように対応する事でGoogleのクローラー(bot)が読み込めるようになりました。
Googleのbotからのアクセスのみをリダイレクトするという制限をしたい場合、UA(ユーザーエージェント)で判定している上3行のコメントアウト(#)を外せば良いです。
1 2 3 4 5 |
# RewriteCond %{HTTP_USER_AGENT} AdsBot-Google [NC,OR] # RewriteCond %{HTTP_USER_AGENT} Googlebot [NC,OR] # RewriteCond %{HTTP_USER_AGENT} Mediapartners-Google [NC] RewriteCond %{REQUEST_URI} /ads.txt RewriteRule ^(.*)$ /blog/ads.txt [L] |
Googlebotのみads.txtにアクセス許可をしたいのであれば、サブディレクトリの.htaccessでファイル制限を加えれば良いです。
1 2 3 4 5 6 7 8 9 |
<Files ~ "^ads\.txt$"> Order deny,allow deny from all SetEnvIfNoCase User-Agent "AdsBot-Google" ok_agent SetEnvIfNoCase User-Agent "Googlebot" ok_agent SetEnvIfNoCase User-Agent "Mediapartners-Google" ok_agent # 大文字小文字を区別するならSetEnvIfでも可 allow from env=ok_agent </Files> |
GoogleのbotのUser-agentを確認したい場合、下記のページで公式が一覧にしています。
https://support.google.com/webmasters/answer/1061943
サブディレクトリ対応するの地味にめんどくさいですが、これで無事管理画面からads.txtの警告が消えました。
サブディレクトリ運用している人がいれば参考程度にはなると思います。
ads.txtとは
散々いろんな所でads.txtについて説明されているのでわざわざ解説するような内容ではありませんが、一応説明を書いておきます。
web広告の透明性を高め、広告枠を偽装して不正なインプレッションを減らすための仕組みであり広告主を守るために導入されたものです。
ちなみに2019年現在の現時点ではGoogle AdSenseではads.txt ファイルの設置は必須ではないとのことです。
とはいえ上手く設置できていない状態が続くとよろしくないので広告自体の掲載が止まる可能性は否定できません。