Analitik aplikasi
Stripe menyediakan analitik bawaan untuk aplikasi marketplace yang telah dipublikasikan, sehingga Anda dapat melihat instalasi, performa listing, dan keterlibatan pengguna. Anda juga dapat membangun analitik kustom menggunakan webhook dan API Stripe.
Laporan yang tersedia
Stripe Dashboard menyediakan analitik berikut untuk aplikasi Anda yang telah dipublikasikan:
Metrik instalasi
| Metrik | Deskripsi |
|---|---|
| Instalasi | Jumlah total instalasi aplikasi baru dalam periode yang dipilih |
| Pencopotan | Jumlah total pencopotan aplikasi dalam periode yang dipilih |
| Instalasi bersih kumulatif | Total berjalan dari instalasi dikurangi pencopotan dari waktu ke waktu |
Performa listing
| Metrik | Deskripsi |
|---|---|
| Tampilan listing | Total tampilan halaman listing marketplace aplikasi Anda |
| Tampilan unik | Pengunjung unik yang melihat listing marketplace Anda |
| Tingkat konversi MoM | Persentase bulan ke bulan dari pengunjung listing yang memasang aplikasi |
Metrik pertumbuhan
| Metrik | Deskripsi |
|---|---|
| Laju pertumbuhan MoM | Pertumbuhan bulan ke bulan pada instalasi bersih |
| Tingkat churn | Persentase pengguna terpasang yang mencopot aplikasi per bulan |
Kesegaran data
Caution
Data analitik memiliki jeda 48 jam. Data yang Anda lihat di dashboard mencerminkan aktivitas kira-kira dua hari lalu. Rencanakan jendela pelaporan Anda dengan mempertimbangkan hal ini.
- Data diperbarui setiap hari dengan penundaan pemrosesan 48 jam
- Data historis tersedia sejak tanggal aplikasi Anda pertama kali dipublikasikan
- Metrik dihitung dalam zona waktu UTC
- Ekspor data sebagai CSV dari Stripe Dashboard untuk analisis eksternal
Mengakses analitik melalui API
Anda dapat mengakses analitik aplikasi secara terprogram menggunakan Stripe Reporting API:
Data instalasi
# 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"Tampilan 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"Akses terprogram (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;};Tab Users
Tab Users di analitik aplikasi Anda menampilkan data pada level akun individual:
| Kolom | Deskripsi |
|---|---|
| Account ID | Akun Stripe yang memasang aplikasi Anda |
| Tanggal instalasi | Kapan aplikasi dipasang |
| Status | Aktif atau dicopot |
| Tanggal pencopotan | Kapan aplikasi dicopot (jika ada) |
Gunakan data ini untuk:
- Melacak status aktivasi tiap akun
- Menindaklanjuti akun yang sudah memasang tetapi belum menyelesaikan onboarding
- Mengidentifikasi akun yang mencopot aplikasi dan memahami penyebab churn
- Mengorelasikan data instalasi dengan analitik platform Anda sendiri
Analitik kustom dengan webhook
Untuk analitik real-time dan wawasan yang lebih dalam, siapkan webhook guna melacak event aplikasi:
Event webhook
Dengarkan event berikut untuk membangun analitik kustom:
| Event | Deskripsi |
|---|---|
account.application.authorized | Pengguna memasang aplikasi Anda |
account.application.deauthorized | Pengguna mencopot aplikasi Anda |
Handler 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
Untuk platform Connect, gunakan Connect List API guna memperoleh informasi tentang akun yang telah memasang aplikasi Anda:
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;};Membangun dashboard analitik kustom
Padukan analitik Stripe dengan data Anda sendiri untuk mendapatkan gambaran menyeluruh:
// 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, };};Metrik utama yang perlu dilacak
Untuk integrasi Tajo Brevo, fokuslah pada metrik berikut:
| Metrik | Target | Mengapa penting |
|---|---|---|
| Tingkat instalasi ke aktivasi | > 70% | Persentase pemasang yang menuntaskan penyiapan Brevo |
| Waktu hingga sinkronisasi pertama | < 5 menit | Seberapa cepat pengguna merasakan manfaat setelah memasang |
| Retensi 30 hari | > 80% | Persentase pengguna yang masih aktif setelah 30 hari |
| Tingkat churn bulanan | < 5% | Jaga angka pencopotan tetap rendah dengan integrasi yang bernilai |
| Tingkat konversi listing | > 15% | Persentase pengunjung listing yang memasang aplikasi |
| Pelanggan tersinkronisasi per akun | > 100 | Menunjukkan kedalaman pemakaian integrasi |
Tip
Siapkan peringatan otomatis untuk perubahan metrik yang signifikan. Lonjakan pencopotan atau penurunan tingkat aktivasi yang mendadak bisa menandakan bug atau masalah UX yang perlu segera ditangani.