Crea APK gratis

Guadagnare

Integrazione AdMob

Configurazione della monetizzazione

1Crea un account AdMob#

Registrati per un account Google AdMob. Ti serve un account Google per iniziare. AdMob è la piattaforma pubblicitaria mobile di Google.

2Aggiungi la tua app#

Nella dashboard di AdMob:

  • Fai clic su «Apps» nella barra laterale
  • Fai clic su «Add App»
  • Seleziona «No» per «Is your app listed on a supported app store?»
  • Inserisci il nome della tua app
  • Seleziona «Android» come piattaforma
  • Fai clic su «Add»

3Ottieni l'App ID#

Dopo aver creato la tua app:

  • Copia l'App ID mostrato (formato: ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX)
  • È diverso dal tuo Ad Unit ID
  • Lo userai in AndroidManifest.xml
App ID format:
ca-app-pub-1234567890123456~1234567890

4Crea un'unità pubblicitaria (banner)#

Nella tua app AdMob:

  • Fai clic sulla scheda «Ad units»
  • Fai clic su «Add ad unit»
  • Seleziona «Banner»
  • Inserisci il nome dell'unità pubblicitaria (ad es. «Main Banner»)
  • Fai clic su «Create ad unit»
  • Copia l'Ad Unit ID
Banner Ad Unit ID format:
ca-app-pub-1234567890123456/1234567890

5Configurazione in AppMint#

In AppMint, passaggio 3:

  1. Attiva «AdMob Ads» e incolla il tuo AdMob App ID (quello con ~)
  2. Ad Control: lascia «Automatic» - l'app posiziona gli annunci per te
  3. Attiva «Banner Ad», scegli la posizione dell'annuncio (in basso o in alto) e incolla il tuo Banner Ad Unit ID (quello con /)
  4. Continua con le altre impostazioni e genera la tua app
Ad Unit ID (not App ID):
ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY

6Prova gli annunci nella tua app#

Durante lo sviluppo, usa gli ID di prova ufficiali di Google per evitare violazioni delle norme. Copiali e incollali nel generatore:

📋 AdMob App ID:
ca-app-pub-3940256099942544~3347511713

📋 Banner Ad Unit ID:
ca-app-pub-3940256099942544/6300978111

📋 Interstitial Ad Unit ID:
ca-app-pub-3940256099942544/1033173712

📋 Rewarded Ad Unit ID:
ca-app-pub-3940256099942544/5224354917

📋 Publisher ID:
pub-3940256099942544

📋 Sito web dello sviluppatore:
https://example.com

Questi ID di prova mostrano annunci dall'aspetto reale senza generare entrate né violare le norme. Sostituiscili con i tuoi ID reali per la produzione.

Test IDs for Generator:

AdMob App ID:       ca-app-pub-3940256099942544~3347511713
Banner Ad ID:       ca-app-pub-3940256099942544/6300978111
Interstitial ID:    ca-app-pub-3940256099942544/1033173712
Rewarded Ad ID:     ca-app-pub-3940256099942544/5224354917
Publisher ID:       pub-3940256099942544
Developer URL:      https://example.com

7Annunci interstiziali#

Gli annunci interstiziali sono annunci a schermo intero che coprono l'intera interfaccia dell'app. Gli utenti possono chiuderli per tornare all'app.

📺 Come attivarlo (passaggio 3, Ad Control «Automatic»):

  1. Attiva «Full Screen Ad»
  2. Ad Type: scegli «Interstitial Ad»
  3. Inserisci il tuo Interstitial Ad Unit ID (o lascia vuoto per usare annunci di prova)
  4. Scegli la modalità di attivazione:

🔄 Dopo le navigazioni (predefinito):
l'annuncio compare dopo ogni N navigazioni di pagina. Ad esempio, se impostato su 4, l'annuncio compare dopo il 4º, 8º, 12º caricamento di pagina e così via.

📱 App Open:
l'annuncio compare una volta sola, subito dopo la schermata iniziale, alla prima apertura dell'app.

👆 Su richiesta:
nessun annuncio automatico: la tua pagina ne mostra uno con un tocco tramite WebToApk.showInterstitialAd().

⚠️ Il tipo di annuncio è una scelta unica: interstiziale OPPURE con ricompensa, non entrambi.

Example: every 4 page navigations

Page 1 → No ad
Page 2 → No ad
Page 3 → No ad
Page 4 → 📺 Interstitial Ad shown!
Page 5 → No ad
Page 6 → No ad
Page 7 → No ad
Page 8 → 📺 Interstitial Ad shown!
...

8Annunci con ricompensa#

Gli annunci con ricompensa sono annunci video a schermo intero che gli utenti guardano in cambio di un premio. Rendono più dei banner o degli annunci interstiziali.

🎁 Come attivarlo (passaggio 3, Ad Control «Automatic»):

  1. Attiva «Full Screen Ad»
  2. Ad Type: scegli «Rewarded Ad»
  3. Inserisci il tuo Rewarded Ad Unit ID (o lascia vuoto per usare annunci di prova)
  4. Scegli la modalità di attivazione:

🔄 Dopo le navigazioni (predefinito):
come per l'interstiziale, l'annuncio compare dopo ogni N caricamenti di pagina. «Show ad after every N page navigations» imposta N. Il valore predefinito è 4.

📱 App Open:
il video con ricompensa compare una volta sola, alla prima apertura dell'app dopo la schermata iniziale.

👆 Su richiesta:
nessun annuncio automatico: il pulsante «guarda l'annuncio per guadagnare» della tua pagina chiama WebToApk.showRewardedAd().

💡 Quante navigazioni?
Meno = più annunci (più entrate ma esperienza peggiore). Di più = meno annunci (esperienza migliore ma meno entrate). Consigliato: 3-5.

⚠️ Norme di Google: gli annunci con ricompensa richiedono il consenso dell'utente. Nelle modalità After Navigations e App Open la tua app mostra prima una richiesta «Guardare un annuncio?» con un pulsante «No grazie»; l'annuncio parte solo se l'utente accetta.

Revenue comparison (approximate):

Banner Ads:       $0.10 - $0.50 per 1000 views
Interstitial Ads: $1 - $5 per 1000 views
Rewarded Ads:     $5 - $15 per 1000 views

Recommended N (page navigations per ad):
Aggressive:  2-3 (more ads, more revenue)
Balanced:    4-5 (recommended)
Conservative: 6-10 (fewer ads, better UX)

⚠️ AdMob richiede un meccanismo di consenso per gli utenti nello SEE, nel Regno Unito, in Svizzera e negli stati USA.

Questo viene gestito automaticamente dall'app generata tramite la User Messaging Platform (UMP) di Google. L'app:

  • Mostra una finestra di consenso agli utenti di SEE/Regno Unito/Svizzera prima di visualizzare gli annunci
  • Mostra una finestra di rifiuto agli utenti negli stati USA interessati
  • Richiedi gli annunci solo dopo aver ottenuto il consenso

Cosa devi fare TU:

  1. Nella console AdMob → Privacy e messaggistica → Crea un messaggio sulle normative europee
  2. Nella console AdMob → Privacy e messaggistica → Crea un messaggio sulle normative degli stati USA
  3. Imposta l'URL dell'informativa sulla privacy nel generatore (passaggio 3 o 4)
  4. Assicurati che la tua informativa sulla privacy menzioni la pubblicità AdMob

⚠️ Senza questa configurazione, AdMob potrebbe mostrare un avviso sulle norme: «Consent requirement: No CMP»

10Processo di revisione degli annunci#

Dopo aver pubblicato la tua app:

  • AdMob esaminerà la tua app (di solito richiede 24-48 ore)
  • All'inizio vedrai gli annunci di prova
  • Una volta approvata, inizieranno a comparire gli annunci reali
  • Mantieni i contenuti della tua app conformi alle norme

11Attiva i pagamenti#

Per ricevere le entrate pubblicitarie:

  • Vai su «Payments» nella dashboard di AdMob
  • Aggiungi un metodo di pagamento (conto bancario o altre opzioni)
  • Verifica il tuo indirizzo
  • Imposta le informazioni fiscali
  • I pagamenti avvengono ogni mese dopo aver raggiunto la soglia di 100 $

12Buone pratiche#

✅ Posizione del banner: il banner in basso è meno invadente e offre un'esperienza utente migliore

✅ Interstiziale/con ricompensa: scegline uno, non entrambi. Gli annunci con ricompensa rendono di più ma richiedono il coinvolgimento dell'utente

✅ Numero di azioni: inizia con 4-5 navigazioni tra un annuncio e l'altro. Troppo frequenti = recensioni negative

✅ Prova prima: testa sempre con unità pubblicitarie di prova durante lo sviluppo

✅ Monitora le prestazioni: controlla regolarmente la dashboard di AdMob per guadagni e metriche

⚠️ Non cliccare: non cliccare mai sui tuoi annunci, viola le norme di AdMob

⚠️ Contenuti di qualità: assicurati che la tua app offra valore e rispetti le norme di AdMob

💡 Consiglio da esperti: combina banner (sempre visibile) + interstiziale o con ricompensa (periodico) per il massimo delle entrate

13Risoluzione dei problemi#

Problemi comuni e soluzioni:

  • Nessun annuncio visualizzato: controlla di usare l'Ad Unit ID corretto (non l'App ID)
  • Gli annunci di prova funzionano ma quelli reali no: attendi il completamento della revisione di AdMob
  • Richiesta dell'annuncio non riuscita: verifica la connessione a internet e lo stato dell'account AdMob
  • Account sospeso: leggi le norme di AdMob e presenta ricorso se necessario

14Annunci controllati dallo sviluppatore: posizioni tu ogni annuncio#

Scarica la pagina demo completa qui sotto (Coin Runner): un banner nel layout, un interstiziale tra i livelli, un pulsante «Guarda l'annuncio per ottenere 50 monete», un rettangolo 300×250, l'interruttore app-open e un registro in tempo reale di ogni risultato. Comprimila in ZIP, caricala come Offline ZIP, scegli Developer-controlled con gli ID di prova precompilati, crea l'app: ogni pulsante si spiega da solo.

Le opzioni qui sopra sono la modalità Automatica: l'app mostra per te il banner e l'annuncio a pagina intera o con ricompensa. Se vuoi tutti i formati AdMob e la libertà di collocare ciascuno esattamente dove serve alla tua pagina, scegli invece «Ad Control → Developer-controlled» nel passaggio 3.

In questa modalità NIENTE è automatico. Inserisci un ID unità pubblicitaria per ogni formato che usi - banner, rettangolo medio (300×250), interstiziale, con ricompensa, interstiziale con ricompensa, app-open - e lascia vuoti gli altri. La tua pagina gestisce poi tutto tramite window.AppMintAds:

  • AppMintAds.banner.attach('#slot', {size:'banner'|'medium_rectangle'}) - un banner posizionato sopra l'elemento che indichi, in una scheda, tra gli elementi di un elenco, ovunque. Segue l'elemento durante lo scorrimento; detach() lo rimuove. Fino a due alla volta.
  • await AppMintAds.load('interstitial') → {ok:true} oppure {ok:false, code:'no_fill'|'network'|'invalid_unit'|'consent'|'ad_free'|'disabled'}
  • await AppMintAds.show('rewarded') → {shown:true, earned:true, reward:{type,amount}} oppure {shown:false, reason}
  • AppMintAds.isReady('interstitial') - attiva il tuo pulsante in base a questo
  • AppMintAds.appOpen.setEnabled(false) - sospendi l'annuncio app-open mentre l'utente è nel mezzo di un'attività

AppMintAds esiste solo nell'app installata: rileva sempre la funzione (if (window.AppMintAds) …) così la pagina funziona anche in un browser. Le regole di Google valgono comunque e l'app le applica: un annuncio con ricompensa parte solo dal tocco dell'utente (il tuo pulsante «Guarda l'annuncio» È il consenso), gli interstiziali mantengono un intervallo di 60 secondi e non mettere mai un annuncio sopra un'azione fondamentale.

// Feature-detect: AppMintAds exists only in the installed app
const ads = window.AppMintAds;

// 1. A banner INSIDE your layout — <div id="ad-slot"></div> reserves the space
if (ads) {
  const r = await ads.banner.attach('#ad-slot', { size: 'banner' });
  console.log(r.ok ? 'banner ' + r.width + 'x' + r.height : 'no banner: ' + r.code);
}

// 2. A full-page ad at a natural break (between levels), never on every tap
async function levelFinished() {
  if (ads && ads.isReady('interstitial')) await ads.show('interstitial');
  showNextLevel();          // continues whether or not an ad was shown
}

// 3. A 'Watch ad to earn 50 coins' button — the tap is the user's opt-in
watchBtn.onclick = async () => {
  if (!ads) return;                                 // browser: no native ads
  // From a tap the ad plays. Without one (a timer, a route change) the app shows
  // AdMob's "Watch an ad? / No thanks" intro first and answers code 'declined'.
  const r = await ads.show('rewarded');
  if (r.earned) addCoins(r.reward.amount || 50);   // grant ONLY when earned
  else if (r.reason === 'ad_free') addCoins(50);    // premium user: grant without an ad
  else toast('No ad available right now');          // no popup, no Skip button
};

// 4. Preload and keep the button honest
ads?.load('rewarded').then(r => { watchBtn.disabled = !r.ok; });

Nell'app, il pulsante di questo passaggio li salva sul tuo telefono. Qui sono download diretti.

admob-developer-demo.html HTML · 12 KB

15Eventi di stato degli annunci: scopri cosa è successo a ogni richiesta#

Ogni annuncio controllato dallo sviluppatore riporta il suo intero ciclo di vita su UN solo evento, appmint:ad, così puoi registrare gli annunci caricati, reagire agli errori e gestire la tua interfaccia:

{ type, phase, slot?, code?, adCode?, message?, width?, height?, reward?, earned? }

  • type: banner | mrec | interstitial | rewarded | rewarded_interstitial | app_open
  • phase: loading → loaded | failed → opened → impression → clicked → closed, più rewarded (è stato ottenuto un premio) e show_failed
  • code (in caso di failed): no_fill | network | invalid_unit | internal - adCode è il numero di AdMob, message il suo testo
  • slot: quale slot banner, per banner/mrec

Le promise ti danno la stessa risposta a ogni chiamata; l'evento ti dà tutto, compresi gli annunci per cui non hai chiamato show() (un annuncio app-open, l'aggiornamento di un banner). Nella modalità Automatica AppMintAds esiste ancora ma risponde con il codice 'automatic_mode': usa le chiamate WebToApk.showInterstitialAd()/showRewardedAd() e gli eventi appmint:reward / appmint:ad-closed / appmint:ad-unavailable di quella modalità.

window.addEventListener('appmint:ad', e => {
  const a = e.detail;
  console.log(a.type, a.phase, a.code || '', a.message || '');
  if (a.phase === 'failed' && a.code === 'no_fill') analytics.track('ad_no_fill', a);
  if (a.type === 'rewarded' && a.phase === 'rewarded') console.log('earned', a.reward);
  if (a.type === 'banner' && a.phase === 'loaded') console.log('banner ' + a.width + 'x' + a.height + ' in ' + a.slot);
});

// What can this build serve? (guard it — in a browser AppMintAds is undefined)
if (window.AppMintAds) console.log(AppMintAds.config());
// → { control: 'developer', formats: { banner: true, mrec: false, interstitial: true, ... } }

Questa pagina è generata dalla Guida all'integrazione all'interno dell'app stessa, quindi dice esattamente ciò che dice la versione attuale. Leggila in Markdown.

Verificato rispetto alla guida distribuita il 22/10/2026.