BETA

Google Ads Skript: Exclude unwanted placements

Das Skript hilft unnötige Kosten im Display-Netzwerk zu vermeiden, indem Placements mit auffälligen Kennzahlen und/oder Placements, bei denen die Domains bestimmten Kriterien erfüllen, ausgeschlossen bzw. reportet werden.
Dieses Skript kann die Performance von Display-Kampagnen signifikant verbessern!

Freie Skriptversion:
Alarm Überwachung Kosten sparen Reiner Lesezugriff
Sendet eine E-Mail, wenn etwas überprüft werden sollte.
Das Skript überwacht das Google Ads Konto (stündliche oder tägliche Ausführung).
Das Skript hilft unnötige oder ungewollte Ausgaben zu vermeiden.
Es werden keine Änderungen in Google Ads, dem Merchant Center oder Google Analytics durchgeführt.
Für SEA Suite user:
Alarm Überwachung Kosten sparen Änderungen in Google Ads (optional) Reiner Lesezugriff (sofern gewünscht)
Sendet eine E-Mail, wenn etwas überprüft werden sollte.
Das Skript überwacht das Google Ads Konto (stündliche oder tägliche Ausführung).
Das Skript hilft unnötige oder ungewollte Ausgaben zu vermeiden.
Änderungen können auf Wunsch direkt im Google Ads Konto durchgeführt werden.
Auf Wunsch werden keine Änderungen in Google Ads, dem Merchant Center oder Google Analytics durchgeführt.

 Unnötige Kosten im Display-Netzwerk verhindern

Problem: Anzeigen auf unpassenden, unseriösen und unrentable Websites

Leider beobachtet man oft, dass im Display-Netzwerk Anzeigen auf zweifelhaften Websites ausgespielt werden oder auf Websites, wo die Kundengewinnung allein schon wegen verwendeten Sprach höchst unwahrscheinlich ist. Kampagneneinstellungen oder ausgeschlossene Inhaltskeywords wie "spiele/games" werden leider von Google oft ignoriert.

Performance-Marketing im Display-Netzwerk ist umso schwieriger, je weniger Daten man hat. Da kann es oft zielführend sein Websites vorsorglich auszuschließen, die sehr wahrscheinlich nicht zu einer Conversion führen werden. Wenn man Anzeigen zum Beispiel für ein lokales Geschäft mit 50km Radius in Deutschland schalten will, sind Anzeigen auf polnischen, französischen und russischen Websites wenig sinnvoll.

Lösung: Ausschließende Placements

Mit diesem Skript kann man ganz einfach herausfinden, auf welchen Websites Google Anzeigen schaltet, obwohl die Conversionwahrscheinlichkeit höchst gering ist und diese dann ausschließen oder automatisch einer ausschließenden Placement-Liste hinzufügen lassen.

 Typische Kostenfresser und ungewollte Placements

  • Placements, die man fast nie haben möchte wie Domains, die "porn" enthalten
  • Placements, die Google für naheliegend hält, aber kontraprodukt sind.
    Beispiel: Wer Pferdefleisch verkauft, sollte besser keine Anzeigen auf Websites schalten, die "pferd", "reiten" etc. enthalten, auch wenn Google gerade das für besonders sinnvoll zu halten scheint.
  • Domains die Worte enthalten, die auffallend oft durch unplausible Kennzahlen und schlechte Rendite auffallen – zum Beispiel "game".
  • Anzeigen auf Websites im falschen Land.
    Viel zu oft werden in Display-Kampagnen Anzeigen auf Websites geschaltet, die nicht der eingestellten Sprache und der Sprache der Anzeigen entsprechen. Es kann die Performance deultich steigern, wenn man alle Domains mit einer länderspezifischen Toplevel-Domain ausschließt, die man nicht in einer Positivliste definiert hat. Wer Ware nur innerhalb von Deutschland verschickt, für den zeigen Domains mit einer länderspezifschen Topleveldomain anders als ".de" oft einen schlechten ROAS.
    Das Skript kann ganz einfach so konfiguriert werden, dass alle Domains automatisch ausgeschlossen werden, die eine länderspezifschen Topleveldomain anders als ".de" oder ".eu" verwenden. Für den DACH-Raum eignet sich die Positivliste "de,at,ch,eu"
  • Anzeigen auf Websites für die falsche Region.
    Wer Anzeigen nur in Miami schaltet, für den sind Websites mit der Toplevel-Domain ".miami" super interessant, aber Domains mit der Toplevel-Domain ".vegas" oder ".boston" sind vermutlich wenig zielführend und können ausgeschlossen werden.
  • Anzeigen auf Websites mit unpassenden Toplevel-Domains.
    Wer Produkte für Erwachsene verkauft, für den sind Anzeigen auf Websites mit der Toplevel-Domain ".baby" zum Beispiel wenig zielführend.
  • Anzeigen auf Websites mit oft unrentablen Toplevel-Domains.
    Je nach Produkt, das man bewirbt, können Toplevel-Domains wie ".app" und andere eine schlechte Performance zeigen. Wenn das Budget knapp ist, kann man alle Websites mit solchen Domains ausschließen, damit Google sich auf Websites konzentriert, wo die Conversionwahrscheinlichkeit höher liegt.
  • Placements mit absolut unrealistisch hohen Klickraten.
    Wenn der CTR extrem hoch ist, ist unserer Erfharung nach die Wahrscheinlich auch hoch, dass die Website "komisch" aussieht und man sich fragt, warum gerade dort unsere Zielgruppe so aktiv sein soll. Wir schließen so Websites automatisch aus.
  • Placements mit absolut unrealistisch hohen Conversionraten bzw. hohem ROAS.
    Hier sollte man mal genauer hinsehen – insbesondere, wenn man Softconversions wie "Klick auf Telefonnummer" verwendet. Die Zeiten, wo Betrüger einfach nur auf eine Anzeige geklickt haben und dann keine Aktion auf der Webseite ausgeführt wurde, sind vorbei. Es ist für Betrüger ja auch viel sinnvoller, wenn Google davon überzeugt werden kann, dass die Website toll ist und zu vielen Conversions führt.
  • Placements mit sehr hohen Klickkosten.
    Placements mit auffallend hohem CPC sind nicht unbedingt die, die die Performance steigern – oft ist das Gegenteil der Fall. Da man bei Google im Display-Netzwerk (unverschämterweise) keinen Max-CPC für Ziel-ROAS definieren kann, sollte man hier ein Auge drauf haben.

Wichtiger Hinweis

Das Skript kann stark dabei helfen die Rendite von Display-Kampagnen schnell zu verbessern. Wie restriktiv man vorgeht hängt aber immer vom Einzelfall ab. Bei knappem Budget schließt man tendenziell mehr aus. Wenn man leicht manipulierbare Soft-Conversions verwendet, muss man auf unnatürliche Conversion-Kennzahlen natürlich mehr ein Auge drauf haben als bei einem Online-Shop. Wer schon lange laufende Display-Kampagnen mit vielen Conversions hat, bei dem leistet die KI natürlich einen besseren Job als bei neu gestarteten Kampagnen mit wenig Conversions. Wer schon viele Daten hat, sollt sich z.B. die Performance mal nach Toplevel-Domains (TLD) aufschlüsseln und dann überlegen, ob Websites mit bestimmten Toplevel-Domains in Zukunft vielleicht automatisch ausgeschlossen werden sollen.
Daher ist es wichtig für jedes Google Ads Konto die Parameter sinnvoll zu definieren, damit man nicht zu viel ausschließt. Da die Konfiguration in einem Google-Sheet erfolgt, ist das aber leicht umsetzbar.
Das Skript ist sehr mächtig und bietet viele Konfigurationsmöglichkeiten, weshalb es sinnvoll ist sich näher mit der Dokumentaton zu beschäftigen und reportOnly erst dann auf FALSE zu setzen, wenn man an den Reports sehen kann, dass die auszuschließenden Domains wirklich ausgeschlossen werden sollen.

 Beispielsettings

Man kann im Config-Sheet für jeden Google Ads Account unterschiedliche Parameterwerte definieren. Außerdem kann man das Skript für jedes Konto mit unterschiedlichen Parametern mehrfach ausführen lassen. Dafür muss man einfach die Zeile eines Kontos kopieren, unterschiedliche Namen in #multiSettingsName angeben und schon wird das Skript für ein Konto mit verschiedenen Einstellungen ausgeführt. Hier einige Konfigurationsbeispiele.

Websites mit extrem auffälligen Kennzahlen reporten, aber nicht automatisch ausschließen

#multiSettingsNameZum Beispiel "metrics report only"
reportOnlyTRUE
numberOfDays30
minMetrics_clicks5
excludeMetrics_roasGreater1000%
excludeMetrics_conversion_rateGreater20%
excludeMetrics_ctrGreater20%
excludeMetrics_cpcGreater5

Ja, inzwischen gibt es auch zu schöne Conversionstatistiken. Betrüger wissen, dass oft getrackt wird, ob auf einen Mail-Link etc. geklickt wird. So wird per Bot Interesse vorgetäuscht und die Website wird von Google gepusht.


Websites mit länderspezifschen Toplevel-Domains außerhalb der Zielregion ausschließen

Erste, einfach Version

Angenommen, wir schalten die deutschsprachige Kampagne "Display DACH" in Deutschland (D), Österreich (A) und der Schweiz (CH) für eine KI-Software. Dann sind für uns Websites mit den länderspezifischen Toplevel-Domains .de, .at, .ch und ggf. .eu relevant. Nicht aber .fr, .pl, .ru und so weiter.
Die Domain für Anguilla (.ai) wird jedoch oft von Websites verwendet, die sich mit dem Thema künstliche Intelligenz beschäftigen. Daher wollen wir Domains mit der Toplevel-Domain .ai auf keinen Fall ausschließen. Hier geht es nur um länderspezifische Toplevel-Domains – nicht um Domains wie .com, .space, .fun, .game und so weiter.
Mit dieser Einstellung würden alle Domains ausgeschlossen, die in den letzten 30 Tagen mindestens 20 Klicks erzielt haben und eine der über 250 länderspezifischen Domains nutzen – außer de,at,ch,eu und ai natürlich.
Wir definieren explizit eine negative Placementliste mit dem Namen ASM_unwantedPlacements_DACH, die der Kampagne natürlich zugewiesen werden muss. Mit einer negative Placementliste speziell für die DACH-Region stellen wir sicher, dass Kampagnen für Frankreich davon unberührt bleiben, da mit diesen Parameterwerten ja auch alle Domains mit der Toplevel-Domain .fr ausgeschlossen werden.

#multiSettingsNameZum Beispiel "exclude country TLD except de,at,ch,eu,ai". Die Namen müssen pro Account unterschiedlich sein. Es ist hilfreich, wenn der Name verdeutlicht, was die Parameter bewirken.
reportOnlyFALSE
numberOfDays90
minMetrics_clicks20
excludeCountryTopLevelDomainsTRUE
removeFromCountryTopLevelDomainBlacklist.customerSpecificde,at,ch,eu,ai
campaignNamesOrPattern["Display DACH"]
negativePlacementListNameASM_unwantedPlacements_DACH

Verbesserte Version

Es gibt oft für bestimmte Regionen und Städte innerhalb von Ländern noch weitere Toplevel-Domains. Wenn man keine Anzeigen in Russland schalten will, ist es natürlich gut, wenn man die Toplevel-Domain "ru" ausschließt (excludeCountryTopLevelDomains=TRUE schließt alle länderspezifischen Domains aus).. Aber speziell für Moskau gibt es noch die Toplevel-Domain "moscow", die man natürlich auch ausschließen sollte.
Das Vorgehen ist so, dass man erste (fast) alle regionalen Toplevel-Domains ausschließt (topLevelDomainBlacklist.region) und dann in "removeFromCountryTopLevelDomainBlacklist.customerSpecific" definiert, welche für spezifische Settings doch zugelassen sein sollen.
Auf diese Weise kann man immer mit einer konstanten, langen Liste von ausschließenden Domains arbeiten und muss nur pro Account/Setting die paar Toplevel-Domains angeben, die hier doch erlaubt sind.
Da wir KI-Software anbieten und fast alle Websites mit der Toplevel-Domain "ai" sich um das Thema KI drehen, setzen wir die Toplevel-Domain "ai" auf die Whitelist für Toplevl-Domains. Da die Toplevel-Domain "ai" sich jetzt in einer Whitelist befindet, wird keine Domain mit dieser Toplevel-Domain ausgeschlossen, auch wenn andere Regeln (bestimmte Worte im Domainnamen oder unnatürlich hohe Klickraten etc.) für einen Ausschluss der Domain führen würden.

#multiSettingsNameZum Beispiel "exclude country TLD except de,nrw, at, tirol,ch,eu + whitelist ai". Die Namen müssen pro Account unterschiedlich sein. Es ist hilfreich, wenn der Name verdeutlicht, was die Parameter bewirken.
reportOnlyFALSE
numberOfDays90
minMetrics_clicks20
excludeCountryTopLevelDomainsTRUE
topLevelDomainBlacklist.regionafrica,capetown, ... ,madrid,bayern,berlin, ... ,rio
(Das Config-Sheet enthält eine Zeile mit Beispielen. Einfach die Angaben aus dieser Zeile übernehmen, damit man die häufigsten regionalen Toplevel-Domains ausschließt)
removeFromCountryTopLevelDomainBlacklist.customerSpecificde,bayern,berlin,cologne,koeln,hamburg,nrw,ruhr,saarland, at,tirol,wien, ch,zuerich, eu
(Hier nehmen wir zuvor ausgeschlossene Toplevel-Domains aus der Verbotsliste heraus)
topLevelDomainWhitelist.customerSpecificai
campaignNamesOrPattern["Display DACH"]
negativePlacementListNameASM_unwantedPlacements_DACH

 Konfigurationsparameter

ParameterBeschreibung
reportOnlyDefault: TRUE ⇒ Es wird nichts im Konto geändert, es wird nur ein Report erstellt, was ausgeschlossen werden könnte.
Auf FALSE setzen, damit Websites der negativen Placementliste hinzugefügt werden.
noExcludeMetrics_conversionsGreaterDefault: 0 ⇒ Wenn im Betrachtungszeitrum Conversions für eine Domain getrackt wurden, wird diese nur reportet, nicht ausgeschlossen, auch wenn reportOnly=false.
excludeByNameAndTopLevelDomainDefault: FALSE. TRUE ⇒ Domains reporten und ggf. ausschließen, die bestimmte Worte oder bestimmte Toplevel-Domains enthalten.
excludeByCountryTopLevelDomainsDefault: FALSE. TRUE ⇒ Domains reporten und ggf. ausschließen, die eine länderspezifische Toplevel-Domain wie .de, .fr oder .eu haben.
excludeByNameAndTopLevelDomain muss ebenfalls TRUE sein.
excludeByMetricsDefault: FALSE. TRUE ⇒ Die Parameter excludeMetrics_... werden verwendet, um unerwünschte Domains zu identifizieren.
numberOfDaysDefault: 30 ⇒ Die Kennzahlen (Metrics) der letzten 30 Tage werden ausgelesen.
minMetrics_impressionsDefault: 1 ⇒ Placements mit weniger Impressionen werden komplett ignoriert. Kann für größere Konten erhöht werden, damit nur Placements mit signifikant vielen Ausspielungen berücksichtigt werden.
minMetrics_clicksDefault: 5 ⇒ Placements mit weniger Klicks werden komplett ignoriert.
Dieser Wert ist als Minimalwert zu verstehen und sollte sinnvoll erhöht werden. Insbesondere bei sehr großen Konten, wenn reportOnly=FALSE, damit die ausschließende Placementliste nicht vollläuft (max 65.000 Placements).
excludeMetrics_roasGreaterWenn definiert, werden Websites reportet und ggf. ausgeschlossen, deren ROAS höher als der definiert (unplausibel hohe) ROAS.
Tipp: reportOnly=TRUE setzen, um sich nur informieren zu lassen und die Website dann manuell zu überprüfen.
excludeMetrics_conversion_rateGreaterAnalog zu excludeMetrics_roasGreater
excludeMetrics_ctrGreaterAnalog zu excludeMetrics_roasGreater
excludeMetrics_cpcGreaterAnalog zu excludeMetrics_roasGreater
domainNameWhitelist.***Domains mit einem der definierten Wörter enthalten werden niemals ausgeschlossen. Sie werden mit grünen Domainnamen reported, wenn ein exclude-Parameter zu einem Treffer geführt hat.
domainNameBlacklist.***Domains mit einem der definierten Wörter werden reportet und ggf. ausgeschlossen, sofern ein Whitelist-Parameter das nicht verhindert.
ignoreDomainNameBlacklist.***Manche Worte in domainNameBlacklist.*** können zu ungewollten Ausschlüssen führen.
Beispiel: Enthält domainNameBlacklist.brandProtection das Wort "virus", würde auch die Website "antiVIRUS-software-xyz.com" ausgeschlossen. Möchte man das jedoch verhindern, kann man hier "antivirus" aufführen.
Normalerweise ist der Parameter leer.
topLevelDomainWhitelist.***Domains mit einer definierten Toplevel-Domain werden niemals ausgeschlossen. Sie werden mit grünen Domainnamen reported, wenn ein excludeMetrics-Parameter zu einem Treffer geführt hat.
topLevelDomainBlacklist.***Domains, die eine der hier definierten Toplevel-Domains nutzen, werden reportet und ggf. ausgeschlossen, sofern ein Whitelist-Parameter das nicht verhindert. Ausnahmen definiert der folgende Parameter.
removeFromTopLevelDomainBlacklist.***Damit man für topLevelDomainBlacklist.*** Defaultwerte für alle Konten definieren kann, besteht die Möglichkeit hier kontospezifisch bestimmte Toplevel-Domains aus der Blacklist zu entfernen.
So kann man in topLevelDomainBlacklist.region (siehe Beispielkonfiguration) als Default alle regionalen ToplevelDomains (über 60) eintragen. Für Konten, die auch in Miami geschaltet werden, kann hier "miami" definiert werden. Das klingt erstmal umständlich, ist aber übersichtlicher, als für jedes Konto topLevelDomainBlacklist.region individuell anzupassen – was aber genauso gut funktioniert
removeFromCountryTopLevelDomainBlacklist.***Wenn excludeByCountryTopLevelDomains=TRUE muss hier mindestens eine Toplevel-Domain konfiguriert werden. Wenigstens die Toplevel-Domains der Länder, in denen eine Kampagne geschaltet wird, sollten hier aufgeführt werden.
Für Kampagnen in Europa zusätzlich "eu".
Siehe Wikipedia Country code top-level domain.
negativePlacementListNameDefault: ASM_unwantedPlacements
Domains, die sich in dieser Liste befinden, werden nicht reportet.
Ist reportOnly=false werden Domains automtisch dieser Liste hinzugefügt.
campaignNamesOrPatternStandardwert: Leer = alle Kampagnen
Es können entweder eine oder mehrere Kampagnen mit vollen Namen in [] angegeben werden oder ein Pattern. Beispiele:
2 Kampagnen: ["Display topics", "Display top placements"]
Alle Kampagne die "Display" enthalten: *Display*
Alle Kampagne die "Search" nicht enthalten: !*Search*
maxIssuesToReportDefault: Leer
In der kostenfreien Version werden 50 Domains per E-Mail reportet. Für die übrigen Domains werden die summierten Kosten etc. in einer "not reported" Zeile zusammengefasst.
In der Weboberfläche der SEA Suite können unbegrenzt viele Domains reportet werden.

Bitte loggen Sie sich ein, damit Ihnen auch die nicht-öffentlichen Skripte und die für Sie verfügbaren erweiterte Funktionalitäten angezeigt werden.

 Ergebnistabelle

SpalteBeschreibung
PlacementGrün: Auf Grund der Domain und/oder Metriken wurde diese Domain reportet – aber NICHT der ausschließenden Placementliste hinzugefügt, da eine Whitelist oder noExcludeMetrics_conversionsGreater dies verhindert haben.
Weiß: Auf Grund der Domain und/oder Metriken wurde diese Domain reportet – aber NICHT der ausschließenden Placementliste hinzugefügt, da reportOnly=TRUE
Rot: Auf Grund der Domain und/oder Metriken wurde diese Domain reportet und der ausschließenden Placementliste hinzugefügt
Found phrase/tldWenn excludeByNameAndTopLevelDomain=TRUE wird hier die Phrase bzw. die Toplevel-Domain (tld) einer Blacklist aufgeführt, welche zu der Domain gefunden wurde.
Orangefarbene Werte zeigen an, dass dies dazu geführt hat, dass das Placement reportet wurde.
Weitere SpaltenOrangefarbene Werte zeigen an, dass dies dazu geführt hat, dass das Placement reportet wurde.

Das Skript ist bei den Betatestern und wird bald veröffentlicht