In-app purchases Android (Google Billing): setup
Su Android i pagamenti per beni digitali avvengono tramite Google Play Billing Library. La versione corrente (6+) introduce un modello a base plan e offer per gli abbonamenti, più flessibile ma più complesso da implementare. Vediamo i passaggi essenziali.
Prodotti e abbonamenti
Google Play distingue tra "managed products" (consumable e non-consumable) e "subscriptions". Per gli abbonamenti, ogni prodotto ha uno o più base plan (mensile, annuale) e ogni base plan puo avere offer (prova gratuita, sconti). Devi modellare con cura questi livelli per supportare upgrade, downgrade e prove.
Flusso di acquisto
Inizializza un BillingClient, query dei prodotti via queryProductDetailsAsync, lancia l'acquisto con launchBillingFlow, gestisci i Purchase nel listener. Su acquisto, riconosci il purchase entro 3 giorni (acknowledgePurchase) per evitare il refund automatico.
Verifica server-side
Sul backend, valida ogni acquisto con Google Play Developer API: subscriptions.get o purchases.products.get. Configura le Real-time Developer Notifications via Pub/Sub per eventi server-to-server (rinnovi, refund, grace period).
Real-time Developer Notifications
Google invia notifiche via Pub/Sub su eventi: nuovi acquisti, rinnovi, cancellazioni, refund. Configura il topic Pub/Sub e collegalo a Play Console. Il listener server-side aggiorna il database utente in tempo reale. Senza RTDN dovresti fare polling continuo, inefficiente e costoso.
Multi-quantity e BOGO
Google Billing supporta acquisti multi-quantità per consumable (es. compra 10 gemme). Configura quantità nel launchBillingFlow. Anche le offerte BOGO (Buy One Get One) si configurano via base plan con offer multipli. Maggiore flessibilita rispetto ad Apple per giochi.
Subscription upgrades e downgrades
Cambio tra base plan dello stesso prodotto (es. mensile a annuale) si gestisce con SubscriptionUpdateParams. Tre modalita di proration: immediate with time proration, immediate with charge proration, immediate without proration, deferred. La scelta influisce sull'esperienza utente e sulla logica di fatturazione.
Testing avanzato
Sandbox Google: i rinnovi sono accelerati (5 minuti = 1 giorno; 30 minuti = 1 settimana). Configura tester con email dedicate. Per test di refund, usa il flusso refund-while-active in Play Console. Documenta tutti i casi prima del lancio.
Abbonamenti complessi: base plan e offer
Google Play Billing 5+ ha introdotto modello flessibile: ogni prodotto subscription ha uno o più base plan (mensile/annuale), ogni base plan puo avere offer (trial, intro). Permette di gestire prezzi diversi per regione, customer segments, periodi promozionali. Migrazione da modello legacy richiede riflessione architetturale ma sblocca strategie pricing avanzate.
Pricing localizzato
Google Play permette pricing automatico per regione (basato su tassi di cambio) o manuale. Per regioni a basso reddito (India, Brasile, Egitto), pricing aggressivo aumenta conversion. Strumenti come Adapty e RevenueCat automatizzano A/B test pricing su segmenti utente, ottimizzando ARPU in modo data-driven.
Procedura passo-passo
- Crea i prodotti in Play Console (managed products o subscriptions).
- Configura base plan e offer per gli abbonamenti.
- Integra Google Play Billing Library nel client.
- Implementa la connection al BillingClient e gestisci reconnect.
- Query dei prodotti e lancio del billing flow.
- Acknowledge ogni acquisto e consuma i consumable.
- Verifica sul backend e configura le notifiche Pub/Sub.
License testing
License testing account in Play Console (max 100 email) permettono test senza addebito. Configura fino a 100 license tester. Per test esaustivi, includi anche utenti reali tramite Closed Testing track. Real-time Developer Notifications funzionano anche in test environment, permettendo di testare backend integration completa.
Payment methods coverage
Google Play supporta carte di credito, gift card, carrier billing in molti paesi, PayPal, criptovalute in alcuni mercati. La copertura varia per regione. In paesi emergenti, carrier billing puo essere il primo metodo di pagamento per molti utenti. Imposta pricing e payment methods per regione strategicamente per massimizzare conversion.
Errori comuni e come risolverli
- Acquisto non acknowledged: refund automatico dopo 3 giorni.
- Versione Billing Library obsoleta: Google deprecia le versioni vecchie ogni 12-18 mesi.
- Test track non configurato: gli IAP funzionano solo su track interno o oltre.
- Pubblicazione mancante: i prodotti devono essere attivi in console.
- Account tester non valido: aggiungi tester nell'apposita sezione.
Domande frequenti
D: Posso usare Stripe su Android?
R: No per beni digitali. Solo per beni fisici o servizi che vengono erogati offline.
D: Le commissioni sono come Apple?
R: Si, 30% standard, 15% dopo il primo anno di abbonamento o per Play Media Experience Program.
D: Come testare gli abbonamenti?
R: Su test track con tester aggiunti, i rinnovi sono accelerati (5 minuti = 1 giorno).
D: Google Billing supporta carte regalo?
R: Si, Play gift card sono uno dei metodi più usati in mercati come USA, UK e Giappone.
Vendor neutralita
Strumenti come RevenueCat e Adapty astraggono Apple StoreKit e Google Billing dietro una sola API. Riducono boilerplate, semplificano cross-platform, forniscono analytics unificate. Free tier generoso per startup. Considera vendor lock-in vs effort di implementazione diretta.
Implementare correttamente l'acknowledgement dei purchase entro 3 giorni e una pratica frequentemente sottovalutata che causa refund automatici. Crea una queue persistente di acknowledgement, retry su errori, monitor failures. Senza questa robustezza, la perdita di revenue per refund automatici puo essere significativa, soprattutto per app a volume alto.
Hai bisogno di aiuto?
Se vuoi sviluppare la tua app con G Tech Group, scrivici tramite il modulo di contatto.