0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AdMobの「アプリの確認」が失敗した理由はapp-ads.txtの404だった — ads.txtとは別ファイル

0
Last updated at Posted at 2026-08-30

はじめに

さんすうおじさんをAdMobのストア情報に紐づけると、こう返ってきた。

アプリを確認できませんでした。app-ads.txt ファイルが設定されている可能性がありますが、お客様の詳細情報がAdMobアカウントの情報と一致しません。

「設定されている可能性がありますが」で始まる、歯切れの悪い文面だった。ファイルの中身が違うのか、それとも別の何かか。AIは文面を読んで判断しようとして、遠回りをした。


同じ文言が、ファイルが無いときにも出る

このエラー文は定型文だった。app-ads.txtが存在しないときも、存在して中身が合っているときも、同じ文言が出る。 文面からは何も判断できない。

さらに紛らわしいのが、似た名前の別ファイルの存在だった。

ファイル 用途
ads.txt ウェブサイトの広告(AdSense)
app-ads.txt アプリの広告(AdMob)

kuroto-blogにはads.txtだけがあり、app-ads.txtは無かった。名前が似ているだけの別物を、「設置済み」と思い込んでいた。

文面を読むのはやめ、直接測ることにした。

curl -sI https://kuroto-blog.pages.dev/app-ads.txt

404。 ここで原因の半分が確定した。


ファイルを置いても、まだ通らなかった

public/app-ads.txtを置いてpushし、Cloudflare Pagesのデプロイを確認する。

curl -sI https://kuroto-blog.pages.dev/app-ads.txt
# HTTP/2 200
# content-type: text/plain

200・text/plain。ファイル側は揃った。だが、AdMobの「アプリを確認できませんでした」は消えなかった。

見に行っているのは、別のURLだった

AdMobが照合しているのは、app-ads.txtの置き場所そのものではなく、App Store の「デベロッパーサイト」=マーケティングURLのドメインだった。ファイルが200で返っていても、参照元のURLが空なら照合先が無く、永久に一致しない。

Appleの公開APIで確認できる。

curl -s "https://itunes.apple.com/lookup?id=<ASC App ID>&country=jp" \
  | python3 -c "import json,sys; print(json.load(sys.stdin)['results'][0].get('sellerUrl','(なし)'))"

さんすうおじさんはsellerUrlが空だった。マーケティングURLを、初回提出のときに入れ忘れていた。

直そうとしても、直せない期間があった

気づいて直そうとしても、できなかった。App Store Connectでは、ステータスが**「配信準備完了」の間、メタデータがロックされて編集できない**。

8月17日にapp-ads.txtの404を確認してから、直せる状態になるまで4日かかった。次のバージョン1.0.2を審査に出すタイミングまで待つしかなく、8月21日のリリースでようやくマーケティングURLが入った。

同日中に測り直すと、sellerUrlは反映済み、app-ads.txtも200・text/plain・内容一致。条件は全部揃っていた。そして——

URLが製品ページに出たその日のうちに、確認が通った。 待っていたのはGoogleのクローラーの取得タイミングだけで、連打しても変わらないものだった。


教訓

「app-ads.txtファイルが設定されている可能性がありますが」という文面は、原因の在り処を教えてくれなかった。実際に効いていたのは、ファイルとは別の場所——初回提出時に埋めるはずだった1個のフィールドだ。

定型のエラー文は、文面で判断せず、実測できる部分から一つずつ潰す方が早い。「ファイルは200か」「参照先URLは入っているか」の2点さえ先に測っていれば、4日の足止めは要らなかった。

  • 確認が通った次は、AdMob側の広告審査(通常2〜3日)が待つ。この間、操作できるものは無い。
  • 完了画面がCMP(同意管理プラットフォーム)の設定を促すが、これはEEA・英国・スイス向けの要件で、日本のみの配信なら不要。
  • app-ads.txtが無くても広告配信自体は止まらない。設置は広告詐欺対策の任意の仕組みで、単価の高い広告主が入りやすくなるだけだ。

ファイルの中身を何度も見直していた。
見るべきは、ファイルの外側に置き忘れた1個のURLだった。


記事に登場したアプリ:

📝 この記事は noteZenn にも投稿しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?