Filters
Key Performance Indicators
Charts
ROAS by Channel
No matching data for this chart.
Revenue by Campaign
No matching data for this chart.
Revenue by Date
No matching data for this chart.
Campaign and Channel Performance
Scrollable table: focus it and use the arrow keys to scroll sideways.
| Campaign | Channel | Impressions | Clicks | Spend (AED) | Conversions | Revenue (AED) | CTR | Conv. Rate | CPC (AED) | CPA (AED) | ROAS |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||||
Analysis Questions and Answers
Loading questions…
Data Method
This dashboard reads two published, read-only Google Sheets CSV exports (campaign performance data and analysis questions). No database, server, paid API, API key, or build step is used. All charts and numbers are generated in the browser with plain JavaScript.
Every metric is calculated from aggregated totals for the currently filtered rows, not by averaging row-level rates. The formulas are:
- CTR = Total Clicks ÷ Total Impressions
- Conversion Rate = Total Conversions ÷ Total Clicks
- CPC = Total Spend ÷ Total Clicks
- CPA = Total Spend ÷ Total Conversions
- ROAS = Total Revenue ÷ Total Spend
Whenever a denominator is zero (for example, zero clicks or zero spend), the metric is shown as N/A instead of an invalid number such as Infinity or NaN. When a filter combination matches no rows, the dashboard shows a "No matching data" message instead of misleading zero values.
Data refreshes automatically every 60 seconds, and a "Refresh Now" button is available for an immediate reload. Each request adds a changing timestamp parameter so the browser does not reuse a cached response.