An Ads-Editor-style CSV (keyword + RSA rows referencing a not-yet-existing campaign) imports fine in Ads Editor, which prompts to create missing parents. Pasted into the web UI (Tools → Bulk actions → Uploads), every row fails with The entity does not exist for 'Campaign: <name>' — the web parser never implicitly creates parents.
Verified 2026-08-24 by launching a 6-ad-group Search campaign entirely through the web uploader (53/53 rows applied, campaign live):
- One file can mix entity types. Campaign row + ad group rows + keyword rows + RSA rows in a single CSV, applied in one upload; forward references to the campaign created earlier in the same file resolve. No need to split into multiple uploads.
- Column names must come from Google's bulk-upload templates (support.google.com/google-ads/answer/10702525 → xlsx downloads), not guessed:
Action, Campaign status, Campaign, Campaign type, Networks, Budget, Budget type, Bid strategy type, Language, Location, Final URL suffix/ ad group:Action, Campaign, Ad group, Status/ keywords:Keyword, Match Type/ RSA:Ad type=Responsive search ad,Headline 1..15,Description(notDescription 1),Description 2..4,Path 1, Path 2, Final URL. EU political adsis now a required campaign-creation column (EU Reg 2024/900 enforcement; since 2025-09-22 campaign creation is blocked without it). Error isMissing value in "EU political ads". Value:Yes/No. The column is absent from Google's own downloadable campaign template.- Network exclusion syntax:
Networks: Google searchalone creates a Search campaign with search partners AND Display expansion unchecked. - No bulk column for the Maximize Clicks max-CPC bid limit.
Bid strategy type: Maximize clicksworks on Add, but the cap (Set a maximum cost per click bid limit) exists only in the campaign-settings UI — the template's only cap column isMax CPC Bid Limit for Target IS(Target Impression Share only). Set the cap by hand after import. - Practical flow: create everything
Campaign status: Pausedin the CSV, then verify settings/negatives/URLs in the UI and flip to Enabled as the last act.