Google Ads report to dashboard
Your Google Ads report, minus the two title rows.
Download a campaign report from Google Ads, drop the CSV here, and the dashboard starts by throwing away the parts that are not data: the two title rows above the header and the Total row at the bottom. After that, CTR and impression share are parsed out of their percent strings, the double dash placeholder is read as empty rather than as text, and cost, clicks and conversions become a real time series.
Prefer the full explorer? Open the app, or start from the generic dashboard builder.
The header is not on line one, and the last row is not a campaign
A Google Ads CSV download does not begin with column names. It begins with a report title, then a line describing the date range, and only then the header. Anything that assumes line one is the header reads Campaign report as a single column and gives you one useless field with ninety-eight values in it. Then, at the very bottom, there is a Total row with a blank Day and a blank Campaign, which looks like just another record until you notice your spend has exactly doubled.
Between those two ends, the file is full of small formatting decisions that make sense in a spreadsheet and break everywhere else. CTR arrives as 3.42%, a string. Avg. CPC arrives with a currency symbol in most locales. Anything Google cannot compute is written as a double dash rather than left blank, so a column of numbers is quietly a column of text the moment one campaign has no conversions. This page handles all of it before drawing a single chart.
How to export from Google Ads
- Open the Campaigns view Sign in at ads.google.com and select Campaigns in the left navigation. Check the account selector at the top first, because a manager account exports whichever child account is currently active rather than all of them.
- Set the date range and the segment Pick the period from the date control at the top right, then open Segment and choose Day. Without that segment you get one summary row per campaign and no time axis at all, which makes the trend chart impossible.
- Add the columns you actually need Use Columns, then Modify columns. Conversions, Conv. value, Cost / conv. and Search impr. share are not all on by default. Save the set as a custom column layout so the next export matches this one.
- Download as CSV The download icon sits above the table on the right. Choose .csv rather than Excel .csv, since the Excel variant adds formatting that some parsers choke on. Leave the summary row option alone; this page removes it either way.
- Drop the file on this page The preamble is skipped, the Total row goes, percent strings turn into numbers, and Campaign type becomes the first breakdown chip you can click.
Reports scheduled from the Reports section arrive by email with the same shape, including the title rows. If you pull the same numbers through the Google Ads API instead, the values come back unformatted and micros-based, which is a different problem entirely.
Try with sample Google Ads data (the same columns, 98 rows, no upload needed).
What the dashboard shows
Every panel below is built from a column that is actually in the export, named the way Google Ads names it.
- Cost and clicks over time. Day becomes the axis, with cost as bars and clicks as a line, which is the fastest way to see a budget change land.
- Campaign type split. Search, Performance Max, Display and Video separated, because their CPCs are not remotely comparable and averaging across them is meaningless.
- Cost per conversion by campaign. Ranked, with campaigns that have zero conversions kept visible rather than hidden by a division error.
- Return on ad spend. Conv. value / cost read directly rather than recomputed, so it matches what the interface showed you.
- Search impression share. Parsed out of the percent string and charted against cost, which is where the argument for more budget usually lives.
- Paused against enabled. Campaign state as a filter, so a quarter is not dragged down by campaigns that were switched off in week two.
Day,Campaign,Campaign type,Campaign state,Impr.,Clicks,CTR,Avg. CPC,Cost,Conversions,Conv. rate,Cost / conv.,Conv. value,Conv. value / cost,Search impr. share,Avg. position
Six things in a Google Ads download that will cost you an hour
- Two title rows sit above the header. A report name and a date range line, both before the column names. Every generic CSV reader gets this wrong and produces a single-column table.
- There is a Total row at the bottom. Blank Day, blank Campaign, and every metric summed. Leave it in and your spend doubles, your CTR is an average of averages, and nothing reconciles.
- Undefined values are a double dash. Google writes two hyphens where a metric does not apply, such as Search impr. share on a Display campaign. It is text, so the whole column becomes text.
- Impr. is abbreviated in the header. So are Conv. rate and Cost / conv. The header has spaces, periods and a slash in it, which breaks column matching in anything expecting clean identifiers.
- Conversions can be fractional. Conversion modeling and fractional attribution mean a campaign can genuinely have 3.7 conversions. It is not a rounding bug and you should not round it away.
- Percent columns are strings. CTR, Conv. rate and Search impr. share carry a trailing sign, and impression share sometimes reads as a bounded string like less than ten percent rather than a number at all.
Strip the preamble, drop the Total row, and stop treating the double dash as data. Do those three and a Google Ads export becomes what it should have been all along, which is a clean daily table of spend against outcome.
Frequently asked questions
Why does my Google Ads CSV open as one column?
Because the header is not on the first line. Google writes the report name and the date range above it, so a parser that assumes line one holds the column names reads a title instead and collapses everything. This page looks for the line that actually contains the expected field names and starts there. In a spreadsheet you would delete the first two rows by hand before importing.
What does the double dash in my report mean?
It is Google's placeholder for a value that does not exist or does not apply, such as impression share on a campaign type that has none. It is two hyphen characters, not a number and not a blank cell, which means one of them turns an entire numeric column into text. The dashboard reads the double dash as missing so the column stays numeric and the chart still draws.
Should I keep the Total row?
No. It is a summary, not a record, and it has a blank Day and a blank Campaign so it slips past most filters. Included in a sum it doubles your spend and clicks. Included in an average it drags every rate toward the account blend. This page detects it by the empty dimension fields and excludes it from every calculation while still letting you see it as a reconciliation check.
Why are my conversions not whole numbers?
Google Ads uses modeled and fractionally attributed conversions, so a single sale credited across three touchpoints contributes a fraction to each. A campaign showing 3.7 conversions really did contribute 3.7 by Google's attribution model. Rounding them makes small campaigns look like they produced nothing, and summing the rounded figures will not match the account total shown in the interface.
Can I compare Search and Performance Max in one chart?
You can put them side by side, but do not average across them. Performance Max spans several inventory types with very different auction dynamics, so its CPC and CTR sit in a different range from Search. Group by Campaign type first, then compare within a type. The dashboard keeps that split as a chip so every other panel cross-filters when you click one.
Does this work for a manager account with many clients?
One account at a time, because that is how the export works. Google Ads downloads whichever account is currently selected, so a manager account gives you one file per client. Merge them first if you want a portfolio view, and add a column naming the account before you do, since nothing in the file itself identifies which client it came from.
Related tools
See a Google Ads dashboard before you touch a spreadsheet
98 campaign days with the real column names, double dash placeholders, percent strings and a Total row at the bottom. Exactly the file you get from the interface.
Open the sample Google Ads dashboard