Analyze Programmatic Advertising Data from DSP Exports
When you analyze programmatic advertising data, you reconcile delivery against flight dates, compare performance across supply sources, and explain discrepancies between billed impressions and reported conversions. DSP platforms export campaign data with dozens of columns showing impressions, clicks, spend, and exchange-level breakdowns, and most analyses need you to clean that data before you can answer anything.
You can reconcile multi-platform DSP exports, calculate true performance metrics, and spot delivery issues in minutes instead of hours of manual column mapping and formula writing.
Handling multiple DSP export formats in one analysis
DV360, The Trade Desk, Amazon DSP, and Xandr each export different column names for the same metric. DV360 calls it 'Revenue', Trade Desk calls it 'Media Cost', Xandr calls it 'Booked Revenue'. If you manage campaigns across platforms, you need to rename columns to a common schema before any aggregation, or your totals will be wrong. Map each platform's column names to a standard set—Impressions, Spend, Clicks—then union the files. Store the platform name in a new column so you can filter by DSP later without losing which row came from where.
What you get with Rows
Rows is a spreadsheet that connects to APIs, databases, and files. Plans start at $59/month for ten integrations and 100,000 rows per sheet. You can import DSP exports, write formulas that normalize rate columns and reconcile spend, and share live dashboards with your team. Sign up, connect a data source, and start analyzing.
Drop your file in and ask a question — no account needed.
Upload your spreadsheet.xlsx .xls .csv — free to try, no accountOr start with
What this export contains
| Campaign_ID |
| Line_Item_Name |
| Creative_ID |
| Impressions |
| Clicks |
| Media_Cost |
| Exchange_Name |
| Deal_ID |
| Viewability_Rate |
| Video_Completion_Rate |
| Post_Click_Conversions |
| Post_View_Conversions |
| Flight_Start_Date |
| Flight_End_Date |
Common questions
How do I analyze programmatic advertising data from a DSP export?
Start by normalizing column names if you work with multiple DSPs, since each platform labels the same metric differently. Then reconcile total spend against your invoice, calculate CPM and CTR per line item or exchange, and check delivery pacing against flight dates. Group by the dimension you care about—campaign, exchange, deal, or creative—and sum impressions, clicks, and cost before calculating any rates.
How do I calculate effective CPM across all line items?
Sum the Media_Cost column and divide by total Impressions, then multiply by 1000. If your DSP includes separate fee columns like Platform_Fee or Data_Cost, add those to Media_Cost first so the CPM reflects what you actually paid per thousand impressions.
Why do impressions not match between the DSP report and ad server?
DSPs count a billable impression when the bid wins and the ad is sent; ad servers count when the tag fires on the page. Discrepancies of 2-8% are normal due to latency, user navigation, and ad blocking between those two events. Larger gaps usually mean a tracking tag is broken or firing on the wrong event.
How do I compare performance across private marketplace deals?
Filter rows where Deal_ID is not empty, then group by Deal_ID and sum Impressions, Clicks, and Media_Cost for each. Calculate CPM and CTR per deal. If a deal appears across multiple line items, you need to aggregate at the deal level first before comparing, or you will double-count shared inventory.
What is the difference between post-click and post-view conversions?
Post-click conversions happen after someone clicks your ad; post-view conversions happen after someone sees it but does not click, within a lookback window your DSP sets (usually 24 hours to 30 days). Post-view numbers are always higher and attribution is weaker because many other ads and activities happen in that window.
How do I find which creatives have the best completion rate?
Filter to rows where Video_Completion_Rate is not null, then group by Creative_ID and average the completion rate weighted by impressions. A creative with 50,000 impressions at 70% completion contributes more signal than one with 500 impressions at 80%, so sum (Impressions × Video_Completion_Rate) and divide by total impressions per creative.
Try it with your own file
DataMimi reads the file you actually have — merged cells, headers below row one, totals pasted at the bottom — and shows which rows and columns every number came from.
Ask about your fileMore in Marketing and ad reports
- Analyze SEO Traffic Data from Export File
- Analyze TikTok Ads Report Export in Seconds
- Analyze YouTube Analytics CSV Exports
- HubSpot Report Analyzer: Analyze CRM & Campaign Exports Without Pivot Tables
- AI Tool for Monday.com Data Analysis — Export Board, Upload, Ask Questions Instantly
- AI Tool for Pipedrive Data Analysis — Upload Pipeline Export, Ask Questions Instantly

