Vai al contenuto
AppFoyer
Inizia

Guide app-ads.txt

Ospitare app-ads.txt quando non hai un sito web

Di cosa ha davvero bisogno il crawler, tre modi per dargli un host senza costruire un sito, le trappole dei redirect di ciascuno e come verificare che funzioni.

Non ti serve un sito web, solo un hostname che controlli e che serva /app-ads.txt come testo semplice con HTTP 200 e senza redirect. Inserisci quell'indirizzo nel campo del sito web dello sviluppatore della scheda dello store, la Marketing URL sull'App Store, e il crawler legge il file lì. AdMob indica Firebase Hosting come accettabile.

Fallo invece in pochi minuti

AppFoyer ospita le pagine di cui parla questa guida (informativa sulla privacy, termini, supporto, eliminazione dell'account e app-ads.txt) su un sottodominio dedicato, senza un tuo dominio o server. Un'app è gratis, e niente di ciò che uno store richiede è mai a pagamento.

Verificata il 12 ottobre 2026. Le policy degli store cambiano, a volte senza preavviso. Tutto ciò che segue rimanda alla documentazione ufficiale, ed è quella pagina, non questa, a fare fede. Se le due non concordano, ha ragione lo store. Questa guida è tradotta dall'inglese; le citazioni dalla documentazione degli store restano nell'originale inglese.

Non ti serve un sito web, solo un hostname che controlli e che serva /app-ads.txt come testo semplice con HTTP 200 e senza redirect. Inserisci quell’indirizzo nel campo del sito web dello sviluppatore della scheda dello store (la Marketing URL sull’App Store, il campo Website in Store listing contact details su Google Play) e il crawler legge il file lì.

AdMob lo dice chiaramente: “If you don’t have a suitable website that allows the uploading of an app-ads.txt file at the root level, you can use Firebase Hosting to host your app-ads.txt file.” (Se non hai un sito web adatto che consenta di caricare un file app-ads.txt al livello radice, puoi usare Firebase Hosting per ospitare il tuo file app-ads.txt.) L’hosting di piattaforma è la risposta prevista, non un ripiego.

Di cosa ha davvero bisogno il crawler

Il crawler non cerca la tua app per nome del pacchetto. Prende il sito web dello sviluppatore dalla scheda dello store, ne conserva l’hostname e recupera /app-ads.txt alla sua radice. Le regole di AdMob:

  • La radice, non un percorso. Una scheda che punta a example.com/myapp viene controllata su example.com/app-ads.txt.
  • Un livello di sottodominio. Il crawler “probe[s] up to one subdomain level from the developer website” (esplora fino a un livello di sottodominio a partire dal sito web dello sviluppatore). www. e m. contano come il dominio stesso.
  • Servito in modo semplice. 200 OK, Content-Type: text/plain, nessun redirect, nessun login, niente in robots.txt che lo blocchi.

Quindi il compito è: un indirizzo che non cambierà, che serve un solo file di testo, correttamente, per anni. Le tre opzioni qui sotto lo fanno tutte; cambia quanta manutenzione richiedono.

Opzione 1: Firebase Hosting

Quella indicata da AdMob. Un progetto Firebase gratuito ti dà un hostname come your-project.web.app.

  1. Crea un progetto nella console di Firebase e installa la Firebase CLI.
  2. In una cartella vuota, esegui firebase init hosting e mantieni la directory predefinita public.
  3. Metti il tuo app-ads.txt in public/, accanto all’index.html generato.
  4. Esegui firebase deploy --only hosting.
  5. Imposta https://your-project.web.app come sito web dello sviluppatore in ogni scheda dello store.

La trappola: se in seguito colleghi un dominio personalizzato e scegli di reindirizzare l’indirizzo web.app verso di esso, l’indirizzo nella tua scheda ora risponde con un redirect. O mantieni la scheda sull’indirizzo che serve il file direttamente, oppure aggiorni la scheda con il nuovo dominio.

Opzione 2: GitHub Pages o un altro host statico

Qualsiasi host statico funziona se il file finisce alla radice dell’hostname che dichiari.

Su GitHub Pages quel dettaglio conta: un sito di progetto si trova su username.github.io/repo/, ma il crawler controlla solo username.github.io/app-ads.txt. Il file deve stare nel sito utente, cioè il repository chiamato username.github.io, oppure il progetto deve avere un proprio dominio personalizzato.

Vale la stessa trappola dei redirect: una volta configurato un dominio personalizzato, GitHub Pages reindirizza l’indirizzo github.io verso di esso. Dichiara l’indirizzo che serve il file senza passaggi intermedi.

Opzione 3: una pagina di conformità ospitata

Se ti servono anche una privacy policy, una pagina di supporto o un URL per l’eliminazione dell’account (e un’app con annunci ha quasi sempre bisogno della prima), lo stesso host può servirle tutte. È ciò che fa AppFoyer: ogni app riceve un proprio sottodominio che serve app-ads.txt come testo semplice senza redirect, accanto alle pagine richieste dagli store. AdMob segnala “app-ads.txt file found and verified” per app su entrambi gli store il cui sito web dello sviluppatore è un indirizzo AppFoyer (verificato a ottobre 2026). Non abbiamo ancora risultati di scansione nostri da altre reti pubblicitarie.

Controllalo prima del crawler

curl -i https://your-host.example/app-ads.txt

Ti servono HTTP/2 200 (oppure HTTP/1.1 200 OK), content-type: text/plain, nessun header location: e le tue righe nel corpo. Un 301 o un 302 qui è l’errore invisibile più comune.

Poi aspetta. AdMob dice “it can take up to 24 hours for AdMob to crawl and verify your app-ads.txt files” (possono essere necessarie fino a 24 ore perché AdMob scansioni e verifichi i tuoi file app-ads.txt). Lo stato si trova in Apps → View all apps → app-ads.txt; se dopo un giorno dice ancora not found, la guida sul file non trovato ripercorre le cause in ordine.

Le fonti ufficiali