Performance Overview
Live data from S3 · cross-channel
Daily Performance
Channel Mix
Day-of-Week Performance
Which days drive results. Cells colored by relative performance within each metric (darker = stronger).
Report Highlights
Positive-leaning takeaways from this period's data.
How we measure conversions
Conversion counts here reflect net-new customers only — repeat purchases from existing customers within our attribution window are excluded. This measures true incremental value, not just gross transactions.
Why our conversion numbers may look lower than platform-reported (e.g. Google Ads, Meta Ads Manager): Ad platforms count every attributed purchase, including repeat buys from existing customers. That inflates the number but doesn't reflect the incremental business the ad campaign actually drove.
What "net-new customer" means: A conversion is counted only when the buyer has no prior purchase history with the dispensary within the lookback window. Same-customer repeat purchases within the window count as one conversion.
Attribution window: 7-day click, 1-day view (industry-standard for programmatic display). Meta uses whatever attribution setting was configured on the ad set (visible in the Meta upload preview).
Conversion value: Sums the transaction values (basket size) attributed to each net-new conversion. Used for ROAS = Conv Value ÷ Spend.
Bottom line: our numbers show what your ad spend actually earned in new customer revenue, not what a platform's default reporting shows. If you're comparing to a platform's dashboard and see different numbers, this is why.
Activity log
Recent changes and data refreshes on this account.
Spend Projector
What would additional investment generate? Based on current per-channel performance.
CTV
Publisher Performance
— publishers with active spend
Strategy Details
— strategiesPlacement Details
— placementsCreative Performance
| Creative | Size | Impr. | Clicks | CTR | Conv. | Spend |
|---|
Geographic Performance
Circle size = impressions. Color intensity = conversions. Hover for details.
Display
Publisher Performance
— publishers with active spend
Strategy Details
— strategiesPlacement Details
— placementsCreative Performance
| Creative | Size | Impr. | Clicks | CTR | Conv. | Spend |
|---|
Geographic Performance
Circle size = impressions. Color intensity = conversions. Hover for details.
Pre-roll Video
Publisher Performance
— publishers with active spend
Strategy Details
— strategiesPlacement Details
— placementsCreative Performance
| Creative | Size | Impr. | Clicks | CTR | Conv. | Spend |
|---|
Geographic Performance
Circle size = impressions. Color intensity = conversions. Hover for details.
Audio
Publisher / Station Performance
— stations with active spend
Strategy Details
— strategiesPlacement Details
— placementsCreative Performance
| Creative | Length | Impr. | Clicks | CTR | Conv. | Spend |
|---|
Geographic Performance
Circle size = impressions. Color intensity = conversions. Hover for details.
DOOH
Screen Network Performance
— screen networks with active spend
Strategy Details
— strategiesPlacement Details
— placementsCreative Performance
| Creative | Size | Impr. | Clicks | CTR | Conv. | Spend |
|---|
Geographic Performance
Circle size = impressions. Color intensity = conversions. Hover for details.
Meta
Paid social campaigns · Facebook + Instagram.
Daily Performance
Engagement
Ad Set Performance
— ad sets in this period
Channel Comparison
All channels side-by-side for the selected period.
| Channel | Impressions | Reach | Frequency | Clicks | CTR | Conversions | Conv. Value | CPA | ROAS | Spend |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading channel comparison… | ||||||||||
| Total | ||||||||||
Spend Share
Efficiency (Lower CPA = better)
Meta spend includes agency markup. Programmatic spend is impressions × client CPM. Reach values are per-channel and can't be summed across channels (users are counted in each channel they see).
Clients
— · S3 bucket: gold-standard-advertising
| Client | Status | CTV / Display CPM | Meta CPM | S3 Folder | Created | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Add New Client
Create a new client account, user login, and CPM rates. The S3 folder will be created automatically.
The client will use this to log in. Letters, numbers, dots, dashes, @, +. Doesn't have to be an email.
Share this with the client. They can change it after first login.
Used as a recovery contact and to log in as an alternative to username. Leave blank if you don't have one.
This creates a user account with the "Client" role. They'll only see their own data when they log in.
Users
— · Admin, Team, and Client logins
| Display name | Username | Role | Scope | Status | Last login | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Add User
Create a new login.
3-40 chars: letters, numbers, dots, dashes, underscores
Set an initial password. The user can change it after first login.
CPM Rate Card
Every client × channel needs an explicit rate. Spend = (impressions ÷ 1000) × CPM, computed per day against whichever rate was active. Click any cell to update or schedule a rate change. Historical periods stay frozen against historical rates.
Active CPMs
Showing the rate active today for each (client × channel). Margin vs. wholesale shown in green/red. ● indicates a scheduled future change.
| Client | CTV | Display | Pre-roll | Audio | DOOH | Meta | Status |
|---|
S3 Sync
Manually trigger ingest jobs or view recent runs. Each run loops through all 21 clients one at a time.
Sync current month
Pulls the latest data for the current calendar month across all clients. Use this for an ad-hoc refresh between scheduled runs.
Backfill historical month
Pull a specific past month for all clients. Earliest available data is October 2025.
Wipes any existing data for that month per client before re-ingesting, so safe to re-run.
Sync log
No sync run in this session. Click a button above to start.
Meta Upload
Upload Meta Ads Manager CSV exports. Spend is marked up by your agency markup factor (default 1.50× / 50%) at display time.
Markup Settings
Per-client markup applied to Meta spend at display time. Default is 1.50 (50% markup). Change to 2.00 for 100%, 1.15 for 15%, etc.
Changes take effect on the chosen date and apply to all Meta spend on/after that date. Existing data isn't modified — the markup is applied at query time.
Upload CSV
Drop CSV here or click to browse
No file selected
Required export columns: Reporting starts, Reporting ends, Ad set name, Results, Result indicator, Amount spent (USD), Impressions, Reach. Use Ads Manager → Export → Breakdowns → Time → By Day.
How to export from Meta
- Open Ads Manager → Reports
- Select date range and ad sets
- Breakdowns → Time → By Day
- Include columns: Link clicks, Frequency, Landing page views, Instagram profile visits, Instagram follows, Facebook likes
- Export → CSV
Preview
| Ad Set | Result Indicator | Days | Impr. | Results | Spend (raw) | Counts as Conversion? |
|---|