EBG In-House Performance Marketing Dashboard
A single-page dashboard that compares Meta Ads leads (Leads in UI) with TeleCRM leads for the EBG brands, at brand, campaign, ad set and ad level. Everything runs in the browser: open index.html, load the two exports, and the report builds itself. Nothing is uploaded anywhere.
Brands
Adhira & Appa · Acer · Carlton · Natuf · Tarzan · Shayreen by Natuf · Bonumcha · Chhota Bheem · EBG Rental.
A campaign's brand comes from keywords in its name (e.g. AAC → Adhira & Appa, Shayreen → Shayreen by Natuf, checked before Natuf). Edit brands and keywords under Settings.
Daily use
- Meta Ads Manager → export the ads report (CSV or XLSX) — one per brand or one for everything; add as many as you like and they are combined. Any column order works; the page finds the columns by name:
Campaign name · Ad set name · Ad name · Amount spent (any currency) · Results (or Leads if there is no Results column) · Reporting starts/ends or Day.
Add Breakdown › By time › Day if you want to filter Meta spend and results by date.
- TeleCRM → export leads for the same dates (all columns are fine).
- Open the dashboard → Load exports → drop all Meta reports in the first box and the TeleCRM export in the second. Add or remove Meta files any time; the same file added twice is skipped.
- Pick dates with the date picker (Today, Yesterday, Last 7/14/28/30 days, This/Last week, This/Last month, Maximum or a custom range) and a brand with the chips.
What it shows
| Tab | Contents |
|---|
| Overview | Spend, Leads in UI, Leads in CRM, lead difference, CPL, QLs, CPQL, first-call TAT, SLA %, calls pending; brand summary; charts |
| Campaigns / Ad sets / Ads | Leads in CRM, Leads in UI, difference and %, platform, CPL, QLs, CPQL, spend, TAT, SLA %, pending calls, auto remarks; sortable, searchable, totals follow filters |
| TAT & calls | First-call TAT by owner and the list of leads still to call |
| Data checks | Row reconciliation (rows pasted = in report + left out + outside dates), columns used, unmatched leads |
| QL statuses | Which TeleCRM statuses count as qualified (intent-based, with overrides) |
| Settings | SLA, targets, brands, keywords, counting rules, QL words, column names |
TAT, holidays and reports
- Overall TAT = Created On → First Attempted Call, all hours. Working-hours TAT counts only Mon–Sat, 10:00 AM–9:00 PM IST, skipping Sundays and active holidays; a lead created outside those hours starts counting at the next working interval. Both show average and median wherever TAT appears; Not Contacted leads are counted separately with how long they have been waiting (overall and in working hours). The SLA (≤ 30 min by default, Settings) uses overall TAT.
- Settings › Holidays: add, edit, delete (with confirmation), activate or deactivate, search and filter by year. The 2026 list is pre-loaded once; changes recalculate working-hours TAT straight away and, with the team database, are shared with everyone. Holidays never change overall TAT.
- Contact status labels: Not Contacted (no first call yet), Call delayed (first call after the SLA), Contacted (called).
- Brand view: pick a brand chip for its own dashboard (spend, impressions, reach, clicks, CTR, CPC, Leads in UI and CRM, lead status breakdown, CPL, CPQL, TAT, SLA). Reach is shown only where it comes from a single Meta row, because reach can't be added across days or ads.
- Customize columns on each report (saved in the browser); Excel uses the same columns unless Export all columns is ticked.
- Campaigns tab: Campaign → Ad set → Ad tree with expand / collapse, search that opens matching branches, and sorting within each level. Totals add campaigns only; CTR, CPC and CPL are recalculated from totals. Excel gets a Campaign hierarchy sheet with outline groups.
Personal vs team settings
- Personal (per login, never affects anyone else): table columns (Customize columns) and campaigns left out of / kept in "Leads in UI" (Campaigns page tick boxes, Settings › Brands & campaigns › "Campaigns I leave out"). Saved in this browser per login and in
user_prefs (run supabase/user-prefs.sql once) so they follow you to other devices. Your reports and Excel exports use your view.
- Team (shared): brands, brand rules, lead rules / QL statuses, report targets, leaders, ad accounts, WhatsApp links, holidays, column names. Changes are recorded in History.
- Team default campaigns: used by people who haven't made their own list, and by the Telegram alerts. An admin / editor can set it with "Make my list the team default".
Reports tab (EBG templates)
Sidebar › Reports. Pick a report, brands (empty = all), dates, then Generate. Export Excel downloads exactly what is on screen (same columns, same order, numbers kept as numbers).
| Report | Columns |
|---|
| FTD Brand-wise | Date, Brand Name, Spend, CPL, Leads Target, Leads Achieved, Lead Achievement %, Contacted LQ %, Overall LQ %, TAT (Hrs), New Lead %, Remarks — a day (or From–To range) |
| FTD Leader-wise | Date, Leader Name, Total Spend, Leads Target, Leads Achieved, Lead Achievement %, Contacted LQ %, Overall LQ %, FC TAT (Hrs), New Lead % — a day (or range) |
| MTD Brand-wise | same as FTD Brand-wise, 1st of month → reporting date |
| MTD Leader-wise | same as FTD Leader-wise, 1st of month → reporting date |
| Master (FTD + MTD; also the "expanded MTD" report — one template) | the 22 columns of the Master Report |
Spend of campaigns that match no brand ("Unmapped") is left out of every report (same as the Overview), and the report shows a note with the amount.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗