Analytics dell’app
Stripe offre analytics integrate per le app pubblicate sul marketplace, che ti danno visibilità su installazioni, rendimento della scheda e coinvolgimento degli utenti. Puoi anche costruire analytics personalizzate con i webhook e l’API di Stripe.
Report disponibili
La Stripe Dashboard fornisce le seguenti analytics per la tua app pubblicata:
Metriche di installazione
| Metrica | Descrizione |
|---|---|
| Installazioni | Numero totale di nuove installazioni dell’app nel periodo selezionato |
| Disinstallazioni | Numero totale di disinstallazioni dell’app nel periodo selezionato |
| Installazioni nette cumulative | Totale progressivo delle installazioni meno le disinstallazioni nel tempo |
Rendimento della scheda
| Metrica | Descrizione |
|---|---|
| Visualizzazioni della scheda | Visualizzazioni totali della pagina della tua app sul marketplace |
| Visualizzazioni uniche | Visitatori unici che hanno visto la tua scheda sul marketplace |
| Tasso di conversione MoM | Percentuale mese su mese di visitatori della scheda che installano l’app |
Metriche di crescita
| Metrica | Descrizione |
|---|---|
| Tasso di crescita MoM | Crescita mese su mese delle installazioni nette |
| Tasso di churn | Percentuale di utenti installati che disinstallano ogni mese |
Aggiornamento dei dati
Caution
I dati delle analytics hanno un ritardo di 48 ore. I dati che vedi nella dashboard riflettono l’attività di circa due giorni prima. Pianifica di conseguenza le tue finestre di reporting.
- I dati vengono aggiornati ogni giorno con un ritardo di elaborazione di 48 ore
- Lo storico è disponibile a partire dalla data di prima pubblicazione della tua app
- Le metriche sono calcolate nel fuso orario UTC
- Esporta i dati in CSV dalla Stripe Dashboard per analisi esterne
Accedere alle analytics via API
Puoi accedere in modo programmatico alle analytics dell’app tramite la Reporting API di Stripe:
Dati di installazione
# Fetch app install reportcurl https://api.stripe.com/v1/reporting/report_runs \ -u sk_live_xxxxx: \ -d "report_type=app.installs.daily" \ -d "parameters[interval_start]=1709251200" \ -d "parameters[interval_end]=1711929600" \ -d "parameters[app_id]=com.tajo.brevo-integration"Visualizzazioni della scheda
# Fetch listing views reportcurl https://api.stripe.com/v1/reporting/report_runs \ -u sk_live_xxxxx: \ -d "report_type=app.listing_views.daily" \ -d "parameters[interval_start]=1709251200" \ -d "parameters[interval_end]=1711929600" \ -d "parameters[app_id]=com.tajo.brevo-integration"Accesso programmatico (Node.js)
const stripe = require('stripe')('sk_live_xxxxx');
// Create a report run for app installsconst reportRun = await stripe.reporting.reportRuns.create({ report_type: 'app.installs.daily', parameters: { interval_start: Math.floor(new Date('2025-03-01').getTime() / 1000), interval_end: Math.floor(new Date('2025-03-31').getTime() / 1000), app_id: 'com.tajo.brevo-integration', },});
// Poll for report completionconst checkReport = async (reportId) => { const report = await stripe.reporting.reportRuns.retrieve(reportId);
if (report.status === 'succeeded') { // Download the report file const file = await stripe.files.retrieve(report.result.id); console.log('Report URL:', file.url); return file; }
if (report.status === 'failed') { throw new Error('Report generation failed'); }
// Report still processing return null;};Scheda Users
La scheda Users nelle analytics della tua app mostra i dati a livello di singolo account:
| Colonna | Descrizione |
|---|---|
| Account ID | L’account Stripe che ha installato la tua app |
| Data di installazione | Quando l’app è stata installata |
| Stato | Attiva o disinstallata |
| Data di disinstallazione | Quando l’app è stata disinstallata (se applicabile) |
Usa questi dati per:
- Monitorare lo stato di attivazione dei singoli account
- Ricontattare gli account che hanno installato l’app ma non hanno completato l’onboarding
- Individuare gli account che hanno disinstallato e capire le cause del churn
- Correlare i dati di installazione con le analytics della tua piattaforma
Analytics personalizzate con i webhook
Per analytics in tempo reale e informazioni più approfondite, configura dei webhook che tracciano gli eventi dell’app:
Eventi webhook
Ascolta questi eventi per costruire analytics personalizzate:
| Evento | Descrizione |
|---|---|
account.application.authorized | L’utente ha installato la tua app |
account.application.deauthorized | L’utente ha disinstallato la tua app |
Gestore dei webhook
const express = require('express');const stripe = require('stripe')('sk_live_xxxxx');
const app = express();
app.post('/webhooks/stripe-app', express.raw({ type: 'application/json' }), async (req, res) => { const sig = req.headers['stripe-signature']; const webhookSecret = process.env.STRIPE_APP_WEBHOOK_SECRET;
let event;
try { event = stripe.webhooks.constructEvent(req.body, sig, webhookSecret); } catch (err) { console.error('Webhook signature verification failed:', err.message); return res.status(400).send('Webhook signature verification failed'); }
switch (event.type) { case 'account.application.authorized': { const account = event.data.object; console.log('App installed by:', account.id);
// Track in your analytics system await trackEvent('app_installed', { account_id: account.id, timestamp: new Date(event.created * 1000), });
// Trigger onboarding email await sendOnboardingEmail(account.id); break; }
case 'account.application.deauthorized': { const account = event.data.object; console.log('App uninstalled by:', account.id);
// Track churn await trackEvent('app_uninstalled', { account_id: account.id, timestamp: new Date(event.created * 1000), });
// Clean up account data await cleanupAccountData(account.id); break; }
default: console.log('Unhandled event type:', event.type); }
res.json({ received: true });});Connect List API
Per le piattaforme Connect, usa la Connect List API per ottenere informazioni sugli account che hanno installato la tua app:
const stripe = require('stripe')('sk_live_xxxxx');
// List all connected accounts with your app installedconst getInstalledAccounts = async () => { const accounts = []; let hasMore = true; let startingAfter = null;
while (hasMore) { const params = { limit: 100 }; if (startingAfter) { params.starting_after = startingAfter; }
const response = await stripe.accounts.list(params);
for (const account of response.data) { // Check if your app is installed on this account if (account.settings?.apps?.includes('com.tajo.brevo-integration')) { accounts.push({ id: account.id, email: account.email, created: account.created, }); } }
hasMore = response.has_more; if (response.data.length > 0) { startingAfter = response.data[response.data.length - 1].id; } }
return accounts;};Costruire una dashboard di analytics personalizzata
Combina le analytics di Stripe con i tuoi dati per avere una visione completa:
// Aggregate analytics for reportingconst getAppAnalytics = async (startDate, endDate) => { const [stripeInstalls, brevoSyncStats, activationData] = await Promise.all([ // Stripe install data getStripeInstallReport(startDate, endDate), // Brevo sync metrics from Tajo getBrevoSyncMetrics(startDate, endDate), // Activation funnel from your database getActivationFunnel(startDate, endDate), ]);
return { // Acquisition totalInstalls: stripeInstalls.installs, totalUninstalls: stripeInstalls.uninstalls, netInstalls: stripeInstalls.installs - stripeInstalls.uninstalls, listingConversionRate: stripeInstalls.conversionRate,
// Activation onboardingCompleted: activationData.completedOnboarding, brevoConnected: activationData.connectedBrevo, firstSyncCompleted: activationData.firstSyncCompleted, activationRate: activationData.completedOnboarding / stripeInstalls.installs,
// Engagement totalCustomersSynced: brevoSyncStats.totalCustomers, totalEventsSynced: brevoSyncStats.totalEvents, averageSyncFrequency: brevoSyncStats.avgSyncPerDay,
// Retention churnRate: stripeInstalls.uninstalls / stripeInstalls.totalActive, monthlyGrowthRate: stripeInstalls.momGrowth, };};Metriche chiave da monitorare
Per l’integrazione Tajo Brevo, concentrati su queste metriche:
| Metrica | Obiettivo | Perché è importante |
|---|---|---|
| Tasso installazione-attivazione | > 70% | Percentuale di chi installa e completa la configurazione di Brevo |
| Tempo alla prima sincronizzazione | < 5 minuti | Quanto rapidamente gli utenti ottengono valore dopo l’installazione |
| Retention a 30 giorni | > 80% | Percentuale di utenti ancora attivi dopo 30 giorni |
| Tasso di churn mensile | < 5% | Un’integrazione di valore mantiene basse le disinstallazioni |
| Tasso di conversione della scheda | > 15% | Percentuale di visitatori della scheda che installano l’app |
| Clienti sincronizzati per account | > 100 | Indica la profondità di utilizzo dell’integrazione |
Tip
Configura avvisi automatici per le variazioni significative delle metriche. Un picco improvviso di disinstallazioni o un calo del tasso di attivazione possono segnalare un bug o un problema di UX che richiede attenzione immediata.