wordpress

Googleのads.txtの警告を消す対応方法

Google AdSenseの管理画面にads.txtの警告メッセージが表示され、自分のところに来た時の対応です。

「ads.txt ファイルが含まれていないサイトがあります。収益に重大な影響が出ないよう、この問題を今すぐ修正してください。」

ルートディレクトリに管理画面で生成したads.txtファイルを置けば良いだけなので、ドメイン直下ads.txtに置いて1ヶ月程放置していたのですが、しばらくぶりに管理画面を開いたらまだ警告が出続けていたので要検討。

自分はwordpressをサブディレクトリにインストールしていますが、当時はサブドメインやサブディレクトリを認められていなかったため、ドメイン直で申請していました。

つまりドメイン直下は厳密には.htaccessでリダイレクトをかけているのを忘れていたため、ドメイン直下に配置してもadsファイルが見れないのです。

よく考えればファイルなので

https://○○○.com/ads.txt

のようにすればブラウザからも確認出来ます。

ということでこのファイルも.htaccessのリダイレクトをかけるように対応する事でGoogleのクローラー(bot)が読み込めるようになりました。

Googleのbotからのアクセスのみをリダイレクトするという制限をしたい場合、UA(ユーザーエージェント)で判定している上3行のコメントアウト(#)を外せば良いです。

# 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でファイル制限を加えれば良いです。

<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 ファイルの設置は必須ではないとのことです。

とはいえ上手く設置できていない状態が続くとよろしくないので広告自体の掲載が止まる可能性は否定できません。

-wordpress