Perché AdMob dice che il tuo app-ads.txt non è stato trovato
Come i crawler delle reti pubblicitarie trovano il file, le sei cose che di solito li bloccano e come distinguere un problema reale da una scansione non ancora eseguita.
Un risultato "non trovato" è quasi sempre meccanico: nessun sito web dello sviluppatore nella scheda dello store, un URL che punta dove il file non c'è, un redirect, il content type sbagliato, una riga malformata o una scansione non ancora eseguita: AdMob prevede 24 ore. I file sui sottodomini AppFoyer sono verificati da AdMob.
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.
Quando una rete segnala app-ads.txt come non trovato, si tratta quasi sempre di una di sei cause
meccaniche: nessun sito web dello sviluppatore nella scheda dello store, un URL del sito che punta
dove il file non c’è, un redirect davanti al file, il content type sbagliato, una riga malformata o
una scansione che semplicemente non è ancora stata eseguita. Nessuna riguarda la tua app, il tuo
account o le tue unità pubblicitarie.
app-ads.txt è uno standard IAB che permette a una rete pubblicitaria di confermare che chi vende
l’inventario della tua app è autorizzato a farlo. La rete lo trova tramite l’URL del sito web
riportato nella scheda dello store: ecco perché tutte le cause qui sopra riguardano quell’URL e non
l’app.
Come il crawler trova il file
La catena ha tre anelli, e la rottura di uno qualsiasi produce lo stesso messaggio:
- La rete legge l’URL del sito web dello sviluppatore dalla scheda dello store.
- Recupera
/app-ads.txtalla radice di quel dominio. - Cerca una riga che nomini la rete e il tuo ID publisher.
Quindi il file non viene trovato tramite la tua app, il nome del pacchetto o il tuo account AdMob. Viene trovato tramite l’URL del sito web riportato nella scheda dello store. Se quello è sbagliato, nient’altro conta.
Le sei cause abituali
Nessun URL del sito web nella scheda. La più comune. Se la scheda dello store non ha un sito web dello sviluppatore, il crawler non ha un punto da cui partire. Sull’App Store quel campo è la Marketing URL facoltativa, non la Support URL obbligatoria: vedi app-ads.txt per le app iOS.
L’URL punta a un posto dove il file non c’è. La scheda dice example.com ma il file è su
www.example.com, oppure su un percorso di pagina invece che alla radice del dominio.
Un redirect. La specifica prevede che il file sia servito direttamente. Una catena di redirect,
anche http → https o dominio principale → www, è una causa frequente di errore. Servilo con 200,
all’indirizzo indicato nella scheda.
Il content type sbagliato. Deve essere servito come testo semplice. Un file servito come
text/html, o una piattaforma di hosting che lo avvolge in una pagina, non verrà analizzato.
Un errore di battitura nella riga stessa. Il formato è rigido,
domain, publisher id, relationship, certification id, e una virgola mancante o uno spazio di
troppo rompono la riga.
La scansione semplicemente non è ancora stata eseguita. Le reti ripetono la scansione secondo i propri tempi, che di solito si misurano in giorni più che in minuti. Un file caricato un’ora fa che risulta mancante di solito è solo in anticipo.
Come controllarlo da solo in dieci secondi
curl -i https://your-domain.example/app-ads.txt
Ti servono 200 OK, Content-Type: text/plain, nessun header Location: e le tue righe nel corpo.
Se curl è soddisfatto e la rete ancora no, il problema è a monte: l’URL nella scheda o i tempi di
scansione.
Una nota sui sottodomini
La specifica fa riferimento alla radice del dominio dichiarato nella scheda dello store, e un
sottodominio ha la propria radice. Servire il file da yourapp.example.page/app-ads.txt è quindi
conforme alla specifica quando la scheda dichiara esattamente quell’indirizzo.
AdMob documenta la regola su cui si basa: il suo 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), e indica l’hosting di piattaforma come Firebase Hosting come un posto accettabile per il file.
AdMob verifica i file sui sottodomini AppFoyer. A ottobre 2026 AdMob ha segnalato “app-ads.txt file found and verified” per app su entrambi gli store il cui sito web dello sviluppatore è un indirizzo AppFoyer. Una scansione precedente, del 23 settembre 2026, aveva segnalato una di quelle stesse app come non trovata; ora passa senza che nulla sia cambiato da parte nostra. Se AdMob dice “not found” per il tuo indirizzo AppFoyer, ripercorri le cause qui sopra e concedi alla scansione le sue 24 ore. Non abbiamo ancora risultati di scansione nostri da altre reti pubblicitarie.
Cosa fa AppFoyer
Serviamo il file come testo semplice, senza redirect e con gli header richiesti dalla specifica, ti diamo preset per le reti più comuni e convalidiamo ogni riga mentre la scrivi. Non promettiamo che una determinata rete lo accetterà: vedi il paragrafo qui sopra.
Le fonti ufficiali
- Set up app-ads.txt — Guida di AdMob
- app-ads.txt / ads.txt specification — IAB Tech Lab