monoist.work

デジタルクリエイターらしいです…。

はてなブログでのGoogle AdSenseに限定したads.txtに言えること

このドメインは、執筆当時はてなブログだけで運営していましたが、随分と前からGoogle AdSenseで「ads.txtの問題点を修正してください」と言われたまま放置してきました。今更ながらGoogle AdSenseの収益が無視できないくらいに大きくなったので、はてなブログでどうやったらads.txtを置けるのかやってみた記録です。

Google AdSenseにおけるads.txtとは何であるのか

ads.txtが最初にリリースされたのは2017年のようです。

iabtechlab.com

ads.txtの仕様書に2017年にFirst Versionがリリースされたと書いてあるのでこういう書き方になりますが、そもそも、ads.txtがiab TECH LABの主導ですので仕様書を見るしかありません。仕様書の「Authers」にGoogleが名前を連ねているので、積極的に賛同していることはわかります。

Authors:
Neal Richter, Chief Scientist, SpotX, and IAB Tech Lab Board Chairperson George Levitte, Product Manager, Google

引用:ads.txt Specification

 

iab TECH LABが推進している仕様が便利かつ有効であった(もしくは有効である)ということで、これから先もGoogleが採用したままであるのかはわかりません。

 

2021年の3月に現在のバージョン1.0.3がリリースされていて、変更点はこのようになっています。

Changes

引用:ads.txt Specification

はてなブログにおけるads.txtとは何であるのか

ご存知のとおり、はてなブログにはads.txtを設置する機能がありません。

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

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

引用:はてなヘルプ

 

なぜ設置できないのか……と不思議に思ってきましたが、続く文章にはこのように書かれています。

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

引用:はてなヘルプ

 

はてなブログで、独自ドメインを運用する限り、間違ったads.txtの設置は出来ないという意味でもあると思います。

 

2017年当時に間違ってads.txtを設置してしまったブログサービスがあるようです。

2017年10月に大手のブログシステム提供会社が誤ってads.txtを設定したため、そのブログシステムを使っているメディアに対しGoogle AdSenseから警告が出て話題になるなど、運用に関しても混乱が起きるという出来事がありました。

引用:webtan.impress.co.jp

 

この2018年の記事と、はてなブログの現在の見解をあわせて考えると、よくわかっていないads.txtを設置しない方が良いと言えそうです。わたしが調べた認識では、サブドメインで違う運営者が広告を運営していて、しかもGoogle AdSenseを使っていない場合に必要になってきます。

つまり、はてなブログでGoogle AdSenseだけを使うなら、Googleのタグで運営者が誰なのかわかるので必要なさそうとも言えるでしょう。

 

 

それでも、はてなブログにads.txtを設置してみたかった……

なんとかしてads.txtを自分のドメインに置くことはできないのか調べていましたが、この仕様であれば使えそうです。

The declarations must be accessible via HTTP and/or HTTPS from the website that the instructions are to be applied to under a standard relative path on the server host: "/ads.txt" and HTTP request header containing "Content-Type: text/plain". It may be advisable to additionally use "Content-Type: text/plain; charset=utf-8" to signal UTF8 support.

引用:ads.txt Specification

 

具体的にどう設置するのかという話になると、はてなブログ以外のサービスで設置するしかありません。わたしはテスト用に新しくドメインをひとつとって実験してみました。すると、webルートにads.txtを置くだけでいい。これは当たり前ですよね。

ads.txt

「安全ではありません」とURLのところに出ているのは、httpで接続しているからです。

 

あとはおそらく……はてなブログで独自ドメインを使っている場合って、ほとんど「お名前ドットコム」でドメインを取っていると思います。お名前ドットコムに「httpだけ」転送するDNS転送サービスがあるので、「http://ドメイン」を転送すれば良いはず……。

 

……と考えてしまい……httpだけ転送してみるという誘惑に勝てず実験しました。

 

実験結果としてはお名前ドットコムでの転送はやらない方が良いです。httpだけを転送しようとすると、お名前ドットコムではDNSのAレコードが追加されるようで、digで見てみるとこんな感じになります。

digの結果表示

 

お名前ドットコムでhttpの転送をしてしまうと、はてなブログ側で名前解決(もしくは証明書?)ができなくなって、ネイキッドドメインの設定がエラーとなります。すると、独自ドメインの利用が停止されて、はてなブログのサブドメインに強制的に変更されます。

結果、ネイキッドドメインのブログにはアクセスできなくなりました。

 

元に戻そうとしても、DNSのTTLが切れるまで、はてなブログで名前解決できなくなるのでかなりの時間アクセス不能になります……おとなしくads.txtを諦めるか、ネイキッドドメインごと移転する方法しかないと思われますね……。

結局、はてなブログとさくらのレンタルサーバでads.txtを設置

ここまでやってしまったらどうしてもads.txtを置いてみたくなり、さくらのレンタルサーバでサーバを借りました。

年額1,500円でもやもやが解決するなら安い……ネイキッドドメインのhttpだけ転送する方法は使えなかったわけですが、ネイキッドドメインのads.txtだけ転送しないhtaccessなら書けるのではないかと思うに至ったわけです。

 

具体的にはこのようにtxtファイルのアクセスだけ転送しないhtaccessを書きました。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !\.txt$
RewriteRule (.*) https://www.monoists.com/$1 [R=301,L]

 

DNSの設定としては、ネイキッドドメインのAレコードにはさくらのレンタルサーバのIPアドレス、wwwのCNAMEとして、はてなブログのドメインを指定しています。

DNSの設定

 

そしてさくらのレンタルサーバ側、ネイキッドドメインのドキュメントルートには、ads.txtとhtaccessだけ置いておきます。ネイキッドドメインに記事URLでアクセスしてきたトラフィックについては、301リダイレクトでwwwへ転送されます。

はてなブログではネイキッドドメインをブログとして使えなくなります。

 

結果として「要注意 - この問題を修正してください。」 という表示がなくなりました。

 

ads.txtを設置してからGoogle AdSenseで認識されるには2〜3日かかります。

新しくAdSenseに申請したドメインでも、まずAdSenseの申請が通ってから、それからads.txtの認識に2〜3日かかった後、要注意の表示が出なくなります。