Analityka aplikacji
Stripe udostępnia wbudowaną analitykę dla opublikowanych aplikacji z Marketplace, dzięki czemu widzisz instalacje, skuteczność wizytówki i zaangażowanie użytkowników. Możesz też zbudować własną analitykę na bazie webhooków i API Stripe.
Dostępne raporty
Panel Stripe udostępnia następujące dane analityczne dla Twojej opublikowanej aplikacji:
Wskaźniki instalacji
| Wskaźnik | Opis |
|---|---|
| Instalacje | Łączna liczba nowych instalacji aplikacji w wybranym okresie |
| Odinstalowania | Łączna liczba odinstalowań aplikacji w wybranym okresie |
| Skumulowane instalacje netto | Narastająca suma instalacji pomniejszona o odinstalowania w czasie |
Skuteczność wizytówki
| Wskaźnik | Opis |
|---|---|
| Wyświetlenia wizytówki | Łączna liczba odsłon wizytówki Twojej aplikacji w Marketplace |
| Unikalne wyświetlenia | Unikalni odwiedzający, którzy obejrzeli Twoją wizytówkę w Marketplace |
| Współczynnik konwersji MoM | Procent osób oglądających wizytówkę, które instalują aplikację, liczony miesiąc do miesiąca |
Wskaźniki wzrostu
| Wskaźnik | Opis |
|---|---|
| Tempo wzrostu MoM | Wzrost instalacji netto miesiąc do miesiąca |
| Współczynnik rezygnacji | Procent użytkowników z zainstalowaną aplikacją, którzy odinstalowują ją w ciągu miesiąca |
Aktualność danych
Caution
Dane analityczne mają 48 godzin opóźnienia. Dane widoczne w panelu odzwierciedlają aktywność sprzed około dwóch dni. Zaplanuj odpowiednio swoje okna raportowania.
- Dane są aktualizowane codziennie, z 48-godzinnym opóźnieniem przetwarzania
- Dane historyczne są dostępne od dnia pierwszej publikacji Twojej aplikacji
- Wskaźniki są obliczane w strefie czasowej UTC
- Dane możesz wyeksportować z panelu Stripe do pliku CSV i przeanalizować je zewnętrznie
Dostęp do analityki przez API
Do danych analitycznych aplikacji możesz sięgnąć programistycznie, korzystając z Stripe Reporting API:
Dane o instalacjach
# 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"Wyświetlenia wizytówki
# 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"Dostęp programistyczny (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;};Zakładka Users
Zakładka Users w analityce Twojej aplikacji pokazuje dane na poziomie pojedynczych kont:
| Kolumna | Opis |
|---|---|
| Account ID | Konto Stripe, na którym zainstalowano Twoją aplikację |
| Install Date | Kiedy aplikacja została zainstalowana |
| Status | Aktywna lub odinstalowana |
| Uninstall Date | Kiedy aplikacja została odinstalowana (jeśli dotyczy) |
Wykorzystaj te dane, aby:
- Śledzić status aktywacji poszczególnych kont
- Kontaktować się z kontami, które zainstalowały aplikację, ale nie ukończyły onboardingu
- Wskazywać konta, które odinstalowały aplikację, i rozumieć przyczyny rezygnacji
- Zestawiać dane o instalacjach z analityką własnej platformy
Własna analityka z użyciem webhooków
Aby uzyskać analitykę w czasie rzeczywistym i głębsze wnioski, skonfiguruj webhooki śledzące zdarzenia aplikacji:
Zdarzenia webhooków
Nasłuchuj tych zdarzeń, aby zbudować własną analitykę:
| Zdarzenie | Opis |
|---|---|
account.application.authorized | Użytkownik zainstalował Twoją aplikację |
account.application.deauthorized | Użytkownik odinstalował Twoją aplikację |
Obsługa webhooka
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
W przypadku platform Connect użyj Connect List API, aby pobrać informacje o kontach z zainstalowaną Twoją aplikacją:
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;};Budowa własnego panelu analitycznego
Połącz analitykę Stripe z własnymi danymi, aby uzyskać pełny obraz:
// 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, };};Kluczowe wskaźniki do śledzenia
W przypadku integracji Tajo z Brevo skup się na tych wskaźnikach:
| Wskaźnik | Cel | Dlaczego to ważne |
|---|---|---|
| Konwersja z instalacji na aktywację | > 70% | Procent instalujących, którzy kończą konfigurację Brevo |
| Czas do pierwszej synchronizacji | < 5 minut | Jak szybko użytkownicy dostrzegają wartość po instalacji |
| Retencja 30-dniowa | > 80% | Procent użytkowników wciąż aktywnych po 30 dniach |
| Miesięczny współczynnik rezygnacji | < 5% | Wartościowa integracja utrzymuje odinstalowania na niskim poziomie |
| Współczynnik konwersji wizytówki | > 15% | Procent osób oglądających wizytówkę, które instalują aplikację |
| Zsynchronizowani klienci na konto | > 100 | Pokazuje, jak głęboko wykorzystywana jest integracja |
Tip
Skonfiguruj automatyczne alerty dla istotnych zmian wskaźników. Nagły skok odinstalowań lub spadek współczynnika aktywacji może oznaczać błąd albo problem z UX, który wymaga natychmiastowej reakcji.