Google Ads CSV Normalizer
Google Ads report exports change their column names depending on whether you export from Google Ads Editor, the web UI, a scheduled report, or a different account locale. 'Campaign' becomes 'Campaign name', 'Impr.' becomes 'Impressions', 'Avg. CPC' becomes just 'CPC', and costs show up prefixed like "$12.34" or "€12,34". This tool auto-detects those header variants, normalizes currency and thousands-separator formats, and remaps everything onto one stable schema (Campaign, AdGroup, Keyword, MatchType, Clicks, Impressions, Cost, Conversions, CTR, CPC), so your downstream spreadsheets, dashboards, and scripts don't have to special-case each export format. Unrecognized columns stay visible with a dropdown so you can map them manually. It all runs in your browser, so your account data stays on your device.
Reviewed by Vincenzo Manto, Founder & Lead Developer · Last updated September 27, 2026
How it works
- 1
Paste your Google Ads Editor or Google Ads UI CSV export, or upload the .csv file.
- 2
Review the auto-detected column mapping: each source column is matched to a target field like Campaign, Cost, or CTR.
- 3
Override any guess with the dropdown, including columns the tool didn't recognize (set them to a field or leave as 'ignore').
- 4
Copy or download the normalized CSV with clean headers and consistent number formatting.
Why Google Ads CSV column names keep changing
Google Ads has multiple export paths: Google Ads Editor, the reporting UI, scheduled email reports, and the Ads API via Sheets add-ons. Each can produce slightly different headers, abbreviations, and locale-specific labels ('Impr.' instead of 'Impressions', or German, French, or Italian labels entirely). If you're stitching together historical reports or combining exports from multiple team members, that inconsistency breaks any script or pivot table that expects fixed column names.
One schema for every export
Instead of hand-editing headers every time, this tool auto-matches known variants to a fixed schema (Campaign, AdGroup, Keyword, MatchType, Clicks, Impressions, Cost, Conversions, CTR, CPC) and normalizes currency and percentage formatting along the way, so a CSV pulled today and one pulled six months ago from a different locale land in the exact same shape.
Frequently asked questions
Why do my Google Ads CSV exports have different column names each time?
Google Ads names columns differently depending on the export source (Editor vs. the web UI vs. a scheduled report email) and your account's display language, so 'Campaign' can appear as 'Campaign name' and 'Avg. CPC' as just 'CPC'. This tool recognizes the common variants automatically.
Does it convert currency values like "$12.34" or "€12,34" correctly?
Yes. It detects whether a comma or a period is being used as the decimal separator versus a thousands separator (European vs. US formatting) and normalizes every cost and CPC value to a plain decimal number.
What happens to columns it doesn't recognize?
They stay listed in the mapping table with a dropdown defaulted to 'ignore'. You can manually assign any of them to a target field (Campaign, Clicks, Cost, etc.) if the auto-detection missed it.
Is my campaign data uploaded anywhere?
No. Parsing and remapping happen entirely in your browser using JavaScript. Your CSV never leaves your device.
Does this replace the Google Ads API or scripts?
No, it's a one-off cleanup tool for CSV exports you already have, useful when combining reports pulled at different times or from different team members' export settings.