![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/.cursor-server/data/User/History/-591b708f/ |
<?php
// Get comprehensive analytics data
$analytics_query = $pdo->prepare("
SELECT
mt.id,
mt.title,
mt.created_at,
mt.price,
COALESCE(plays.play_count, 0) as total_plays,
COALESCE(likes.like_count, 0) as total_likes,
COALESCE(comments.comment_count, 0) as total_comments,
COALESCE(sales.sales_count, 0) as total_sales,
COALESCE(sales.total_revenue, 0) as total_revenue,
COALESCE(views.view_count, 0) as total_views
FROM music_tracks mt
LEFT JOIN (
SELECT track_id, COUNT(*) as play_count
FROM track_plays
GROUP BY track_id
) plays ON mt.id = plays.track_id
LEFT JOIN (
SELECT track_id, COUNT(*) as like_count
FROM track_likes
GROUP BY track_id
) likes ON mt.id = likes.track_id
LEFT JOIN (
SELECT track_id, COUNT(*) as comment_count
FROM track_comments
GROUP BY track_id
) comments ON mt.id = comments.track_id
LEFT JOIN (
SELECT track_id, COUNT(*) as sales_count, SUM(amount) as total_revenue
FROM sales
GROUP BY track_id
) sales ON mt.id = sales.track_id
LEFT JOIN (
SELECT track_id, COUNT(*) as view_count
FROM track_views
GROUP BY track_id
) views ON mt.id = views.track_id
WHERE mt.user_id = ?
AND mt.status = 'complete'
ORDER BY mt.created_at DESC
");
$analytics_query->execute([$user_id]);
$track_analytics = $analytics_query->fetchAll();
// Calculate engagement metrics
$total_engagement = 0;
$total_conversion = 0;
$tracks_with_sales = 0;
foreach ($track_analytics as $track) {
$engagement_rate = $track['total_views'] > 0 ?
(($track['total_plays'] + $track['total_likes'] + $track['total_comments']) / $track['total_views']) * 100 : 0;
$conversion_rate = $track['total_views'] > 0 ?
($track['total_sales'] / $track['total_views']) * 100 : 0;
$total_engagement += $engagement_rate;
$total_conversion += $conversion_rate;
if ($track['total_sales'] > 0) {
$tracks_with_sales++;
}
}
$avg_engagement = count($track_analytics) > 0 ? $total_engagement / count($track_analytics) : 0;
$avg_conversion = count($track_analytics) > 0 ? $total_conversion / count($track_analytics) : 0;
// Get daily stats for the last 30 days
$daily_stats = $pdo->prepare("
SELECT
DATE(created_at) as date,
COUNT(*) as plays
FROM track_plays tp
JOIN music_tracks mt ON tp.track_id = mt.id
WHERE mt.user_id = ?
AND tp.created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY DATE(created_at)
ORDER BY date DESC
");
$daily_stats->execute([$user_id]);
$daily_plays = $daily_stats->fetchAll();
?>
<div class="content-section">
<h2><i class="fas fa-chart-line"></i> Performance Analytics</h2>
<!-- Key Metrics -->
<div class="earnings-breakdown">
<div class="earnings-item">
<div class="earnings-amount"><?= number_format($avg_engagement, 1) ?>%</div>
<div>Average Engagement Rate</div>
</div>
<div class="earnings-item">
<div class="earnings-amount"><?= number_format($avg_conversion, 2) ?>%</div>
<div>Average Conversion Rate</div>
</div>
<div class="earnings-item">
<div class="earnings-amount"><?= $tracks_with_sales ?></div>
<div>Monetized Tracks</div>
</div>
<div class="earnings-item">
<div class="earnings-amount"><?= count($track_analytics) ?></div>
<div>Total Published Tracks</div>
</div>
</div>
<!-- Performance Tips -->
<div style="background: rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 1.5rem; margin: 2rem 0;">
<h3 style="margin-bottom: 1rem;"><i class="fas fa-lightbulb"></i> Performance Tips</h3>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem;">
<div>
<strong style="color: #48bb78;">Boost Engagement</strong>
<ul style="color: #a0aec0; margin-top: 0.5rem; padding-left: 1rem;">
<li>Add compelling track descriptions</li>
<li>Engage with comments on your tracks</li>
<li>Share tracks on social media</li>
</ul>
</div>
<div>
<strong style="color: #4299e1;">Increase Sales</strong>
<ul style="color: #a0aec0; margin-top: 0.5rem; padding-left: 1rem;">
<li>Price competitively ($1-5 range)</li>
<li>Create high-quality previews</li>
<li>Build a consistent brand</li>
</ul>
</div>
<div>
<strong style="color: #ed8936;">Grow Your Audience</strong>
<ul style="color: #a0aec0; margin-top: 0.5rem; padding-left: 1rem;">
<li>Release tracks consistently</li>
<li>Collaborate with other artists</li>
<li>Use trending genres/tags</li>
</ul>
</div>
</div>
</div>
</div>
<!-- Track Performance Table -->
<?php if (!empty($track_analytics)): ?>
<div class="content-section">
<h2><i class="fas fa-table"></i> Track Performance Breakdown</h2>
<div style="overflow-x: auto;">
<table style="width: 100%; border-collapse: collapse;">
<thead>
<tr style="border-bottom: 1px solid rgba(255, 255, 255, 0.1);">
<th style="padding: 1rem; text-align: left; color: #cbd5e0;">Track</th>
<th style="padding: 1rem; text-align: right; color: #cbd5e0;">Views</th>
<th style="padding: 1rem; text-align: right; color: #cbd5e0;">Plays</th>
<th style="padding: 1rem; text-align: right; color: #cbd5e0;">Likes</th>
<th style="padding: 1rem; text-align: right; color: #cbd5e0;">Comments</th>
<th style="padding: 1rem; text-align: right; color: #cbd5e0;">Sales</th>
<th style="padding: 1rem; text-align: right; color: #cbd5e0;">Revenue</th>
<th style="padding: 1rem; text-align: right; color: #cbd5e0;">Engagement</th>
</tr>
</thead>
<tbody>
<?php foreach ($track_analytics as $track): ?>
<?php
$engagement_rate = $track['total_views'] > 0 ?
(($track['total_plays'] + $track['total_likes'] + $track['total_comments']) / $track['total_views']) * 100 : 0;
?>
<tr style="border-bottom: 1px solid rgba(255, 255, 255, 0.05);">
<td style="padding: 1rem;">
<div style="font-weight: 600;"><?= htmlspecialchars($track['title']) ?></div>
<div style="color: #a0aec0; font-size: 0.9rem;">
<?= date('M j, Y', strtotime($track['created_at'])) ?>
</div>
</td>
<td style="padding: 1rem; text-align: right;"><?= number_format($track['total_views']) ?></td>
<td style="padding: 1rem; text-align: right;"><?= number_format($track['total_plays']) ?></td>
<td style="padding: 1rem; text-align: right;"><?= number_format($track['total_likes']) ?></td>
<td style="padding: 1rem; text-align: right;"><?= number_format($track['total_comments']) ?></td>
<td style="padding: 1rem; text-align: right;"><?= number_format($track['total_sales']) ?></td>
<td style="padding: 1rem; text-align: right; color: #48bb78;">
$<?= number_format($track['total_revenue'] * (1 - $commission_rate), 2) ?>
</td>
<td style="padding: 1rem; text-align: right;">
<span style="color: <?= $engagement_rate > 20 ? '#48bb78' : ($engagement_rate > 10 ? '#ed8936' : '#e53e3e') ?>;">
<?= number_format($engagement_rate, 1) ?>%
</span>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
<?php endif; ?>
<!-- Daily Activity Chart -->
<?php if (!empty($daily_plays)): ?>
<div class="content-section">
<h2><i class="fas fa-chart-area"></i> Recent Activity (Last 30 Days)</h2>
<div style="background: rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 2rem;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem;">
<h3>Daily Plays</h3>
<div style="color: #a0aec0;">
Total: <?= number_format(array_sum(array_column($daily_plays, 'plays'))) ?> plays
</div>
</div>
<!-- Simple bar chart -->
<div style="display: flex; align-items: end; gap: 2px; height: 200px;">
<?php
$max_plays = max(array_column($daily_plays, 'plays'));
foreach (array_reverse($daily_plays) as $day):
$height = $max_plays > 0 ? ($day['plays'] / $max_plays) * 180 : 0;
?>
<div style="flex: 1; display: flex; flex-direction: column; align-items: center;">
<div style="
background: linear-gradient(180deg, #667eea, #764ba2);
width: 100%;
height: <?= $height ?>px;
border-radius: 4px 4px 0 0;
min-height: 2px;
margin-bottom: 0.5rem;
position: relative;
" title="<?= $day['plays'] ?> plays on <?= date('M j', strtotime($day['date'])) ?>"></div>
<div style="font-size: 0.7rem; color: #a0aec0; writing-mode: vertical-rl; text-orientation: mixed;">
<?= date('j', strtotime($day['date'])) ?>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
<?php endif; ?>
<!-- Performance Insights -->
<div class="content-section">
<h2><i class="fas fa-brain"></i> Performance Insights</h2>
<div style="display: grid; gap: 1rem;">
<?php if ($avg_engagement > 15): ?>
<div style="background: rgba(72, 187, 120, 0.1); border: 1px solid rgba(72, 187, 120, 0.3); border-radius: 12px; padding: 1rem;">
<h4 style="color: #48bb78; margin-bottom: 0.5rem;">
<i class="fas fa-thumbs-up"></i> Great Engagement!
</h4>
<p style="color: #a0aec0;">Your tracks have an above-average engagement rate of <?= number_format($avg_engagement, 1) ?>%. Keep creating quality content!</p>
</div>
<?php endif; ?>
<?php if ($tracks_with_sales > 0): ?>
<div style="background: rgba(72, 187, 120, 0.1); border: 1px solid rgba(72, 187, 120, 0.3); border-radius: 12px; padding: 1rem;">
<h4 style="color: #48bb78; margin-bottom: 0.5rem;">
<i class="fas fa-dollar-sign"></i> Revenue Generating
</h4>
<p style="color: #a0aec0;"><?= $tracks_with_sales ?> of your tracks are generating sales. Consider applying similar strategies to other tracks.</p>
</div>
<?php endif; ?>
<?php if ($avg_conversion < 1): ?>
<div style="background: rgba(237, 137, 54, 0.1); border: 1px solid rgba(237, 137, 54, 0.3); border-radius: 12px; padding: 1rem;">
<h4 style="color: #ed8936; margin-bottom: 0.5rem;">
<i class="fas fa-chart-line"></i> Conversion Opportunity
</h4>
<p style="color: #a0aec0;">Your conversion rate is <?= number_format($avg_conversion, 2) ?>%. Try optimizing your track pricing and descriptions to increase sales.</p>
</div>
<?php endif; ?>
<?php if (count($track_analytics) < 5): ?>
<div style="background: rgba(66, 153, 225, 0.1); border: 1px solid rgba(66, 153, 225, 0.3); border-radius: 12px; padding: 1rem;">
<h4 style="color: #4299e1; margin-bottom: 0.5rem;">
<i class="fas fa-plus"></i> Grow Your Catalog
</h4>
<p style="color: #a0aec0;">You have <?= count($track_analytics) ?> published tracks. Release more tracks consistently to build your audience and increase sales opportunities.</p>
</div>
<?php endif; ?>
</div>
</div>