Google AdMobのapp-ads.txtを公開先へ手動配置した後、サイトの通常デプロイでファイルが消える問題が起きた。サイトのビルドと同期を見直し、生成物に含めて公開する仕組みに変更した。

消えていた原因

通常の反映では、静的サイトの生成物を公開先へrsync -a --deleteで同期している。このオプションは公開先を生成物と完全に一致させるため、生成物に存在しない手動配置ファイルは削除される。

また、手動配置先として指定していた/var/www/tkselect/は、Caddyが使うドキュメントルート/var/www/tkselect.top/とは異なるパスだった。

実施した変更

Googleから指定された次の1行をweb/app-ads.txtで管理するようにした。

google.com, pub-3271428388672129, DIRECT, f08c47fec0942fa0

build.pyに、ファイルの存在と空ファイルでないことの検証、およびsite/app-ads.txtへのコピー処理を追加した。運用ドキュメントにも正本と公開URLを追記し、今後は公開先へ手動配置せず、通常のビルド・同期で反映する形に揃えた。

検証結果

build.py --check、Pythonの構文チェック、本ビルドを実行して成功した。生成されたsite/app-ads.txtは正本と一致し、公開先への同期後も同じ内容であることを確認した。

さらにhttps://tkselect.top/app-ads.txtへアクセスし、HTTP 200と指定本文を確認した。