App-analyse
Stripe biedt ingebouwde analyses voor gepubliceerde marketplace-apps, waarmee je zicht krijgt op installaties, de prestaties van je listing en de betrokkenheid van gebruikers. Je kunt ook je eigen analyses bouwen met webhooks en de Stripe API.
Beschikbare rapporten
Het Stripe-dashboard biedt de volgende analyses voor je gepubliceerde app:
Installatiestatistieken
| Statistiek | Omschrijving |
|---|---|
| Installaties | Totaal aantal nieuwe app-installaties in de geselecteerde periode |
| Verwijderingen | Totaal aantal keren dat de app is verwijderd in de geselecteerde periode |
| Cumulatieve netto-installaties | Doorlopend totaal van installaties min verwijderingen in de tijd |
Prestaties van de listing
| Statistiek | Omschrijving |
|---|---|
| Weergaven van de listing | Totaal aantal paginaweergaven van de marketplace-listing van je app |
| Unieke weergaven | Unieke bezoekers die je marketplace-listing hebben bekeken |
| MoM-conversiepercentage | Percentage bezoekers van je listing dat de app installeert, maand op maand |
Groeistatistieken
| Statistiek | Omschrijving |
|---|---|
| MoM-groeipercentage | Groei van de netto-installaties, maand op maand |
| Churnpercentage | Percentage gebruikers met een installatie dat de app per maand verwijdert |
Actualiteit van de gegevens
Caution
Analysegegevens hebben een vertraging van 48 uur. Wat je in het dashboard ziet, weerspiegelt activiteit van ongeveer twee dagen geleden. Houd daar rekening mee bij het plannen van je rapportageperiodes.
- Gegevens worden dagelijks bijgewerkt met 48 uur verwerkingsvertraging
- Historische gegevens zijn beschikbaar vanaf de datum waarop je app voor het eerst is gepubliceerd
- Statistieken worden berekend in de tijdzone UTC
- Exporteer gegevens als CSV vanuit het Stripe-dashboard voor externe analyse
Analyses opvragen via de API
Je kunt de analyses van je app programmatisch opvragen met de Stripe Reporting API:
Installatiegegevens
# 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"Weergaven van de listing
# 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"Programmatische toegang (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;};Tabblad Gebruikers
Het tabblad Gebruikers in de analyses van je app toont gegevens per afzonderlijk account:
| Kolom | Omschrijving |
|---|---|
| Account ID | Het Stripe-account dat je app heeft geïnstalleerd |
| Installatiedatum | Wanneer de app is geïnstalleerd |
| Status | Actief of verwijderd |
| Verwijderingsdatum | Wanneer de app is verwijderd (indien van toepassing) |
Gebruik deze gegevens om:
- De activeringsstatus van afzonderlijke accounts te volgen
- Accounts op te volgen die de app hebben geïnstalleerd maar de onboarding niet hebben afgerond
- Accounts te herkennen die de app hebben verwijderd en de redenen achter churn te begrijpen
- Installatiegegevens te koppelen aan de analyses van je eigen platform
Eigen analyses met webhooks
Stel webhooks in om app-gebeurtenissen te volgen, voor realtime analyses en diepere inzichten:
Webhookgebeurtenissen
Luister naar deze gebeurtenissen om je eigen analyses op te bouwen:
| Gebeurtenis | Omschrijving |
|---|---|
account.application.authorized | Gebruiker heeft je app geïnstalleerd |
account.application.deauthorized | Gebruiker heeft je app verwijderd |
Webhookhandler
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
Gebruik voor Connect-platforms de Connect List API om informatie op te halen over accounts waarop je app is geïnstalleerd:
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;};Een eigen analysedashboard bouwen
Combineer de analyses van Stripe met je eigen gegevens voor een volledig beeld:
// 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, };};Belangrijkste statistieken om te volgen
Richt je voor de Brevo-integratie van Tajo op deze statistieken:
| Statistiek | Streefwaarde | Waarom het uitmaakt |
|---|---|---|
| Installatie-naar-activatiepercentage | > 70% | Percentage installateurs dat de Brevo-configuratie afrondt |
| Tijd tot eerste synchronisatie | < 5 minuten | Hoe snel gebruikers waarde zien na de installatie |
| Retentie na 30 dagen | > 80% | Percentage gebruikers dat na 30 dagen nog actief is |
| Maandelijks churnpercentage | < 5% | Houd verwijderingen laag met een waardevolle integratie |
| Conversiepercentage van de listing | > 15% | Percentage bezoekers van je listing dat installeert |
| Gesynchroniseerde klanten per account | > 100 | Laat zien hoe diep de integratie wordt gebruikt |
Tip
Stel automatische meldingen in voor opvallende veranderingen in je statistieken. Een plotselinge piek in verwijderingen of een daling van het activatiepercentage kan wijzen op een bug of een UX-probleem dat direct aandacht nodig heeft.