orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

はてなブログPROでads.txtファイルの問題を修正した話

f:id:orangeitems:20190725132224j:plain

 

ads.txtファイルの問題

ブログ運営費のためにGoogleアドセンスを利用しているのですが、本日以下のエラーを検出しました。

 

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

 

本件については、はてな社が言及しています。

 

はてなブログ - お問い合わせ - はてな

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

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

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

(中略)

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

 

以上の通り、対応不要と判断されていますが、私は不安ですので対応してみました。

結果として、この通り表示できます。

http://orangeitems.com/ads.txt

https://orangeitems.com/ads.txt

 

ざっくりと私が実施した方法をまとめておきます。

 

ads.txtに対応する方法

下記の手順で実施しました。

 

・AWSでEC2を契約する。

・EC2上でWebサーバー(apache httpd) を構築する。

・EC2のセキュリティーグループで、80/TCP (HTTP) と、443/TCP (HTTPS)をANYでオープンする。

Let's encryptでサーバー証明書の設定を行う。自動更新もこの時点で設定。

・ads.txtをドキュメントルートに保管する。

・ついでにindex.htmlの空ファイルもドキュメントルートに保管する。

・Webサーバーを起動する(自動起動オン)。

・ドメインを管理しているDNSサーバーにて、EC2のグローバルIPアドレスを、orangeitems.com(ルートドメイン)のAレコードとして設定する。

 

以上で完了です。

  

注意点

・ads.txtのフォーマットについては、Googleのヘルプを確認してください。基本的にはテキスト一行を入れておくだけで問題ありません。

・私はAWSを借りましたが他のクラウドやVPSでも構わないです。

・ads.txtの配信については、Googleのヘルプを見ると、HTTPでもHTTPSでも配信できる必要があります。

・ads.txtはルートドメインに置く必要があります。ルートドメインはDNSサーバーにおいてはCNAMEレコードが設定できないのを忘れないでください。私ははじめにAWS S3の静的Webサイトホスティングでads.txtを配信しようとしたのですがこの制限のためにできないことがわかりました。固定のグローバルIPアドレスを持ったWEBサーバーにて、ads.txtを配信するようにしてください。そうしないと、Aレコードに登録できません。

※例外として、最近はAliasレコードと言う機能を実装して対応しているDNSサーバーもあります。以下が参考になります。

 

blog.redbox.ne.jp

大手AWSも従来までDNSサービス Route53にてApexドメインを利用しているユーザーは、AWSで提供しているALBやCloudFrontにCNAMEすることができませんでした。しかし、Route53はAliasレコードという機能を実装しCNAMEの制約を回避しています。

 

感想

複数のサイトを管理しているのですが、とりあえずはメインであるこのブログだけ対応してみました。

もっと手軽に設定できるとうれしいのですが・・。

また今回、AWSを個人で契約したのでその活用も今後考えていきたいと思います。