Analytics do app
A Stripe oferece analytics nativo para apps publicados no marketplace, o que dá visibilidade sobre instalações, desempenho do anúncio e engajamento dos usuários. Você também pode montar seu próprio analytics usando webhooks e a API da Stripe.
Relatórios disponíveis
O Stripe Dashboard oferece os seguintes dados de analytics para o app que você publicou:
Métricas de instalação
| Métrica | Descrição |
|---|---|
| Instalações | Total de novas instalações do app no período selecionado |
| Desinstalações | Total de desinstalações do app no período selecionado |
| Instalações líquidas acumuladas | Total acumulado de instalações menos desinstalações ao longo do tempo |
Desempenho do anúncio
| Métrica | Descrição |
|---|---|
| Visualizações do anúncio | Total de visualizações da página do seu app no marketplace |
| Visualizações únicas | Visitantes únicos que viram o seu anúncio no marketplace |
| Taxa de conversão MoM | Percentual, mês a mês, de visitantes do anúncio que instalam o app |
Métricas de crescimento
| Métrica | Descrição |
|---|---|
| Taxa de crescimento MoM | Crescimento mês a mês das instalações líquidas |
| Taxa de churn | Percentual de usuários com o app instalado que desinstalam por mês |
Atualidade dos dados
Caution
Os dados de analytics têm um atraso de 48 horas. O que você vê no dashboard reflete a atividade de aproximadamente dois dias atrás. Planeje suas janelas de relatório levando isso em conta.
- Os dados são atualizados diariamente, com um atraso de processamento de 48 horas
- O histórico fica disponível a partir da data em que seu app foi publicado pela primeira vez
- As métricas são calculadas no fuso horário UTC
- Exporte os dados em CSV pelo Stripe Dashboard para fazer análises externas
Acessar o analytics pela API
Você pode acessar o analytics do app de forma programática usando a Reporting API da Stripe:
Dados de instalação
# 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"Visualizações do anúncio
# 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"Acesso 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;};Aba Users
A aba Users do analytics do seu app mostra os dados no nível de cada conta:
| Coluna | Descrição |
|---|---|
| Account ID | A conta Stripe que instalou o seu app |
| Install Date | Quando o app foi instalado |
| Status | Ativo ou desinstalado |
| Uninstall Date | Quando o app foi desinstalado (quando aplicável) |
Use esses dados para:
- Acompanhar o status de ativação de cada conta
- Fazer follow-up com contas que instalaram, mas não concluíram a integração inicial
- Identificar contas que desinstalaram e entender os motivos do churn
- Cruzar os dados de instalação com o analytics da sua própria plataforma
Analytics personalizado com webhooks
Para ter analytics em tempo real e insights mais profundos, configure webhooks para acompanhar os eventos do app:
Eventos de webhook
Escute estes eventos para montar seu analytics personalizado:
| Evento | Descrição |
|---|---|
account.application.authorized | O usuário instalou o seu app |
account.application.deauthorized | O usuário desinstalou o seu app |
Handler do 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
Em plataformas Connect, use a Connect List API para obter informações sobre as contas que têm o seu app instalado:
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;};Montar um dashboard de analytics personalizado
Combine o analytics da Stripe com seus próprios dados para ter uma visão 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 principais para acompanhar
Na integração da Tajo com a Brevo, foque nestas métricas:
| Métrica | Meta | Por que importa |
|---|---|---|
| Taxa de instalação para ativação | > 70% | Percentual de quem instala e conclui a configuração da Brevo |
| Tempo até a primeira sincronização | < 5 minutos | Com que rapidez o usuário percebe valor depois de instalar |
| Retenção em 30 dias | > 80% | Percentual de usuários ainda ativos depois de 30 dias |
| Taxa de churn mensal | < 5% | Mantenha as desinstalações baixas com uma integração valiosa |
| Taxa de conversão do anúncio | > 15% | Percentual de visitantes do anúncio que instalam |
| Clientes sincronizados por conta | > 100 | Indica a profundidade de uso da integração |
Tip
Configure alertas automáticos para mudanças significativas nas métricas. Um pico repentino de desinstalações ou uma queda na taxa de ativação pode indicar um bug ou um problema de UX que precisa de atenção imediata.