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.
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. Solid = city-precise, dashed = state-level fallback. 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. Solid = city-precise, dashed = state-level fallback. 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. Solid = city-precise, dashed = state-level fallback. 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. Solid = city-precise, dashed = state-level fallback. 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. Solid = city-precise, dashed = state-level fallback. 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. Runs go one client at a time, one week of data per request.
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
Re-pull a past month from S3 for one client or all of them. Earliest available data is October 2025.
Each day in the month is replaced with what the file in S3 says for that day, so it's 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? |
|---|
Store Visits Upload
Upload foot-traffic attribution CSVs from Surfside. One visit = one person who saw an ad and later walked into the store.