Creative Lens macht aus dem wöchentlichen Creative-Review ein Sheet, mit dem sich arbeiten lässt. Es vergleicht die Leistung jeder Anzeige mit dem Vorzeitraum, liest die Performance-Labels der Assets responsiver Suchanzeigen, markiert Ablehnungen, schwache Anzeigeneffektivität, gepinnte aber LOW-bewertete Assets und Ausgaben ohne Conversions und ordnet alles in einer Fix-Liste für die Woche.

So funktioniert es

Zwei Fenster werden abgefragt: die aktuellen days Tage und die days Tage davor. Anzeigen des aktuellen Zeitraums stammen aus ad_group_ad (REMOVED-Anzeigen ausgeschlossen); die Summen des Vorzeitraums enthalten auch pausierte und nicht mehr ausgelieferte Anzeigen, damit die Wochenvergleiche ehrlich bleiben. RSA-Assets kommen mit Performance-Label, Pin-Position und Enabled-Flag aus ad_group_ad_asset_view; kann die Laufzeit keine Conversion-Metriken auf Asset-Ebene liefern, fällt das Skript automatisch zurück und protokolliert es. Die Landingpage-Ökonomie gruppiert Anzeigen nach finaler URL. Die Fix-Liste ist gereiht: abgelehnte Anzeigen, Ausgaben ohne Conversions, POOR-Anzeigeneffektivität, zu ersetzende LOW-Assets, CTR-Einbrüche, gepinnte aber LOW-bewertete Assets.

Was in das Sheet geschrieben wird

  • Summary — KPIs beider Zeiträume, Verteilung von Anzeigeneffektivität und Asset-Labels, Gesundheitszähler (abgelehnt, eingeschränkt, POOR/AVERAGE-Anzeigen, LOW-Assets, gepinnte Assets), Top-Überschriften nach CTR und die Fix-Liste.
  • Ads — eine Zeile pro Anzeige mit aktuellen und vorherigen Metriken, WoW-Deltas, Typ, Status, Anzeigeneffektivität, Freigabe und finaler URL.
  • Assets — eine Zeile pro RSA-Asset: Feld, Text, Performance-Label, gepinnt, aktiv und Metriken.
  • Headlines — aggregierte Überschriften: nutzende Anzeigen, dominantes Label, Anzahl Pins.
  • Final URLs — Landingpage-Ökonomie je finaler URL.
  • _history — eine dauerhafte Zeile pro Zeitraum für Trenddiagramme.

Einrichtung

  1. Lege mit dem Google-Konto, mit dem du das Skript autorisierst, ein neues, leeres Google Sheet an und kopiere die URL. Verwende kein Sheet eines anderen Skripts — jedes Sheet ist an ein Skript und ein Google Ads-Konto gebunden.
  2. Öffne in Google Ads Tools → Skripts, lege ein neues Skript an, füge den gesamten Code ein und vergib einen Namen.
  3. Trage die Sheet-URL in CONFIG.spreadsheet_url ein. Läuft das Skript aus einem Verwaltungskonto (MCC), setze zusätzlich CONFIG.account_id auf die Kunden-ID (z. B. 123-456-7890); ohne diese Angabe bricht das Skript mit einer klaren Fehlermeldung ab.
  4. Optional: CONFIG.email (Empfänger durch Komma getrennt) und/oder CONFIG.slack_webhook befüllen. Der Webhook bleibt ausschließlich im Code und wird nie in das Sheet geschrieben.
  5. Skript autorisieren, einmal Vorschau ausführen und das Protokoll prüfen, dann Ausführen. Der erste Lauf erstellt die Tabs, die Kopfzeilen und den Tab _settings.
  6. Zeitplan einrichten: wöchentlich, montags ab 04:00 Uhr Kontozeit.
  7. Optional: das Excel-Dashboard herunterladen (Button oben), den Tab Read me öffnen und die Sheet-Tabs wie dort beschrieben einfügen — das Spaltenlayout entspricht der Skriptausgabe eins zu eins.

Parameter

ParameterBeschreibungStandard
spreadsheet_urlURL des leeren Google Sheets, in das das Skript schreibt.'YOUR_SPREADSHEET_URL'
emailEmpfänger durch Komma getrennt; leer = keine E-Mail. In _settings überschreibbar.''
slack_webhookSlack-Incoming-Webhook-URL; leer = keine Slack-Nachricht. Bleibt nur im Code.''
account_idKunden-ID; nur nötig, wenn das Skript aus einem Verwaltungskonto (MCC) läuft.''
daysLänge des Analysefensters in Tagen.7
campaign_filterTeilstring-Filter auf den Kampagnennamen.''
channel_typesAuf Kanaltypen beschränken, z. B. [‚SEARCH‘]; leer = alle.[]
min_impressions_for_rankingMindestimpressionen, damit eine Anzeige oder Überschrift in Rankings erscheint.200
min_clicks_no_convKlicks ohne Conversion, bevor eine Anzeige als „Ausgaben ohne Conversions“ markiert wird.30
cost_no_conv_thresholdOptionale Kostenuntergrenze für dieselbe Markierung (0 = nur Klicks).0
fix_list_sizeMaximale Einträge in der Fix-Liste.10
max_rows_writtenZeilenlimit pro Tabelle; bei Überschreitung wird ein Hinweis ergänzt.20000
Alle Werte stehen im CONFIG-Block am Anfang des Skripts; Schlüssel, die auch im Tab _settings existieren, lassen sich dort ändern.

Der Tab _settings

Beim ersten Lauf legt das Skript einen Tab _settings (Key / Value / Notes) an. Werte dort überschreiben die passenden CONFIG-Einträge, sodass das tägliche Feintuning im Sheet stattfindet, ohne Code zu ändern. Zahlen müssen ohne Tausendertrennzeichen und mit höchstens zwei Dezimalstellen geschrieben werden (0.5 oder 0,5). Die Zeilen script und account markieren den Besitzer des Sheets: Öffnet ein anderes Skript oder ein anderes Konto dasselbe Sheet, stoppt es, bevor etwas geschrieben wird. Interne Tabs mit Unterstrich (_settings, _history, _snapshot, _state, _baseline) sind sprachunabhängig; ein Wechsel zwischen den EN/TR/DE-Builds behält den gespeicherten Zustand.

Benachrichtigungen

Ist mindestens ein Kanal konfiguriert, wird eine E-Mail- und/oder Slack-Zusammenfassung gesendet: Zeitraum-KPIs mit Deltas, die Gesundheitszeile (abgelehnt · POOR/AVERAGE · LOW-Assets) und die Fix-Liste mit Link zum Sheet.

Hinweise und Grenzen

  • Assets, die nicht mehr in der aktuellen Version einer Anzeige sind (enabled = false), bleiben in den Tabellen, erscheinen aber nicht in Fix-Liste und Top-Überschriften.
  • Anzeigeneffektivität und Asset-Labels sind Googles eigene Bewertungen; das Skript berichtet sie, es berechnet sie nicht neu.
  • Jeder Berichts-Tab enthält eine kleine Attributionszelle (H1:K1, nur Warnschutz) und der Code-Header eine Copyright-Zeile; beides kann jeder entfernen, der die Quelle bearbeitet.