
Problem: Ein standardmäßiger PMax Launch für einen E-Commerce-Kunden sah bei mir so aus: zwei Stunden in Tabellen, eine weitere Stunde im Google Ads Editor, eine halbe Stunde Fehlerbehebung beim Import. Drei Stunden reine Arbeitszeit für jede neue Kampagne, und bei einem Kunden mit wachsendem Katalog waren das Dutzende Stunden pro Jahr.
Heute habe ich den PMax Editor Import XLSX in 15 Minuten fertig. Vom Briefing bis zur Datei, die für File → Import bereit ist. Drei Jahre Erfahrung mit PMax sagen mir, was in eine Kampagne gehört, aber das Zusammenfügen der atomaren Teile übernimmt ein Skript mit AI-Unterstützung – und das ist ein Unterschied, der es wert ist, näher erläutert zu werden.
Inhalt
1. Warum XLSX-Import trotz UI?
Google Ads UI hat PMax als „Füllen Sie ein paar Felder aus und wir zaubern damit“ konzipiert. Für kleine Kampagnen funktioniert das. In größerem Maßstab (mehr asset groups, Dutzende Headlines, lange Listen von search themes, präzise audience signals) ist das UI langsam, klickintensiv und anfällig für Tippfehler.
Google Ads Editor mit XLSX-Import ist das Gegenteil — minimales UI, maximale Struktur. Was aus dem Spreadsheet kommt, erfolgt schnell, konsistent und kontrollierbar:
- Ganze Kampagne + asset groups + search themes + audience signals + sitelinks in einer Datei
- Diff vor dem Upload — Sie sehen genau, was geschrieben wird, bevor Sie es übertragen
- Versionierung in Git oder Drive, Nachverfolgung, wer was wann geändert hat
- Bulk-Editierung über Kampagnen hinweg — Änderung der Brand Voice in 8 Konten innerhalb von 5 Minuten
- Der Kunde kann direkt im Sheet kommentieren, bevor der Upload erfolgt
Einziger Nachteil: Sie müssen das Format kennen. Der Editor XLSX hat starre Regeln für Spalten, Sheets und die Reihenfolge. Bei den ersten drei Importen werden Sie sich mit Fehlermeldungen herumschlagen. Meine Lösung war der Bau eines Generators, der die Regeln selbst einhält.
2. Anatomie des PMax Editor Imports
Der Editor akzeptiert nicht 1 sheet = 1 kampaň. Er verarbeitet ein standardisiertes Workbook mit 6 Sheets, wobei jedes eine Entität oder deren Relation darstellt:
| Sheet | Inhalt | Format |
|---|---|---|
| README | Kunde, Absicht, Anweisungen für Kollegen | Freitext |
| Campaigns | Kampagnen-Einstellungen (Budget, Gebotsstrategie, URL expansion, final URL suffix) | 1 Zeile = 1 Kampagne |
| Asset groups | Headlines, descriptions, long headlines, Pfade zu Bildern und Videos | 1 Zeile = 1 asset group (Wide-Format) |
| Search themes | Search themes für jede asset group | 1 Zeile = 1 search theme |
| Audience signals | Custom audience / Interest / remarketing signals | 1 Zeile = 1 Signal |
| Sitelinks | Sitelink-Texte und URL (Ad-Level) | 1 Zeile = 1 sitelink |
Warum separate Sheets und nicht alles im Wide-Format in einem? Weil der Editor intern search themes, audience signals und sitelinks als eigenständige Entitäten speichert, nicht als Spalten einer asset group. Wenn Sie diese in einem Wide-Sheet zusammenfügen, ignoriert der Importer sie entweder oder er stürzt ab. Ich habe dies durch die Methode „47-mal importiert und dann hat es geklappt“ gelernt.
3. Mein End-to-End-Workflow
Ich zeige es an einem hypothetischen Setup – ein Retailer mit drei Produktkategorien, drei asset groups, jede mit eigenen search themes und einem allgemeineren audience signal.
1. Briefing (5 Min.)
Vom Kunden (oder aus einem bestehenden Audit) habe ich:
- Webadresse und Top-Selling-Kategorien
- Budget und Ziel-CPA/ROAS
- Ungeeignete Keywords (Wettbewerber, Marken, die nicht ausgespielt werden dürfen – aber Vorsicht, Brands, die Sie selbst verkaufen, sind kein Waste)
- Audience: bestehende remarketing Listen, lookalike Inspirationen
2. Kampagnenplan im KI-Chat (5 Min.)
Ich schreibe dem KI-Assistenten:
“Erstelle eine PMax für Kunden X. Budget Y, ROAS target Z. Drei asset groups nach Kategorien A, B, C. Ich benötige 15 headlines, 5 long headlines, 5 descriptions, 10 search themes pro AG. Headlines als Mix aus Vorteilen + USP + price point. Audience signal: bestehendes remarketing + interest in fitness equipment.”
Die KI liefert mir einen Strukturvorschlag – headline-Texte mit Variationen je nach Kategorie, search themes geschätzt aus dem SERP-Kontext (und ggf. aus dem MarketingMiner MCP-Abruf), audience signal mit IDs bestehender remarketing Listen. Ich gehe alles durch, passe an, was nicht zum Brand Voice passt, und lösche schwache Varianten.
3. Bilder (3 Min.)
Wenn der Kunde keine fertigen Produktfotos hat, generiere ich diese über NanoBanana aus dem Briefing („clean studio shot Laufband, weißer Hintergrund, 1200×1200 px, kommerzielle Fotografie“). Für PMax benötige ich mindestens 1:1 und 1.91:1 + logo square + landscape. Optimierte WebP bis zu ~350 KB pro Bild.
4. Generator-Start (2 Min.)
Ich habe das pmax_xlsx_builder.py Script – ein wiederverwendbarer Generator, der eine Python-Konfiguration (CONFIG dict) nimmt und eine komplette XLSX mit allen 6 Sheets generiert. Die Pfade zu den Bildern sind absolut. Asset groups im Wide-Format (1 Zeile = 1 AG, 20 Spalten für Image 1..20). Search themes, audience signals, sitelinks in separaten Sheets.
Ich fülle die Konfiguration aus – typischerweise ~60 Zeilen Python – und starte:
python tools/pmax_xlsx_builder.py clients/retailer/pmax_config.py out/pmax_retailer_2026-04.xlsx
Die fertige XLSX-Datei habe ich innerhalb von 20 Sekunden auf der Festplatte.
5. Sanity Check (2 Min.)
Ich öffne sie in Excel und prüfe die Sheets:
- Budget angemessen? Campaigns
- Anzahl der asset groups und Bilder korrekt? Asset groups
- Search themes pro AG eindeutig, keine Duplikate? Search themes
- Hat der audience signal die korrekten User-List-IDs? Audience signals
Falls ich auch URL-Templates habe, ist der Final URL suffix korrekt für das GA4-Tracking.
6. Import in den Editor (1 Min.)
Google Ads Editor → Account → Import → From file… → XLSX. Der Editor zeigt den Diff an (was geschrieben wird). Prüfung, Keep oder Reject pro Zeile.
7. Upload zu Google Ads (1 Min.)
Post changes → Die Kampagne wurde im Konto erstellt. Fertig.
Insgesamt 15–20 Minuten.
4. Warum Builder statt manueller Erstellung
Drei Hauptgründe, warum ich Zeit in den Generator investiert habe, anstatt die Vorlage manuell zu erstellen:
1. Kundenübergreifende Konsistenz. Jede Kampagne hat das gleiche Format, die gleichen Spalten und Konventionen. Wenn ich nach einem Monat zurückkehre, finde ich mich sofort zurecht.
2. Fehler nur einmal beheben. Als ich feststellte, dass der Editor den Final URL suffix als separate Spalte benötigt (nicht als Teil der URL), habe ich den Builder angepasst. Alle zukünftigen Exporte sind nun korrekt.
3. Erweiterbarkeit ohne Refactoring. Letzten Herbst hat Google Brand exclusions als neues Feld hinzugefügt. Ich habe im Builder die Spalte Brand exclusions im Campaigns Sheet ergänzt, für die betroffenen Kunden ausgefüllt und der Import hat es übernommen.
Ich habe den Builder intern als Open Source bereitgestellt (ein öffentlicher Release ist geplant) — die Struktur ist einfach:
tools/
pmax_xlsx_builder.py # generátor
template_pmax_config.py # šablona configu (copy & fill)
Die Konfiguration sieht in etwa so aus:
CONFIG = {
"campaign": {
"name": "PMax_retailer_2026-Q2",
"budget_daily": 1500, # CZK
"bid_strategy": "MaxConversions",
"target_roas": None,
"final_url_suffix": "utm_source=google&utm_medium=cpc",
},
"asset_groups": [
{
"name": "Behaci_pasy",
"final_url": "https://retailer.cz/behaci-pasy",
"headlines": ["Běžecké pásy od 12 990 Kč", "..."],
"long_headlines": ["...", "..."],
"descriptions": ["...", "..."],
"images": ["images/treadmill_1.jpg", "..."],
"search_themes": ["běžecký pás domů", "..."],
"audience_signals": ["user_list:12345", "interest:fitness"],
},
# další asset groups
],
"sitelinks": [
{"text": "Rychlé dodání", "url": "https://retailer.cz/doprava"},
# další
],
}
Alles, was die Kampagne verändert, steht in der config. Der Builder weiß selbst, wie daraus die korrekte XLSX erstellt wird.
5. Was ich damit konkret löse
Im letzten Quartal habe ich mit diesem Workflow 11 PMax Kampagnen für 6 Kunden erstellt. Durchschnittliche Zeit vom Briefing bis zum Upload: 17 Minuten. Früher habe ich das nicht einmal pro Woche geschafft, heute ist es eine Ad-hoc-Operation, die ich morgens zwischen zwei Tassen Kaffee erledige.
Zweiter Nebeneffekt: Die Qualität der Erstversion ist höher. Warum? Weil der Generator mich zwingt, eine strukturierte Config auszufüllen, und wenn ein Feld fehlt, bemerke ich es sofort. Manuell habe ich manchmal Long Headlines vergessen oder nur Standard-Descriptions verwendet. Das System kann es nicht „vergessen“.
Der dritte Effekt, den ich später bemerkt habe: Ein besseres Review mit dem Kunden. Anstatt zu fragen: „Schauen Sie sich den Entwurf im Editor an, ob er für Sie passt?“, sende ich dem Kunden die Config (oder ein Sheet), und er kann direkt kommentieren: „Tauschen Sie dieses USP gegen jenes aus“, „Hier fehlt die Kategorie Pilates“. Änderung in der Config, Rerun, fertig.
6. Grenzen und Einschränkungen
Fairerweise – der Builder übernimmt Asset und Struktur. Er übernimmt nicht die Strategie für Sie:
- Auswahl der richtigen Kategorien für asset groups (Segmentierung nach Marge, Saisonalität, Volumen) – das bleibt meine Aufgabe als PPC-Spezialist.
- Die Entscheidung, ob PMax überhaupt aktiviert werden soll. Für kleine Budgets oder spezifischen B2B-Traffic ist gezielte Search weiterhin besser.
- Exclusions auf Kontoebene (brand exclusions, placement exclusions) – diese verwalten Sie außerhalb von XLSX.
- Optimierung nach dem Launch. Der Builder ist ein Launch-Tool, kein Management-Tool.
Für die Post-Launch-Optimierung nutze ich einen anderen Workflow über Google Ads MCP (Leistung der asset groups, search themes expansion, Iteration der audience signal).
Fazit
Der PMax XLSX builder ist ein banales Stück Infrastruktur. Knapp 400 Zeilen Python, keine Raketenwissenschaft. Aber er spart mir 2,5 Stunden bei jeder neuen PMax Kampagne und sichert die Qualität in meinem gesamten Portfolio. Diese Kombination — geringe Investition × wiederkehrender Nutzen — ist genau das, was meiner Meinung nach den Unterschied ausmacht zwischen einem Freelancer, der auf Leistung setzt, und einem Freelancer, der ständig Brände löscht.
Wenn Sie PMax Kampagnen manuell im Editor launchen und Sie dieselben Muster plagen (Tippfehler, vergessene Felder, Inkonsistenzen zwischen Kunden), sollten Sie in Erwägung ziehen, so etwas zu bauen. Wenn Sie dies nicht lösen möchten (oder nicht allein), schreiben Sie mir — gerne passe ich den Builder an Ihre Situation an und übergebe ihn in einem einsatzbereiten Zustand.
Bauen Sie PMax manuell und ist es mühsam?
Tech-FAQ
- Warum XLSX und nicht CSV? Der Editor akzeptiert beide Formate, aber XLSX unterstützt Multi-Sheet-Strukturen und Formatierungen (Stile, Validierungsregeln). CSV müssten Sie 6× hintereinander importieren.
- Warum Python und nicht Google Sheets + Makros? Skriptbarkeit, Versionierung in Git, besseres Debugging, keine Abhängigkeit von Google APIs. Die Sheets-Variante funktionierte ein halbes Jahr, Python ist robuster.
- Unterstützt der Builder Shopping (Retail PMax)? Ja, es reicht aus, im Config
feed_labelundmerchant_center_idauszufüllen. Der Produktteil der Kampagne läuft dann über den Merchant Center feed, der Rest (asset groups, search themes) verhält sich wie bei Standard PMax. - Wie löse ich die Bildoptimierung? Vor dem Import lasse ich alle Bilder durch ein Mini-Skript laufen – 1200×1200 Crop, WebP 85 Qualität, ~300 KB Target. Die Asset-Performance in Google Ads zeigt, dass leichte Bilder stabiler gerendert werden.
- Planen Sie den Builder Open-Source? Ja. Sobald die Dokumentation und die Tests ein Niveau erreicht haben, das ich mir für ein geteiltes Projekt wünsche.
