Analíticas de la aplicación
Stripe ofrece analíticas integradas para las apps publicadas en el marketplace, que te dan visibilidad sobre las instalaciones, el rendimiento de tu ficha y la interacción de los usuarios. También puedes crear tus propias analíticas con webhooks y la API de Stripe.
Informes disponibles
El panel de control de Stripe ofrece las siguientes analíticas para tu app publicada:
Métricas de instalación
| Métrica | Descripción |
|---|---|
| Instalaciones | Número total de instalaciones nuevas de la app en el periodo seleccionado |
| Desinstalaciones | Número total de desinstalaciones de la app en el periodo seleccionado |
| Instalaciones netas acumuladas | Total acumulado de instalaciones menos desinstalaciones a lo largo del tiempo |
Rendimiento de la ficha
| Métrica | Descripción |
|---|---|
| Vistas de la ficha | Vistas de página totales de la ficha de tu app en el marketplace |
| Vistas únicas | Visitantes únicos que vieron tu ficha en el marketplace |
| Tasa de conversión MoM | Porcentaje mes a mes de visitantes de la ficha que instalan la app |
Métricas de crecimiento
| Métrica | Descripción |
|---|---|
| Tasa de crecimiento MoM | Crecimiento mes a mes de las instalaciones netas |
| Tasa de abandono | Porcentaje de usuarios instalados que desinstalan la app cada mes |
Actualidad de los datos
Caution
Los datos de las analíticas llevan un retraso de 48 horas. Lo que ves en el panel de control refleja la actividad de hace unos dos días. Planifica tus ventanas de análisis teniéndolo en cuenta.
- Los datos se actualizan a diario con un retraso de procesamiento de 48 horas
- El historial está disponible desde la fecha en que publicaste tu app por primera vez
- Las métricas se calculan en la zona horaria UTC
- Puedes exportar los datos en CSV desde el panel de control de Stripe para analizarlos externamente
Acceder a las analíticas por API
Puedes acceder a las analíticas de tu app de forma programática con la Reporting API de Stripe:
Datos de instalación
# 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"Vistas de la ficha
# 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"Acceso programático (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;};Pestaña de usuarios
La pestaña de usuarios de las analíticas de tu app muestra los datos de cada cuenta:
| Columna | Descripción |
|---|---|
| ID de cuenta | La cuenta de Stripe que instaló tu app |
| Fecha de instalación | Cuándo se instaló la app |
| Estado | Activa o desinstalada |
| Fecha de desinstalación | Cuándo se desinstaló la app (si procede) |
Usa estos datos para:
- Seguir el estado de activación de cada cuenta
- Contactar con las cuentas que instalaron la app pero no completaron el onboarding
- Identificar las cuentas que la desinstalaron y entender los motivos del abandono
- Cruzar los datos de instalación con las analíticas de tu propia plataforma
Analíticas personalizadas con webhooks
Para obtener analíticas en tiempo real y una visión más profunda, configura webhooks que registren los eventos de la app:
Eventos de webhook
Escucha estos eventos para construir tus propias analíticas:
| Evento | Descripción |
|---|---|
account.application.authorized | Un usuario instaló tu app |
account.application.deauthorized | Un usuario desinstaló tu app |
Manejador del 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
En plataformas Connect, usa la Connect List API para obtener información sobre las cuentas que tienen tu app instalada:
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;};Crear un panel de analíticas personalizado
Combina las analíticas de Stripe con tus propios datos para tener una visión 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, };};Métricas clave que conviene seguir
Para la integración de Tajo con Brevo, céntrate en estas métricas:
| Métrica | Objetivo | Por qué importa |
|---|---|---|
| Tasa de instalación a activación | > 70 % | Porcentaje de quienes instalan la app y completan la configuración de Brevo |
| Tiempo hasta la primera sincronización | < 5 minutos | Con qué rapidez los usuarios ven valor después de instalar |
| Retención a 30 días | > 80 % | Porcentaje de usuarios que siguen activos pasados 30 días |
| Tasa de abandono mensual | < 5 % | Mantén las desinstalaciones bajas con una integración valiosa |
| Tasa de conversión de la ficha | > 15 % | Porcentaje de visitantes de la ficha que instalan la app |
| Clientes sincronizados por cuenta | > 100 | Indica la profundidad de uso de la integración |
Tip
Configura alertas automáticas para los cambios significativos en las métricas. Un pico repentino de desinstalaciones o una caída de la tasa de activación pueden indicar un error o un problema de UX que necesita atención inmediata.