AdMob non supporta service account: serve OAuth2 come proprietario dell'account. Il file secrets/google/play-console-key.json non c'entra — è per Play Console, non per AdMob.
- Progetto Cloud (già fatto:
marafone-3d627). - Abilita "AdMob API" in Library.
- Credenziali OAuth2 tipo Desktop app (già creato:
secrets/google/client_secret_...json).
ADMOB_CLIENT_ID=<client-id>.apps.googleusercontent.com
ADMOB_CLIENT_SECRET=<client-secret>
ADMOB_PUBLISHER_ID=pub-xxxxxxxxxxxxxxxx
ADMOB_REFRESH_TOKEN=Valori reali presi dal file secrets/google/client_secret_*.json (gitignored) e da AdMob → Impostazioni account. ADMOB_REFRESH_TOKEN va compilato allo step 3.
Sul tuo PC (serve browser vero, non funziona in sessioni remote/headless):
pnpm run admob:authApri l'URL stampato, accedi con l'account Google proprietario di AdMob (pub-3013811216506035), autorizza. Copia il ADMOB_REFRESH_TOKEN stampato nel .env.
Per ogni progetto app, imposta admobAppId (Android/principale) e, se l'app esiste anche su iOS con un App ID diverso, anche admobAppIdIos — i ricavi delle due piattaforme vengono sommati in un'unica snapshot per progetto:
pnpm run project:add -- --name "Nome" --slug slug --type app \
--admob-app-id ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy \
--admob-app-id-ios ca-app-pub-xxxxxxxxxxxxxxxx~zzzzzzzzzzPer rivedere in ogni momento la lista App ID:
pnpm run admob:appsTrovati automaticamente 18 App ID sull'account: collegati ai 2 progetti esistenti che corrispondevano (Marafone Romagnolo, Scadenzario) e creati 9 nuovi progetti per le app AdMob senza corrispondenza (L'Intesa, Ghigliottina, ContaSpicci, SlapCards, Sette e Mezzo, Solitaire Club, HostPilot, QuizPA, Schocken).
pnpm run sync:admob(oppure incluso di default in pnpm run sync). Oltre al network report (revenue/impressions/click/richieste, sommati Android+iOS), la sync scarica anche il mediation report (per ad source: AdMob Network, AppLovin, Unity Ads, Meta, ecc. — e per formato: banner/interstitial/rewarded), salvato in admobMediationMetrics (non ancora mostrato in dashboard, consultabile con pnpm run db:studio).
Tutto configurato e testato: refresh token valido, 11 progetti con AdMob collegato, sync eseguita con successo (8 con dati quel giorno, alcuni a zero perché app piccole/nuove). Nessun invito utente su admob.google.com/user-management necessario — serve solo per dare accesso ad altri account Google, non per l'autenticazione API del proprio account.