あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、取り上げたりしています。

はてなブログでGoogle Adsenseのads.txtを設定して警告を表示しなくする方法

ある日、Google Adsenseの管理画面にログインしたら、以下のような警告が表示されるようになりました。

要注意 - 収益に重大な影響が出ないよう、ads.txt ファイルの問題を修正してください。 [今すぐ修正][ヘルプ]

はてなブログで Adsense の広告を貼り付けていたのですが、ads.txt なるものを設定する必要があるそうです。

この記事では、はてなブログの対応状況と、ads.txt の警告を表示させないための設定方法をご紹介します。

ads.txtとはそもそもなにか

ads.txt を設定すると、認定デジタル販売者(Authorized Digital Sellers)の宣言とやらをすることになり、自分のサイトで偽の広告枠を広告主に提供されることを防ぐことができるとのことです。

これだとなにやらよく分かりませんが、要は ads.txt で正当な広告を配信できるようになり収益が向上するということのようですね。

support.google.com

はてなブログの対応状況

では、はてなブログの対応状況はどうなっているかQ&Aで確認してみましょう。

Q . はてなブログで ads.txt を配信する方法はありますか

A .「要注意 - ads.txt ファイルが含まれていないサイトがあります。収益に重大な影響が出ないよう、この問題を今すぐ修正してください。」 というエラーが表示されるようになったというお問い合わせをいただいております。

現在のところ、はてなが提供しているドメイン ( *.hatenablog.com 等) か独自ドメインを設定しているブログかに関わらず、ads.txt を配信する機能は提供していません。

多くの方が利用されているGoogle AdSense ads.txtに関するヘルプにも記載してあります通り、ルートドメインにファイルを設置することができない場合はads.txtを使用する必要はありません。また、現時点のAdSenseの仕様やその他の広告業界動向を鑑みてもads.txtがない場合に広告が配信されなくなるケースは極めて限定的と判断しています。

はてなブログが提供するドメインのルートドメインでも現在のところ ads.txt を設置する予定はありません。これはユーザー様のGoogle AdSenseの広告配信に影響をださないための措置です。

また、独自ドメイン設定をご利用の場合には、ご自身で zone apex (ルートドメイン) にサーバを用意していただき ads.txt を配信することで対応可能です。ただし、この方法についてははてなでサポートすることができません。何卒ご了承ください。

うん。長くてよく分からないですね。

要するに、はてなブログでは ads.txt の警告による影響はほぼないと考えていて、はてなブログが提供するドメインでの ads.txt の提供は考えていないそうです。独自ドメインなら対応する方法があるとのこと。

まぁ、対応する必要はないというのならいいのですが、気持ち悪い状況ではありますよね。

独自ドメインなら ads.txt を設定できるので、その方法を次の項目でご紹介します。

独自ドメインでads.txtを設定する方法

このブログは幸いにも独自ドメインで運用しているので、外部サーバーでルートドメインに ads.txt を設定してみました。

反映には4日ほどかかりましたが、Adsense の管理画面から警告が表示されなくなりました。

今回は、ドメイン管理にお名前.com、外部サーバーにさくらVPSのCentOS 7 + Apacheでの方法のご紹介になります。

なお、Apache はインストール済みで、SSL/TLS 証明書は Let's Encrypt を利用します。

外部サーバーはレンタルサーバーではなくVPSの方がよいかとと思います。レンタルサーバーにもよるとは思いますが、私が調べたレンタルサーバーでは、ルートドメインを扱うことができず、www.[ドメイン名] しか使うことができませんでした(条件があります)。

セキュリティを考えるならVPSよりレンタルサーバーの方がよいのですが、使えないものは仕方がないのでVPSで行きたいと思います。VPSも安いところなら300円ちょっとで使えるところもあるようですし、毎晩、yum -y update && reboot を実行して常に最新環境を維持するようにすれば VPS でも問題ないですからね。

さて、まずルートドメインがなんなのかですが、このブログのドメインはwww.aruse.netでサブドメインとなります。このブログのルートドメインはwwwを除いたaruse.netになります。

ですので、ルートドメインに ads.txt を設定すると、このブログならhttps://aruse.net/ads.txtになります。

まずは、ads.txt をダウンロードしましょう。

要注意 - 収益に重大な影響が出ないよう、ads.txt ファイルの問題を修正してください。 [今すぐ修正][ヘルプ]

上記メッセージの[今すぐ修正]→[ダウンロード]で自分用の ads.txt をダウンロードすることができます。

ads.txt の中身は以下のようになっており、pub-0000000000000000 が自分のパブリッシャーIDになっています。

google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0

お名前.com でルートドメインに対してAレコードというものを追加します。

追加には、 [ネームサーバーの設定]→[DNS設定/転送設定]から、DNSレコードの設定画面を表示します。

f:id:fnyablog:20190822101040p:plain:w240

DNSレコードの設定画面で、以下の項目が最初から表示されているので、ホスト名はそのままで、VALUEにサーバーのIPアドレスを設定してレコードを登録します。

f:id:fnyablog:20190822101302p:plain:w480

設定が反映されるのはしばらく時間がかかります。私の時は10分程度でしたが最大72時間程度かかることもあるようです。

動作確認にはコマンドプロンプトで、以下のコマンドを実行します。

$ ping ドメイン名

私の場合なら、ping aruse.netですね。(正確にはドメイン名ではなくホスト名ですが)

それで自分が設定した IP アドレスが応答で返ってくれば、お名前.com での設定は完了です。

VPS の /var/www/htmlに ads.txt をアップロードします。

アップロードには、Windows なら WinSCP、MacならForkLift などのツールを使用します。

ads.txt のアップロードが済んだら、ssh で VPS にログインして、管理ユーザーに切り替えます。

$ su -  #管理ユーザー切り替え(パスワードが必要)

管理ユーザーに切り替えたら、Apache の設定をします。

vi エディタなりなにかしらのエディタで、下記ファイルを開きます。

# vi /etc/httpd/conf/httpd.conf

VirtualHost の設定を追加します。ここではServerNamearuse.netになっていますが、ご自身のドメイン名(ホスト名)に変更してください。

<VirtualHost *:80>
  DocumentRoot /var/www/html
  ServerName aruse.net
</VirtualHost>

設定が済んだら、Apache を再起動します。

# systemctl restart httpd

これで、http での設定が完了しました。ブラウザからhttp://ドメイン名/ads.txtでアクセスできると思います。

ここから、https で接続できるようにするため、Let's Encrypt という無償で利用できる SSL/TLS 証明証の設定を行います。

下記コマンドを実行して、epel リポジトリと certbot というLet's Encrypt のツールをインストールします。

# yum -y install epel-release  #epel リポジトリのインストール
# yum -y install certbot # Let's Encrypt のツールをインストール

インストールが済んだら、下記コマンドを実行します。

# certbot 

メッセージが英語ではありますが、あわてずに読めば簡単な内容なのでウィザードにしたがって設定を行います。

設定が済んだら、ブラウザからhttps://ドメイン名/ads.txtでアクセスできると思います。

あとは、Google のクローラーが ads.txt を拾ってくれるのを待つだけです。

数日かかるようですが。。

おわりに

はてなブログで ads.txt の設定を行う方法は、ちょっと敷居が高いなと思いました。

はてなではサポート外としているのも仕方ないですね。

ですが、ads.txt の警告が気になる方は設定しておいて損はないと思います。