Skip to content

feat: AdMob向けのapp-ads.txtをFirebase Hostingで配信する - #329

Merged
stotic-dev merged 4 commits into
mainfrom
feat/ad-setting
Sep 29, 2026
Merged

stotic-dev merged 4 commits into
mainfrom
feat/ad-setting

Conversation

@stotic-dev

Copy link
Copy Markdown
Owner

経緯

close #325

AdMobの広告在庫を「認証済み」として扱ってもらうには、IAB Tech Labの app-ads.txt をアプリストア掲載情報に記載したデベロッパーのウェブサイトのドメインのルート直下に置く必要がある。未設置のままだと認証されていない在庫と見なされ、入札に参加しないバイヤーが出て広告収益が目減りする。

調べたところ、設置に必要な前提が2つとも欠けていた。

  • homeauが公開しているWebは GitHub Pages(https://stotic-dev.github.io/homete_iOS/)と Firebase Hosting の2つあるが、どちらにも app-ads.txt がない
  • クローラーがドメインを特定するために見る App Store のマーケティングリンク(fastlane/metadata/ja/marketing_url.txt)が空

実装内容

配信先に Firebase Hosting を選んだ理由

比較検討の経緯は ADR-0028 に記録した。要点は以下。

  • GitHub Pages は使えない。既存サイトはプロジェクトサイトなのでサブディレクトリ配下にしか置けず、ルート直下という要件を満たせない。github.io は Public Suffix List に載っているためルートは stotic-dev.github.io になり、app-ads.txt を置くには別途ユーザーサイトのリポジトリを作る必要があって、このリポジトリの外に管理対象が増える
  • Firebase Hosting はそのまま要件を満たす。web.app も Public Suffix なので homete-ios-dev.web.app 自体がルートドメイン扱いになり、/app-ads.txt で要件を満たす。すでに firebase/hosting/ でAASAと招待リンクの着地ページを配信していて、deploy-hosting.yml のデプロイ導線も揃っているため追加で運用するものが増えない
  • 独自ドメインは見送った。マーケティングリンクとしての見栄えは最も良いが、広告認証のためだけにドメイン取得費用とDNSの管理を増やすのは重い

Hosting のルートに紹介ページを新設した理由

マーケティングリンクは App Store の製品ページで「デベロッパーのウェブサイト」としてユーザーに見えるリンクになる。Hosting のルート / はこれまで /invite/** と /.well-known/ しか無くて404だったため、そのまま向けるとユーザーがエラーページに着地してしまう。

/ を GitHub Pages にリダイレクトする案(firebase.json に1行足すだけ)も検討したが、クローラーがデベロッパーサイトのリダイレクト先ドメインを見に行った場合に app-ads.txt を見つけられなくなるリスクがあるため、実体のあるページを置く方を選んだ。デザイントークンは招待ページ(invite/index.html)と揃えている。

app-ads.txt をコミットする理由

AdMobのアプリIDや広告ユニットIDは Secret.xcconfig としてgitignoreしているが、app-ads.txt は第三者に公開して読ませることが目的のファイルなので同じ扱いにはしない。リポジトリに入れて変更をPRのレビュー対象にする。

内容は標準の DIRECT 1行のみ(メディエーションを使っていないため)。

確認内容

コード変更なし(Hostingの静的ファイル・App Store Connectのメタデータ・ドキュメントのみ)のため、ビルド・ユニットテストは実行していない。

  • STGへHostingがデプロイされた後、curl -i https://homete-ios-dev-e3ef7.web.app/app-ads.txt が 200 / Content-Type: text/plain を返し、google.com, pub-..., DIRECT, f08c47fec0942fa0 が入っていること
  • https://homete-ios-dev-e3ef7.web.app/ が紹介ページを表示し、利用規約・プライバシーポリシー・App Storeへのリンクが正しく開くこと(ライト/ダーク両方)
  • 既存の招待リンク(/invite/<token>)とAASAの配信が、ルートへの index.html 追加で壊れていないこと

マージ後に必要な手動作業

手順は doc/app_ads_txt.md にまとめた。どれかを忘れるとクローラーに届かない。

  • deploy-hosting.yml を workflow_dispatch / environment=prod で実行する(STGはmainマージで自動)
  • sync-metadata.yml を workflow_dispatch で対象バージョンを指定して実行し、マーケティングリンクをApp Store Connectへ同期する(反映に最大24時間)
  • AdMobコンソールの [アプリ]→[app-ads.txt] で「アップデートを確認」をリクエストする(クロールと検証に最大24時間)

🤖 Generated with Claude Code

stotic-dev and others added 4 commits September 30, 2026 00:48
App Storeのマーケティングリンク(デベロッパーのウェブサイト)をHostingの
ルートに向けるため、これまで404だった `/` に紹介ページを置く。
app-ads.txtのクローラーはこのURLのドメインを起点にファイルを探す。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
app-ads.txtのクローラーはApp Store掲載情報のマーケティングURLから
デベロッパーのウェブサイトのドメインを特定するため、空のままだと
app-ads.txtを見つけられない。本番Hostingのルートを指定する。

反映にはsync-metadataワークフローの手動実行が必要。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
配信先としてFirebase Hosting・GitHub Pages・独自ドメインを比較した経緯を
ADR-0028に、設置と更新の手順をdoc/app_ads_txt.mdに残す。
本番反映にHostingとメタデータ同期の両方の手動実行が必要な点を明記する。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
未設置だとAdMobの広告在庫が認証されていないものとして扱われ、入札に
参加しないバイヤーが出る。クローラーはマーケティングリンクのドメインの
ルート直下しか見ないため、Hostingのpublic直下に置く。

app-ads.txtは公開前提のファイルなのでxcconfigのようなgitignore扱いには
せず、変更をレビューできるようリポジトリにコミットする。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-29T16:06:26.763310Z 906acd9 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@stotic-dev
stotic-dev merged commit 4c3e821 into main Sep 29, 2026
2 checks passed
@stotic-dev
stotic-dev deleted the feat/ad-setting branch September 29, 2026 16:08
@github-actions github-actions Bot mentioned this pull request Sep 30, 2026
2 of 4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

広告配信のためにアプリの app-ads.txt ファイルを設定する

1 participant