app-ads.txt VerificationEntry point:
AGENTS.md
How to keep Google AdMob app verification working for Closed Captioner. Do not assume “file exists on the marketing site” is enough.
Repo copies (same content):
app-ads.txt (repo root — also published via project GitHub Pages)docs/app-ads.txtgoogle.com, pub-7546535789763376, DIRECT, f08c47fec0942fa0
Publisher ID: pub-7546535789763376 (matches AdConfig / GADApplicationIdentifier).
AdMob crawls:
https://<domain-from-App-Store-Marketing-URL>/app-ads.txt
It does not crawl a subdirectory, even if that subdirectory is the marketing page.
| URL | Status |
|---|---|
https://kbibireddy.github.io/closed-captioner/app-ads.txt |
Reachable, but ignored by AdMob crawler |
https://kbibireddy.github.io/app-ads.txt |
Required — domain root |
Project GitHub Pages (username.github.io/repo/) cannot satisfy AdMob by itself. Publish root file from the user Pages site:
kbibireddy/kbibireddy.github.ioWhen changing the AdMob publisher line, update both this repo’s app-ads.txt / docs/app-ads.txt and kbibireddy.github.io’s root app-ads.txt.
AdMob resolves the crawl domain from the Marketing URL on the live App Store listing (not Support URL, not a pending version only).
| Field | Role for AdMob |
|---|---|
| Marketing URL | Domain AdMob uses for app-ads.txt |
| Support URL | Not used for app-ads.txt (ours is github.com/... — cannot host /app-ads.txt) |
Checklist:
kbibireddy.github.io (e.g. https://kbibireddy.github.io/closed-captioner/).app-ads.txt is correct.Verify the store side after release:
curl -s "https://itunes.apple.com/lookup?id=6754772689" | python3 -c \
'import sys,json; r=json.load(sys.stdin)["results"][0]; print(r.get("sellerUrl"))'
# Expect a URL under kbibireddy.github.io (sellerUrl maps to Marketing URL)
# Must be HTTP 200 + the google.com line
curl -sI "https://kbibireddy.github.io/app-ads.txt"
curl -s "https://kbibireddy.github.io/app-ads.txt"
# Nice to have (project Pages) — not sufficient alone
curl -sI "https://kbibireddy.github.io/closed-captioner/app-ads.txt"
If the binary includes AdMob, App Store Connect Age Ratings → Advertising must be Yes. Mismatch → Guideline 2.3.6 Accurate Metadata rejection. See App Information → Age Ratings after any ads change.
app-ads.txt under closed-captioner Pages.https://kbibireddy.github.io/app-ads.txt returns 200.kbibireddy.github.io before declaring verification unblocked.