Negative Keywords für Google Shopping mit AdWords Scripts automatisieren
TL;DR: Dieser Artikel beschreibt, wie ein bereitgestelltes AdWords Script mittels eines Feeds von Marken oder Kategorien eine Shared Negative Library aktualisieren kann, um Begriffslisten systematisch auf Kampagnenebene auszuschließen. Es wird speziell auf die Vorteile für Google Shopping eingegangen. Er richtet sich an Anfänger und Fortgeschrittene; einige SEA Begriffe werden vorausgesetzt.
Herausforderung Google Shopping
Shopping Kampagnen für Google Adwords werden immer relevanter im SEA-Kontext und beanspruchen zunehmend mehr Budget-Anteil. Die CPCs steigen und auch der Mobilanteil wird immer stärker. Google Shopping ist trasdlkjotz automatisierter Aussteuerung immer noch eine Blackbox, der Pflege-Aufwand wächst proportional zur Anzahl der Kampagnen bzw. der Produkte im Feed und eine Detailoptimierung ist schwierig bis scheinbar unmöglich. Vor allem die tagesgenaue Aktualisierung der anzuzeigenden Produkte erzeugt einen großen Aufwand.
Die optimale Shoppingstruktur: Generic-Brand-Product Partition
Das 2014 von Martin Röttgerding vorgestellte Framework ist optimal für eine keywordbasierte Steuerung geeignet und zum Standard der Top-SEA-Teams geworden. Wir gehen darauf in unserem Blog Artikel über Google Shopping näher ein.
Aus dem Framework ergeben sich drei wesentliche Herausforderungen:
1. Automatisierte Anlage von produktspezifischen Zielen
2. Automatisiertes Handling der Negative-Gruppen Produkte und Brands
3. Automatisierter Ausschluss von Kostenfressern pro Gen-Brand-Prod über Adwords Labels
Dieser Artikel beschäftigt sich mit der zweiten der drei Herausforderungen, dem automatisierten Handling der Negativkeywords für Produkte und Brands.
Neben Kampagneneinstellungen sind Negative Keywords DAS zentrale Werkzeug, um die Relevanz einer bestehenden Adwords-Struktur zu optimieren, ohne dabei die Kernstruktur zu verändern. Es werden lediglich die Wirkungsradien der Keywords, Produkt- und dynamischen Ziele gezielt eingeschränkt. Der Einfluss von Negative Keywords entfaltet sich damit in drei Entitäten oder Targetingformen:
- Keywordkampagnen
- Shoppingkampagnen
- Dynamic Search Ads und DSA für Shopping
Die systematische Verwaltung von großen Listen von Negative Keywords entpuppt sich oft als sehr herausfordernd, weil die Listen in den meisten Fällen historisch gewachsen sind, von verschiedenen SEA Managern nach unterschiedlichen Mustern aktualisiert werden und generell eher unstrukturiert sind.
Automatisierung von Negatives: Welche Ansätze gibt es?
Tools wie Karooya versuchen aus der Vielfalt von Suchanfragen Wortteile oder Attribute zu identifizieren, welche eher oder weniger mit einer Conversion korreliert sind. Dies missachtet jedoch die hohe Kontextsensititvität von Sprache, daher waren wir nach einem Gratistest im Jahr 2015 nicht von dem Ansatz überzeugt. Demzufolge bleibt das Thema Semantisches Query Mining eine Herausforderung ohne einfachen “straightforward” Lösungsansatz.
PPC Hero hat auf Basis eines Brainlabs Skripts einen Ansatz zum N-Gram Segmenting und Cross Pollution vorgestellt. Der Ansatz ist vielversprechend mit zusätzlichen Vorteilen, allen voran der Quantifizierung von Keywordkannibalisierung.
In unserem Suchanfragenskript inklusive Demo-Dashboard für eCommerce Accounts stellten wir eine Möglichkeit vor, die Vielfalt an Suchanfragenquellen strukturierter in den Griff zu bekommen. Es erlaubt die Identifikation von neuen, konvertierenden Suchanfragen, sowie von Negativausreißern für einen möglichen Ausschluss.
Shared Libraries helfen bei der Strukturierung von Negatives
Abhilfe für die fehlende Strukturierung hat die Einführung von “gemeinsam genutzten Bibliotheken für ausschließende Keywords” oder einfach Shared Negative Libraries geschaffen – (immer diese langen deutschen Namen). Diese Libraries haben zwei wichtige AdWords Mengeneinschränkungen, welche man kennen sollte:
- 5000 Negative Keywords pro Liste
- 20 Listen pro Account
Typische Anwendungsfälle zur Strukturierung von Negative Listen sind:
- Wettbewerber Keywords
- Not-in-Stock Marken
- Nicht jugendfreie Begriffe
- Non Ecommerce Begriffe wie „Test“, „Vergleich“ etc.
Übergreifende negative Listen sind sinnvoll und richtig, können jedoch in Vergessenheit geraten und sogar ungewollt Konflikte und Ausschlüsse erzeugen. Holger Schulz hat dazu ein sehr hilfreiches Skript für Negativkonflikte geschrieben.
Shared Negatives für Google Shopping
Wir wollen uns im Folgenden auf den Einsatz von Shared Libraries für Google Shopping konzentrieren, konkret auf die Implementierung des Strukturentwurfs von Martin Röttgerding, der sich seit der PPC Masters 2014 in der SEA-Szene als einer der führenden Köpfe für Shoppingkampagnen etabliert hat. Der Ansatz ist mittlerweile vielfach thematisiert worden, hier einige gute Posts zum Thema:
- Query level bidding for Shopping (Searchengineland)
- Final solution for exact match in Shopping (PPC Hero)
- Keywords are back for Shopping (Searchengineland)
Martin Röttgerding’s Product – Brand – Generisch Shoppingstruktur
Martin Röttgerding beschreibt in seinem ursprünglichen Vortrag von 2014 die ideale Struktur für Google Shopping durch den Einsatz von Kampagnenprioritäten und Negative Keywords. Die ideale Shoppingstruktur wurde im Beitrag von Judith bereits ausführlich beschrieben – hier komprimiert die notwendigen Prozesskomponenten im Überblick:
- Dreiteilung der Kampagnen in Product – Brand – Generisch
- Vergabe der Kampagnenprioritäten Hoch – Mittel – Niedrig
- Thematische Abgrenzung pro Kampagne mittels Negative Libraries
- Optional: Automatisierte Anlage von Produktzielen pro Artikel
- Optional: Performance-basierter Ausschluss über Custom Labels
Marcel Prothmann von PeakAce brachte mit seinem Shopping-Vortrag auf der SMX 2016 die Prozessdenkweise mit Negatives einen Schritt weiter durch seinen Ansatz, ein Skript spezifische Feeds für Negative Listen über Spreadsheets auslesen zu lassen. Mein Teamkollege Christopher Gutknecht stellte im April 2016 auf der SEA-Camp im Rahmen seines SEA Automation Vortrags die obige Negative Fencing Lösung als Skriptvollautomatismus vor, doch wurde die Lösung nie mit einem Blogpost gewürdigt, was wir hiermit offiziell nachholen möchten.
Voraussetzungen für Negative Library Skript: Feeds zu Marken, Titel und Kategorien
Mittels einer Produktdatenplattform sollten die folgenden drei Feeds bereitgestellt werden, um eine tägliche Aktualisierung der Dimensionen zu realisieren:
Marken:
Alle aktiven Hersteller im Shop. Hinweis: Nicht mehr verfügbare Marken werden nicht von der Negative Liste entfernt
Kategorien:
Hier sollte jeweils der Wert des tiefsten Kategorieknotens ausgegeben werden, d.h. bei “Damen > Jeans > Skinny Jeans” lautet der Wert nur “Skinny Jeans”
Produkttitel:
mit Brand, z.B. “Deuter Kid Comfort III”
ohne Brand, z.B. “Kid Comfort III”
Vorbehalt zu Datenqualität & Sonderfällen solcher Feeds
Es mag zunächst sehr attraktiv klingen, schnell alle möglichen Werte mit einem Feedtool zu deduplizieren, um die drei Kampagnentypen sauber und automatisiert ausschließen zu können. Jedoch sollten bei der Nutzung von deduplizierten Produktitel- und Kategoriefeeds folgende Sonderfälle beachtet werden:
- Generische Produkttitel wie “Strickpullover”. Bei Fashionhändlern kann es vorkommen, dass Hersteller keine Artikeltitel angeben, daher muss dieser vom Händler deskriptiv gewählt werden. Wenn diese unspezifisch gepflegt werden, kann es zu einer Kollision mit gleichnamigen Kategorien kommen, wodurch die generische Kampagne für diese Begriffe erscheinen kann.
- Leere Produkttitel. In diesem Fall wird in der Variante „Titlefeed mit Brand“ nur die Marke angelegt, z.B. “Deuter”. Dies würde dazu führen, dass in der Brand Shoppingkampagne die Marke “Deuter” ausgeschlossen wird. Solche Edge Cases sollten im Produktdatentool ausgeschlossen werden.
- Marken als Subkategorien. Gelegentlich entscheidet sich ein Händler, innerhalb einer Warengruppe die Marke als Kategorie zu nutzen, z.B. “Herren > Hemden > BOSS”. Diese unsaubere Vermischung führt zum Ausschluss des Begriffs aus der Brand Shoppingkampagne.
Aus diesen Gründen empfiehlt es sich, die Feeddatenqualität erstens vorab und zweitens regelmäßig monatlich zu prüfen.
Konfiguration des Skripts
Die Einrichtung des Skripts erfordert keinerlei Programmierkenntnisse. Lediglich die folgende Konfiguration muss vorgenommen werden.
Der Konfigurationsblock beinhaltet alle relevanten Informationen, die benötigt werden, damit das Skript funktionieren kann. Es gestaltet sich auch für technisch nicht-affine SEA Manager einfach, da nur generelle Informationen zur Produktdatei und den Negativ-Listen bereitgestellt werden müssen. Folgende Punkte müssen bei der Konfiguration korrekt umgesetzt werden:
- List Identifier, oder Stamm der anzusprechenden Negativ-Liste (NEGATIVE_LIST_IDENTIFIER): dieser kann frei gewählt werden. Er sollte aussagekräftig sein und NICHT verändert werden.
- URL zur Produktdatei (FEEDURL): muss eine korrekte URL sein, die von außen erreichbar ist. Hier wird die Datengrundlage für alle Negative Keywords geschaffen.
- Spaltentrenner (SEPARATOR) definiert bei mehrspaltigen Produktdateien das Trennzeichen. Dieser ist notwendig, damit die richtigen Daten aus der Datei herausgelesen werden können. Im obigen Beispiel eine Tilde oder ~.
- Spaltenindex (COLUMN_INDEX): gibt den Index der Spalte im Feed an, aus der die Daten gelesen werden sollen. Wichtig: Die erste Spalte entspricht dem Wert 0.
- Identifier Händlermarke & Eigenmarke: Die letzte Variable ist eine Liste von Eigennamen-Variationen der eigenen Marke, die nicht in die Negative Listen aufgenommen werden sollen. Dies kann sinnvoll sein, wenn ein Händler eine eigene Marke über Shopping vertreibt, gleichzeitig aber auch eine Fremdmarken- und Eigenmarkenkombination auftreten kann.
Hauptbestandteil der Skript-Logik
Es gibt mehrere Schritte, die während der Laufzeit des Skripts abgearbeitet werden müssen. Diese Funktionalitäten werden entweder durch eigens geschriebene Hilfsfunktionen oder durch die AdWords Scripts Standard Bibliothek abgebildet.
Zunächst wird der Datenfeed von der hinterlegten URL geladen und die entsprechenden Negative Keywords gespeichert. Im zweiten Schritt werden alle bisher bestehenden Listen, die den konfigurierten Listen-Identifizierer beinhalten, ausgelesen und die Keywords in ein Array geschrieben. Die beiden so generierten Listen von Keywords können jetzt miteinander verglichen werden und neue im Datenfeed enthaltene Keywords werden identifiziert und ebenfalls zwischengespeichert.
https://gist.github.com/norisk-marketing/d993e623435df0dfe303ce644d29a9a1
Multilistenfähigkeit: Wenn 5000 voll sind, wird eine neue Liste angelegt
Sobald dieser Schritt durchgeführt ist, werden die neuen negativen Keywords in die jeweiligen Listen geschrieben. Sollte einmal das Limit von 5000 Keywords pro Liste erreicht werden, legt das Skript automatisch eine neue Liste an und macht dort weiter, wo es aufgehört hat. Beim ersten Durchlauf des Skripts wird zudem auch die erste Liste selbstständig angelegt. Das Skript sollte täglich ausgeführt werden, um die Zahl Blindspots so klein wie möglich zu halten.
Die so angelegten Listen können wie gewohnt in bestimmten Kampagnen hinterlegt und so deren Wirkungsradius eingeschränkt werden.
Habt ihr Fragen zum Skript? Habt ihr es ausprobiert und seid auf Probleme gestoßen, oder habt Vorschläge zu Verbesserungen? Lasst es uns in den Kommentaren wissen.
Happy Automating, Alex