Backend e account
Analytics, accesso con Facebook e abbonamenti - configurazione
Firebase Analytics, Facebook Login e RevenueCat, passo passo
1Che cosa collega questa scheda#
Il passaggio Integrate ha una scheda chiamata Sign-in, analytics & subscriptions. Collega i TUOI account:
- Firebase Analytics: chi usa l'app e che cosa fa
- Facebook Login: un pulsante Continua con Facebook, più Meta App Events
- RevenueCat: abbonamenti e acquisti
Ogni interruttore è separato. Attiva solo ciò che usi; un'app con tutti gli interruttori disattivati viene creata esattamente come prima.
2Firebase Analytics: crea o scegli un progetto#
Apri la console Firebase e tocca Create a project (oppure scegli il progetto che la tua app usa già per le push). Lascia Google Analytics attivo quando richiesto e scegli o crea un account Analytics.
Hai già un progetto senza Analytics? Project settings → Integrations → Google Analytics → Enable.
3Firebase Analytics: aggiungi la tua app Android#
Nel progetto, tocca Add app → Android.
- Android package name: digita il nome di pacchetto ESATTO del passaggio Basic della procedura guidata, ad esempio com.tuonome.miaapp. Una lettera sbagliata e non arriva alcun dato.
- Il nickname è facoltativo e lo SHA-1 non serve per gli analytics.
Tocca Register app, poi Download google-services.json. Puoi saltare i passaggi Firebase rimanenti; AppMint aggiunge l'SDK per te.
Hai cambiato il nome del pacchetto in seguito? Aggiungi il nuovo pacchetto come ulteriore app Android e scarica di nuovo il file.
4Firebase Analytics: attivalo nella procedura guidata#
Passaggio Integrate → Sign-in, analytics & subscriptions → attiva Firebase Analytics. Il caricamento di google-services.json compare poi nella scheda Push Notifications: carica lì il file. È lo stesso file usato dalle notifiche push, quindi se l'hai già caricato per le push hai finito.
Registra una visualizzazione di schermata a ogni cambio di pagina: quando è attivo, l'app registra uno screen_view ogni volta che la tua pagina cambia percorso (link, modifiche della cronologia, avanti e indietro, modifiche del #), con il percorso e il titolo della pagina. Vedi quali schermate usano le persone senza scrivere codice. Lascialo disattivato se la tua pagina invia già le proprie chiamate screenView, altrimenti le schermate vengono contate due volte.
5Invia i tuoi eventi#
AppMint.analytics.log(name, params) registra un evento. I nomi usano lettere, cifre e _ (fino a 40 caratteri, iniziando con una lettera). La risposta indica che cosa è stato inviato o perché no: no_consent, not_configured, invalid_name, reserved_name.
setUserId associa gli eventi al tuo ID utente (mai un'e-mail), setUserProperty imposta una proprietà come plan e screenView registra tu stesso una schermata. Con Meta App Events attivo, log invia lo stesso evento anche a Meta.
if (window.AppMint && AppMint.analytics) {
AppMint.analytics.setUserId('u_42');
AppMint.analytics.setUserProperty('plan', 'pro');
const r = await AppMint.analytics.log('add_to_cart', { item_id: 'sku-42', value: 19.99, currency: 'USD' });
if (!r.ok) console.warn('not logged', r.providers);
AppMint.analytics.screenView('Checkout', 'CheckoutPage');
}6Dove compaiono i dati#
Console Firebase → Analytics. Realtime mostra utenti ed eventi pochi minuti dopo l'apertura dell'app. Dashboard e report Events si riempiono entro circa 24 ore, quindi un report vuoto il primo giorno è normale.
Per vedere ogni evento dal vivo durante i test, collega il telefono a un computer ed esegui il comando qui sotto, poi apri l'app e vai su Analytics → DebugView. Usa il tuo nome di pacchetto.
adb shell setprop debug.firebase.analytics.app com.yourname.myapp
# turn it off again:
adb shell setprop debug.firebase.analytics.app .none.7Consenso e rifiuto#
In un'app che mostra annunci, il modulo di consenso di Google decide anche per gli analytics: non viene raccolto nulla finché l'utente non ha risposto e, dove si applica il GDPR, l'utente deve acconsentire. Fino ad allora le chiamate rispondono no_consent e non viene messo in coda nulla.
La tua pagina può sempre disattivare la raccolta: AppMint.analytics.setEnabled(false) la ferma e viene ricordato, setEnabled(true) la riattiva. Cita gli analytics nella tua informativa sulla privacy e nel modulo Data safety di Play.
document.getElementById('optOut').onchange = (e) =>
AppMint.analytics.setEnabled(!e.target.checked);8Facebook Login: crea l'app Facebook#
Apri Meta for Developers → My Apps → Create app. Scegli il caso d'uso per l'accesso con Facebook Login (oppure aggiungi il prodotto Facebook Login a un'app che hai già ). Dagli un nome e inserisci la tua e-mail di contatto.
9Facebook Login: aggiungi l'URL di reindirizzamento#
Facebook Login → Settings → Valid OAuth Redirect URIs: aggiungi
https://freewebtoapk.com/fb-return/
esattamente così, compreso l'ultimo slash. La procedura guidata ha un pulsante Copy redirect URL per non doverlo digitare. Lascia attivi Client OAuth login e Web OAuth login, poi Save changes.
Non servono né l'hash della chiave né la configurazione della piattaforma Android: l'accesso si apre in una scheda del browser e torna alla tua app.
10Facebook Login: App ID e Client Token#
App settings → Basic mostra l'App ID. App settings → Advanced → Security mostra il Client token. Incolla entrambi nei campi Facebook Login della procedura guidata.
Finché l'app Facebook è in modalità Development, possono accedere solo le persone con un ruolo su di essa (tu e i tuoi tester). Prima di pubblicare, aggiungi l'URL dell'informativa sulla privacy e un'icona in App settings → Basic e imposta l'app su Live.
11Facebook Login: fai accedere le persone#
AppMint.facebook.login(permissions) apre Facebook e restituisce il token, oppure ok: false e cancelled se l'utente annulla. Invia il token al tuo server e verificalo lì. getAccessToken() restituisce il token salvato all'avvio della pagina; logout() esce.
Attiva Meta App Events per inviare installazioni, aperture dell'app e i tuoi eventi a Meta Events Manager. AppMint.facebook.logEvent(name, valueToSum, params) invia solo a Meta; segue la stessa regola di consenso degli analytics.
const r = await AppMint.facebook.login(['public_profile', 'email']);
if (r.ok) {
await fetch('/api/login/facebook', { method: 'POST', body: JSON.stringify({ token: r.accessToken }) });
} else if (!r.cancelled) {
alert('Facebook sign-in failed: ' + (r.message || r.error));
}
AppMint.facebook.logEvent('fb_mobile_purchase', 9.99, { fb_currency: 'USD' });12RevenueCat: crea il progetto e collega Google Play#
In RevenueCat, crea un progetto e aggiungi un'app per il Google Play Store. Inserisci il nome di pacchetto ESATTO del passaggio Basic.
RevenueCat verifica gli acquisti con Google tramite un account di servizio: segui la guida di RevenueCat per crearlo in Google Cloud, invitalo in Play Console con le autorizzazioni finanziarie che elenca e carica le sue credenziali JSON nell'app RevenueCat. Google può impiegare un giorno o più prima che le nuove credenziali funzionino.
13RevenueCat: prodotti, entitlement e offerta#
- In Play Console crea i tuoi abbonamenti o prodotti in-app (l'app deve prima essere caricata su un canale di test).
- In RevenueCat → Product catalog, aggiungi gli stessi ID prodotto.
- Crea un Entitlement, ad esempio pro, e collega i prodotti che lo sbloccano.
- Crea un'Offering (quella predefinita è mostrata come corrente) con pacchetti come Monthly e Annual che puntano a quei prodotti.
La tua pagina legge l'offerta corrente per disegnare il paywall e controlla l'entitlement per sbloccare le funzioni.
14RevenueCat: la chiave pubblica di Google#
RevenueCat → Project settings → API keys: copia la chiave PUBBLICA della tua app Google Play. Inizia con goog_. Incollala nel campo RevenueCat della procedura guidata.
Non usare mai una chiave segreta (sk_...). Tutto ciò che sta dentro un'app può essere letto da chiunque la scarichi, e una chiave segreta dà il controllo completo del tuo account RevenueCat.
15RevenueCat: offerte, acquisti ed entitlement#
configure() avvia RevenueCat (passa il tuo ID utente, oppure niente per un utente anonimo). getOfferings() restituisce il paywall, purchase(package) esegue l'acquisto su Google Play e getCustomerInfo() indica che cosa possiede l'utente. restore() recupera gli acquisti precedenti. Prova con un account license tester e un'installazione da un canale di test di Play.
if (window.AppMint && AppMint.revenuecat) {
await AppMint.revenuecat.configure({ appUserId: 'u_42' });
const off = await AppMint.revenuecat.getOfferings();
if (off.ok && off.current) {
const pkg = off.current.availablePackages[0];
const r = await AppMint.revenuecat.purchase(pkg);
if (r.ok) unlock();
}
const info = await AppMint.revenuecat.getCustomerInfo();
const isPro = info.ok && !!info.customerInfo.entitlements.active.pro;
}