Shoppingfeed Monitoring mit AdWords Scripts: Fehler & Potentiale auf einen Blick
TL;DR: Dieser Artikel beschreibt einen skriptbasierten Ansatz zum Monitoring verteilter Merchant Center Konten auf Basis von Google Spreadsheets. Die Übersicht führt Uploadprozesse, Fehler, Warnungen und Vorschläge aller verwalteten Konten zusammen. Nachdem das Skript bereits auf der SMX und OMLIVE 2017 gefeatured wurde, hier nun der ausführliche Blogpost.
GOOGLE MERCHANT CENTER – WIE BEHÄLT MAN BEI VIELEN KONTEN DIE ÜBERSICHT
Das Google Merchant Center hat im Laufe des Jahres 2016 ein überfälliges Redesign erfahren: Die Steuerflächen sind größer und sichtbarer, die linke Navigation setzt sich durch den schwarzen Hintergrund farblich besser ab. Insgesamt in jeder Hinsicht eine Verbesserung. Nichtsdestotrotz sehen wir bei norisk in der täglichen SEA Agenturarbeit zwei Kernherausforderungen in mit dem Merchant Center:
1. Kontenübergreifende Übersicht von Problemen und Potentialen Eurer Shoppingfeeds
2. Zusammenführung separater MCCs und Einzelkonten in eine Übersicht
Für beide Herausforderungen werden wir in diesem Artikel eine Lösung mittels AdWords Scripts bereitstellen, um eine Multitab-Übersicht in einem Google Spreadsheet zu erhalten. Beginnen wir mit der ersten Herausforderung und einer Hinführung zur Lösung.
1. KONTENÜBERGREIFENDE ÜBERSICHT VON PROBLEMEN UND POTENTIALEN
Die Einstiegsseite “/aggregatordashboard” bildet den Startpunkt bei Mutliclient-Merchantkonten, obwohl es den Namen Dashboard nicht verdient: Es ist lediglich eine verlinkte Kontenliste und führt keine Informationen zusammen.
Es fehlt eine Dashboardübersicht aller Shoppingfeedprobleme
Folgende operativen Fragen bleiben noch unbeantwortet, welche erst beim Klick in das jeweilige Einzelkonto geklärt werden können:
- Wie viele Artikel wurden zuletzt importiert?
- Wie viele Artikel werden aktuell wegen Fehlern abgelehnt?
- Wie setzen sich die Ablehnungen aus Fehlertypen zusammen?
- Was sind Beispielartikel für Ablehnungen?
- Welche Warnungen gibt es aktuell pro Konto?
All diese wichtigen Informationen gilt es, in einem Dashboard (welches den Namen verdient) täglich zusammenzuführen, um mehrere Konten zentral mit Fokus auf Abweichungen und Potentiale zu beobachten. Beginnen wir zunächst mit dem einfacheren Fall, dass alle Merchant-Center Konten in einem Überkonto zusammengeführt sind – wie oben abgebildet. Zum umständlicheren Fall verteilter Konten kommen wir im Teil 2. der Zusammenführung separater Einzelkonten.
MULTI-TAB SPREADSHEET ALS MERCHANT CENTER ÜBERSICHT
Auch wenn Merchant Center Überkonten streng genommen nicht „MCCs” genannt werden, leihen wir uns der Einfachheit halber diese Abkürzung von AdWords. Grundlage für das anvisierte Monitoring ist ein Google Spreadsheet als Ausgabeort, um tabellarisch alle gewünschten Informationen zusammenzuführen. Die Daten werden über AdWords Scripts mittels der aktivierten Content API for Shopping abgerufen, welche eine einfache Abstraktion der Merchant-Daten bereitstellt. Das nachfolgende Demo-Spreadsheet steht – zusammen mit dem Skript – zur Kopie bereit und ist in vier Datenblätter aufgeteilt:
1. FEEDS. Dieses Tab enthält alle aggregierten Informationen pro Feed: Gesamtanzahl, valide Produkte, Fehler, letzter Import etc. Shopping API-seitig bedient sich das Skript hier Informationen der Endpoints Accounts und Datafeeds.
Ein wertvoller Nebeneffekt der Versionsspeicherung in Google Sheets ist der langfristige Rückblick auf historische Feedmengen pro Tag. Diese Funktion ist über „Datei > Überarbeitungsverlauf anzeigen“ einsehbar. Oft speichern Produktdatentools nur kurze Zeiträume wie 7 Tage, das Google Merchant Center zeigt zumindest 30 Tage. Unten ist erkennbar, dass ein Shop sukzessive weniger Artikel an Shopping übergibt, die Zahlen fallen von 7573 im Januar auf 4631 im Juli. Diese Versionsspeicherung ist immer dann wertvoll, wenn ein Wert aus der weiter zurückliegenden Vergangenheit benötigt wird.
2. Errors. Hier werden alle konkreten Fehlerfälle mit Error Message, Code, Fehleranzahl und jeweils drei Beispielen aufgeführt. Die Informationen werden API-seitig von Datafeedstatuses geholt, im Merchant Center werden Fehler durch das rote Dreieck angezeigt. Fehler führen zu einer direkten Ablehnung des Artikels im Merchant Center. Beispiel sind für Fehler sind:
- Fehlende oder falsche GTINs
- zu kleine Bilder
- Nicht übereinstimmende Preise
- Fehlende Attribute, z.B. Farbe
3. Warnings. In diesem Tab werden alle Warnungen – keine Fehler bzw. Ablehnungen – mit den gleichen Informationen wie in Tab 2 gelistet. Die Daten stammen ebenfalls aus den Datafeedstatuses, im GMC-Interface sieht man ein gelbes Dreieck . Beispiele für Warnungen sind:
- GTIN mit eingeschränktem Verwendungsbereich oder „Gutschein-GTIN“
- Fehlende Attribut, z.B. gender
- Mehrere Werte für ein Variantenattribut
4. DataQualityIssues. Diese von der Shopping-API unter AccountStatuses bereitgestellte Liste mischt Fehler und Warnungen mit weiteren wichtigen Informationen. Im Merchant Center sind sie mit einem blauen Infosymbol gekennzeichnet:
- Issue severity “critical” & “error” = Fehler bzw. Ablehnung, s.o.
- Issue severity “suggestion” = Vorschläge zur Optimierung
Insbesondere die Suggestion-Einträge sind wertvolle Ausgangspunkte für kleine und unkritische Verbesserungen in Shoppingfeeds. Die anderen beiden Issuetypen sind eher eine Duplikation von Fehlern und Warnungen.
Welche Alternativen gibt es für Shoppingfeed-Monitoring?
Es gibt auch andere Wege, detaillierte Merchant Center-Informationen für ein tägliches Monitoring zu beziehen:
- AdWords zeigt für Shoppingkampagnen im Tab „Produkte” den Zustand jedes Produkts an
- Produktfeedplattformen wie Productsup ermöglichen den Import der Shopping API-Daten in ihre Systeme
In beiden Fällen werden die Informationen – zu einem gewissen Grad – tiefer im Frontend der jeweiligen Tools begraben, was in Anbetracht der Wichtigkeit von Shoppingfehlern nicht zielführend ist. Auch fehlt eine direkte Emailfunktionalität zur täglichen Übersicht.
UNSER ADWORDS SKRIPT ZUM DOWNLOAD
Nun zum eigentlichen Skript, welches die Abfrage und Befüllung ausführt. Zunächst ist wichtig zu erwähnen, dass das Skript bevorzugt als ein MCC-Skript genutzt werden sollte, da es so von uns eingesetzt wird und in Betrieb ist. Theoretisch sollte es mit dem gleichen User auf Einzel-Adwordskonto-Ebene auch das gleiche Ergebnis liefern – der Logik halber ist eine Verknüpfung auf AdWords MCC Ebene zum korrespondierenden Merchant-Center MCC intuitiver. Das Skript erwartet in der Konfiguration zwei Inputwerte:
1. Merchant Center MCC-ID (Überkonto). Diese lässt sich aus der URL der Startseite kopieren, siehe Screenshot
>> WICHTIGER Schritt: Jetzt das Demosheet kopieren. Wir warten solange 😀
2. Spreadsheet-ID. Diese wird aus der URL Eures angelegten, eigenen Spreadsheets kopiert – nach dem “/d/” Verzeichnis und vor “edit”. Die ID des Demosheets wird wegen Berechtigung einen Fehler auswerfen, sowie jegliche Werte mit Leerzeichen oder “/” am Ende.
Die weiteren Variablen Sheetnames sollte eher NICHT angepasst werden, da diese mit denen im Spreadsheet übereinstimmen müssen. Die Variable SCRIPT_NAME dient nur der Beschreibung für Sheet und Email und müssen nicht zwingend beibehalten werden.
Skriptcode für MCC zum Download
Hier ist der CODE zum Copy&Pasten in Euer AdWords MCC, :
https://github.com/norisk/AdWords-Scripts/blob/master/2017_GMC_MCC_MerchantCenterMonitoring_v1.1.1+ Quelltext aufklappen
Nach dem ersten Testlauf im kopierten Demosheet sollten die eigenen Merchant Center-Daten einlaufen, soweit pro Tab vorhanden. Dabei arbeitet das Skript ohne Historisierung, es wird stets der aktuelle Zustand ohne Kenntnis vorheriger dargestellt. Bei vollständigem und korrektem Durchlauf zeigt sich folgendes Verlaufsprotokoll:
Es werden zunächst alle vorgefundenen Merchantkonten mit Name und ID ausgegeben, anschließend folgt eine Erfolgsmeldung pro Bereich bzw. Tab.
Abschließend sollte das Scheduling auf „täglich” gestellt werden, um stets aktuelle Daten zu erhalten. Dabei sollte der Zeitpunkt NACH dem täglichen Merchant-Import liegen, falls nur einmal pro Tag. Im Feeds-Tab ist das Datum der letzten Aktualisierung erkennbar.
2. ZUSAMMENFÜHRUNG SEPARATER MCCS UND EINZELKONTEN IN EINE ÜBERSICHT
Das obige MCC-Skript deckt einen spezifischen Problemfall NICHT ab, welcher bei AdWords elegant gelöst und im Merchant Center NICHT möglich ist: Das Umziehen von Merchant-Konten unter andere MCCs oder Händler-IDs. Mit dem „Five-Accounts-Per-Email“ AdWords-Update von Herbst 2016 kann man zwar mehrere Händler IDs in ein Merchant Center integrieren, es benötigt aber ein Skript pro Händler ID.
Im Screenshot-Fall oben ist „Demo Shop“ eine andere Händler-ID als das norisk-Überkonto und benötigt daher ein separates Skript. Während dieser Fall im Endkundenkontext nur bei Firmenübernahmen eintritt, tritt er im Agenturalltag bei Übernahme bestehender Konten regelmäßig auf: Das neue Einzelkonto kann nicht unter das Agentur-Hauptkonto gehängt werden, es muss als “Inselkonto” weiter parallel existieren – oder man wagt den Neustart, was in der Praxis aber nie getan wird.
Wir wollen im Folgenden eine Lösung für die Verwaltung multipler, übernommener Inselkonten zeigen, für die wir aus dem obigen MCC-Skript eine Variation erstellt haben. Diese unterscheidet sich in zwei Punkten vom MCC-Skript:
1. Die Variation verzichtet auf die MCC-Ebene und erwartet nur eine Merchant Center ID in der Konfiguration. Der deskriptive accountName wird im Feeds Tab aufgeführt.
2. Die Variation fügt die Daten in die bestehende Tabelle UNTERHALB in die nächste leere Zeile hinzu – und sortiert anschließend erneut absteigend nach Items. Im Demosheet könnte sich z.B. Agrarshop aus einem separaten Merchantcenter Konto später in die Liste „eingliedern“.
Die „Eingliederungs“-Methodik bleibt bei Abarbeitung der Bereiche Feeds, Errors etc. unverändert. Damit arbeitet SingleAccount Variation ergänzend, während die MCC-Version sich stets als Hauptschreiber oder Überschreiber sieht.
Für die Verortung des Skripts gibt es zwei Möglichkeiten:
- Mittels dem „5-Accounts-per-email“ Prinzip habt ihr mit Eurem übergreifenden User Zugriff auf das separate GMC-Konto. In diesem Fall läuft das Skript im einzelnen AdWords Konto und nutzt die separate GMC-Authentizifierung.
- Sowohl AdWords und GMC-Zugriff laufen über einen separaten Inseluser, da in der Zeit vor Herbst 2016 eingerichtet oder weil die 5 Konten pro User aufgebraucht sind. Wenn Euer übergreifender User zum Beispiel „allaccounts@“ und Euer separater Merchant-User “newclient@” lautet, sollte dieser ebenfalls AdWordszugriff erhalten und dort das Skript hinterlegt werden.
Der User „allaccounts@” wird im zweiten Fall NICHT die Berechtigung zur Skriptausführung haben, weil für die Daten aus der Shopping API keine Merchant-Center-Verknüpfung vorliegt. Dies zeigt sich beim gelben Balken im SingleAccount Skript über den allaccounts@ User.
Skriptcode für SingleAccount zum Download
Hier ist der CODE zum Copy&Pasten in Euer GMC Inselkonto:
https://github.com/norisk/AdWords-Scripts/blob/master/2017_GMC_SingleAcct-Addon_MerchantCenterMonitoring_v1.1.1+ Quelltext aufklappen
Nach erfolgreichem Testdurchlauf sollte das Skript eine oder mehrere zusätzliche Zeilen in das Spreadsheet schreiben. Hinweis: Bei mehrfacher Ausführung des SingleAccount-Skripts hintereinander werden die Werte doppelt geschrieben, was aber bei täglichem Scheduling kein Problem darstellt. Beim Scheduling sollte ZWINGEND (!) beachtet werden, dass das SingleAccount-Skript zeitlich HINTER das MCC-Skript getaktet wird, sonst werden die SingleAccount-Werte überschrieben.
3. BONUS: TÄGLICHE EMAIL DER FEEDS-ÜBERSICHTSTABELLE
In unserer Agenturarbeit erzeugen wir zusätzlich zum Spreadsheet eine tägliche Emailübersicht in Form einer einfachen HTML-Tabelle, um proaktiv des tagesaktuellen Stand importierter und abgelehnter Produkte zu erhalten.
Die in der Email enthaltene Tabelle entspricht dem 1.Feeds-Tab und wird ohne Styling ausgegeben, um Unterschiede in Mailclients zu verhindern. In der Abbildung unten sieht man eine beispielhafte Struktur.
Zwischenzeitlich wurde das Spreadsheet in eine HTML-Datei umgewandelt und die vollständige Tabellenformatierung inklusive Farben über das CSS-Inlining Feature der Mailchimp API in eine „hübsche“ Emailtabelle umgewandelt, welche jedoch von einigen Mailclients wie Outlook nicht unterstützt wird – daher blieb es ein nettes Experiment.
Hier ist der CODE zum Copy&Pasten in AdWords oder Apps Scripts, wenn Ihr eine Email erhalten wollt:
https://github.com/norisk/AdWords-Scripts/blob/master/2017_GMC_Addon_FeedTableSender+ Quelltext aufklappen
Wir haben das Skript bewusst separat aufgesetzt, da wir im SEA-Alltag unser Merchant-Center-MCC mit mehreren Inselaccounts in eine Spreadsheetübersicht zusammenführen. Prinzipiell ist es ohne Inselaccounts direkt in das erste Skript integrierbar. Im Ergebnis läuft Euer Shoppingfeed-Monitoring nun im Passivmode und wird Euch täglich in Eure Email-Inbox serviert.
FAZIT: MULTIKONTO-MERCHANT MONITORING LEICHT GEMACHT
Da Google keine gleichwertigen Bordmittel zur Übersicht bereitstellt, haben wir mit etwas Skriptarbeit diese Herausforderung für Euch gelöst. Für uns ist die Übersicht mit der Email ein unverzichtbares Tool zur übergreifenden Beobachtung geworden, da größere Ablehnungen meist völlig unerwartet und (gefühlt bevorzugt) an Tagen der Urlaubsvertretung kommen, wenn man nicht überall tief in alle Accounts schauen kann.
Jetzt seid Ihr gefragt: Habt Ihr das obige Skript getestet und habt Fragen? Habt ihr Ideen für einen weiteren Ausbau der bisherigen Features? Kennt Ihr andere, elegantere Lösungen? Lasst es uns in den Kommentaren wissen!
Zum Abschluss ein großes Danke an Thomas und Marcel für die bisherigen Erwähnungen dieses Skripts:
Thomas Grübel – SMX 2017
Marcel Prothmann – OM LIVE 2017