🛡️ ExoClick Dashboard

Campaign Analytics - Live Stats + Revenue + Zone Control

{{ error }}
⏳ Loading live data...
{{ formatNumber(filteredImpressions) }}
Impressions
{{ formatNumber(filteredClicks) }}
Clicks
{{ formatMoney(filteredCost) }}
Spend
{{ formatMoney(rev || 0) }}
Revenue
{{ roi }}%
ROI

🎯 Campaigns

{{ filteredCampaigns.length }} of {{ allCampaigns.length }} campaigns • Last update: {{ lastUpdate }}
Campaign Impressions Clicks Cost Revenue Conversions Rev/Conv RPM CPM ROI Zones
{{ formatNumber(camp.impressions) }} {{ formatNumber(camp.clicks) }} {{ formatMoney(camp.cost) }} {{ formatMoney(getRevenue(camp)) }} {{ formatNumber(getConversions(camp)) }} {{ formatMoney(getRevenuePerConversion(camp)) }} {{ formatMoney(getRPM(camp)) }} {{ formatMoney(getCPM(camp)) }} {{ getROI(camp).toFixed(1) }}%
No campaigns match "{{ filterText }}" No campaigns found

Edit Campaign Bid

{{ selectedCampaignName }}

Loading campaign details...
{{ bidError }}

Current bid: {{ currentBidPrice ? formatMoney(currentBidPrice / 100) : 'N/A' }}

Campaign Details

{{ selectedCampaignName }}

Loading category data...

Error loading categories:

{{ categoryError }}

{{ categoryError }}

No category data available for this campaign

Total Impressions
{{ formatNumber(categoryTotals.hits || categoryTotals.impressions || 0) }}
Total Clicks
{{ formatNumber(categoryTotals.clicks || 0) }}
Total Cost
{{ formatMoney(categoryTotals.cost || 0) }}
Total Revenue
{{ formatMoney(categoryTotals.revenue || 0) }}
Category {{ categorySortDir === 'asc' ? '↑' : '↓' }} Category ID Impressions {{ categorySortDir === 'asc' ? '↑' : '↓' }} Clicks {{ categorySortDir === 'asc' ? '↑' : '↓' }} Cost {{ categorySortDir === 'asc' ? '↑' : '↓' }} Revenue {{ categorySortDir === 'asc' ? '↑' : '↓' }} RPM {{ categorySortDir === 'asc' ? '↑' : '↓' }} CTR {{ categorySortDir === 'asc' ? '↑' : '↓' }} CPM {{ categorySortDir === 'asc' ? '↑' : '↓' }} ROI {{ categorySortDir === 'asc' ? '↑' : '↓' }}
{{ category.category_name || `Category ${category.idcategory}` }} {{ category.idcategory }} {{ formatNumber(category.hits || category.impressions || 0) }} {{ formatNumber(category.clicks) }} {{ formatMoney(category.cost) }} {{ formatMoney(getCategoryRevenue(category)) }} {{ formatMoney(getCategoryRPM(category)) }} {{ (category.ctr || 0).toFixed(2) }}% {{ formatMoney(category.cpm) }} {{ getCategoryROI(category).toFixed(1) }}%
Variation data coming soon...
Loading zone data...
{{ zoneError }}
No zone data available for this campaign
Total Revenue
{{ formatMoney(zoneTotals.goals.revenue || 0) }}
Total Cost
{{ formatMoney(zoneTotals.goals.cost || 0) }}
Total Conversions
{{ formatNumber(zoneTotals.goals.total || 0) }}
Total ROI
{{ getZoneTotalROI().toFixed(1) }}%
Zone ID {{ zoneSortDir === 'asc' ? '↑' : '↓' }} Zone Name {{ zoneSortDir === 'asc' ? '↑' : '↓' }} Site Name {{ zoneSortDir === 'asc' ? '↑' : '↓' }} Impressions {{ zoneSortDir === 'asc' ? '↑' : '↓' }} Clicks {{ zoneSortDir === 'asc' ? '↑' : '↓' }} Cost {{ zoneSortDir === 'asc' ? '↑' : '↓' }} Revenue {{ zoneSortDir === 'asc' ? '↑' : '↓' }} ROI {{ zoneSortDir === 'asc' ? '↑' : '↓' }}
{{ zone.idzone || 'N/A' }} {{ zone.zone_name || 'Unknown Zone' }} {{ zone.site_name || '-' }} {{ formatNumber(zone.impressions) }} {{ formatNumber(zone.clicks) }} {{ formatMoney(zone.cost) }} {{ formatMoney(getZoneRevenue(zone)) }} {{ getZoneROI(zone).toFixed(1) }}%