تحليلات التطبيق

يوفر Stripe تحليلات مدمجة لتطبيقات المتجر المنشورة، مما يمنحك رؤية واضحة حول عمليات التثبيت وأداء القائمة وتفاعل المستخدمين. يمكنك أيضًا بناء تحليلات مخصصة باستخدام webhooks و Stripe API.

التقارير المتاحة

توفر لوحة تحكم Stripe التحليلات التالية لتطبيقك المنشور:

مقاييس التثبيت

المقياسالوصف
عمليات التثبيتإجمالي عدد عمليات تثبيت التطبيق الجديدة في الفترة المحددة
عمليات إلغاء التثبيتإجمالي عدد عمليات إلغاء تثبيت التطبيق في الفترة المحددة
صافي التثبيت التراكميالإجمالي التراكمي لعمليات التثبيت مطروحًا منها عمليات إلغاء التثبيت بمرور الوقت

أداء القائمة

المقياسالوصف
مشاهدات القائمةإجمالي مشاهدات صفحة قائمة تطبيقك في المتجر
المشاهدات الفريدةالزوار الفريدون الذين شاهدوا قائمة تطبيقك في المتجر
معدل التحويل الشهريالنسبة المئوية الشهرية لمشاهدي القائمة الذين يثبتون التطبيق

مقاييس النمو

المقياسالوصف
معدل النمو الشهريالنمو الشهري في صافي عمليات التثبيت
معدل التراجعالنسبة المئوية للمستخدمين المثبتين الذين يلغون التثبيت شهريًا

حداثة البيانات

Caution

بيانات التحليلات لديها تأخير 48 ساعة. البيانات التي تراها في لوحة التحكم تعكس النشاط منذ يومين تقريبًا. خطط لفترات التقارير وفقًا لذلك.

  • يتم تحديث البيانات يوميًا مع تأخير معالجة 48 ساعة
  • البيانات التاريخية متاحة من تاريخ نشر تطبيقك لأول مرة
  • يتم حساب المقاييس بتوقيت UTC
  • تصدير البيانات كملف CSV من لوحة تحكم Stripe للتحليل الخارجي

الوصول إلى التحليلات عبر API

يمكنك الوصول برمجيًا إلى تحليلات التطبيق باستخدام Stripe Reporting API:

بيانات التثبيت

Terminal window
# Fetch app install report
curl 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"

مشاهدات القائمة

Terminal window
# Fetch listing views report
curl 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 installs
const 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 completion
const 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 installed
const 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 reporting
const 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

قم بإعداد تنبيهات آلية للتغييرات الكبيرة في المقاييس. قد تشير الزيادة المفاجئة في عمليات إلغاء التثبيت أو انخفاض معدل التفعيل إلى خطأ أو مشكلة في تجربة المستخدم تحتاج إلى اهتمام فوري.

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

مساعد AI

مرحباً! اسألني أي شيء عن الوثائق.

ابدأ مجانًا مع Brevo