تحليلات التطبيق
يوفر Stripe تحليلات مدمجة لتطبيقات المتجر المنشورة، مما يمنحك رؤية واضحة حول عمليات التثبيت وأداء القائمة وتفاعل المستخدمين. يمكنك أيضًا بناء تحليلات مخصصة باستخدام webhooks و Stripe API.
التقارير المتاحة
توفر لوحة تحكم Stripe التحليلات التالية لتطبيقك المنشور:
مقاييس التثبيت
| المقياس | الوصف |
|---|---|
| عمليات التثبيت | إجمالي عدد عمليات تثبيت التطبيق الجديدة في الفترة المحددة |
| عمليات إلغاء التثبيت | إجمالي عدد عمليات إلغاء تثبيت التطبيق في الفترة المحددة |
| صافي التثبيت التراكمي | الإجمالي التراكمي لعمليات التثبيت مطروحًا منها عمليات إلغاء التثبيت بمرور الوقت |
أداء القائمة
| المقياس | الوصف |
|---|---|
| مشاهدات القائمة | إجمالي مشاهدات صفحة قائمة تطبيقك في المتجر |
| المشاهدات الفريدة | الزوار الفريدون الذين شاهدوا قائمة تطبيقك في المتجر |
| معدل التحويل الشهري | النسبة المئوية الشهرية لمشاهدي القائمة الذين يثبتون التطبيق |
مقاييس النمو
| المقياس | الوصف |
|---|---|
| معدل النمو الشهري | النمو الشهري في صافي عمليات التثبيت |
| معدل التراجع | النسبة المئوية للمستخدمين المثبتين الذين يلغون التثبيت شهريًا |
حداثة البيانات
Caution
بيانات التحليلات لديها تأخير 48 ساعة. البيانات التي تراها في لوحة التحكم تعكس النشاط منذ يومين تقريبًا. خطط لفترات التقارير وفقًا لذلك.
- يتم تحديث البيانات يوميًا مع تأخير معالجة 48 ساعة
- البيانات التاريخية متاحة من تاريخ نشر تطبيقك لأول مرة
- يتم حساب المقاييس بتوقيت UTC
- تصدير البيانات كملف CSV من لوحة تحكم Stripe للتحليل الخارجي
الوصول إلى التحليلات عبر API
يمكنك الوصول برمجيًا إلى تحليلات التطبيق باستخدام Stripe Reporting API:
بيانات التثبيت
# 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"مشاهدات القائمة
# 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"الوصول البرمجي (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;};علامة تبويب المستخدمين
تعرض علامة تبويب المستخدمين في تحليلات تطبيقك بيانات على مستوى الحساب الفردي:
| العمود | الوصف |
|---|---|
| معرف الحساب | حساب Stripe الذي ثبت تطبيقك |
| تاريخ التثبيت | متى تم تثبيت التطبيق |
| الحالة | نشط أو تم إلغاء التثبيت |
| تاريخ إلغاء التثبيت | متى تم إلغاء تثبيت التطبيق (إن وجد) |
استخدم هذه البيانات لـ:
- تتبع حالة تفعيل الحسابات الفردية
- متابعة الحسابات التي ثبتت ولكن لم تكمل الإعداد
- تحديد الحسابات التي ألغت التثبيت وفهم أسباب التراجع
- ربط بيانات التثبيت مع تحليلات منصتك الخاصة
تحليلات مخصصة باستخدام Webhooks
للحصول على تحليلات في الوقت الفعلي ورؤى أعمق، قم بإعداد webhooks لتتبع أحداث التطبيق:
أحداث Webhook
استمع لهذه الأحداث لبناء تحليلات مخصصة:
| الحدث | الوصف |
|---|---|
account.application.authorized | قام المستخدم بتثبيت تطبيقك |
account.application.deauthorized | قام المستخدم بإلغاء تثبيت تطبيقك |
معالج 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
لمنصات Connect، استخدم Connect List API للحصول على معلومات حول الحسابات التي ثبتت تطبيقك:
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;};بناء لوحة تحليلات مخصصة
ادمج تحليلات Stripe مع بياناتك الخاصة للحصول على رؤية شاملة:
// 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, };};المقاييس الرئيسية للتتبع
لتكامل Tajo مع Brevo، ركز على هذه المقاييس:
| المقياس | الهدف | سبب الأهمية |
|---|---|---|
| معدل التثبيت إلى التفعيل | > 70% | نسبة المثبتين الذين يكملون إعداد Brevo |
| الوقت حتى أول مزامنة | < 5 دقائق | مدى سرعة رؤية المستخدمين للقيمة بعد التثبيت |
| الاحتفاظ لمدة 30 يومًا | > 80% | نسبة المستخدمين النشطين بعد 30 يومًا |
| معدل التراجع الشهري | < 5% | الحفاظ على انخفاض عمليات إلغاء التثبيت بتكامل قيّم |
| معدل تحويل القائمة | > 15% | نسبة مشاهدي القائمة الذين يثبتون |
| العملاء المتزامنون لكل حساب | > 100 | يشير إلى عمق استخدام التكامل |
Tip
قم بإعداد تنبيهات آلية للتغييرات الكبيرة في المقاييس. قد تشير الزيادة المفاجئة في عمليات إلغاء التثبيت أو انخفاض معدل التفعيل إلى خطأ أو مشكلة في تجربة المستخدم تحتاج إلى اهتمام فوري.