Webエンジニアのメモ帳

技術的な話を中心に書いています。

Google Adsenseのads.txtを配置する方法 (Webアプリケーションの場合)

概要

Google Adsenseの審査に合格した場合、ads.txtに関する注意書きが表示されます。 f:id:iberia9lavapies:20210227104622p:plain

「今すぐ修正」をクリックすると、今度は以下のような注意書きが表示されます。 f:id:iberia9lavapies:20210227104552p:plain

ads.txtをルートレベルのドメインに配置することを求められるのですが、それってどうするの?と思ったので、メモです。

Webアプリケーションの場合

自分が審査に合格したサイトはブログなどではなく、Java(Spring Boot)を使って開発していたWebアプリケーションでした。

その場合、「ルートレベルのドメインに配置」というのは、{ドメイン名}/ads.txtにアクセスした場合にads.txtの内容が表示される、ということと同一です。

Spring Bootの場合

Spring Bootの場合であれば、最も簡単な実装は、以下のようにコントローラー層にメソッドを追加する方法です。

@Controller
@RequestMapping("/")
public class Controller {
  @GetMapping("/ads.txt")
  @ResponseBody
  public ResponseEntity<String> getAdsTxt() {
    String ads = "{ここにads.txtの内容を記載}";
    HttpHeaders headers = new HttpHeaders();
    headers.add("Content-Type", "application/json");
    HttpStatus status = HttpStatus.OK;
    return new ResponseEntity<>(ads, headers, status);
  }
}

コントローラー層にads.txtの内容をベタ書きするのは綺麗なコードではないと思うので、実際には、ファイルから読み込んで表示するなどの実装にした方が良いと思います。

また、@Controllerアノテーションを付与したコントローラー層のメソッドは、通常はビュー(html)を返しますので、文字列をそのまま返したい場合には@ResponseBodyアノテーションが必要です。

あるいは、@Controllerアノテーションの代わりに@RestControllerアノテーションを使っても良いでしょう。