Inhaltsverzeichnis
tl;dr: Ich zeige dir, wie du auf Basis des Shop-CMS deiner Wahl mit Google Analytics 4 und dem Google Tag Manager tracken kannst, welche Suchvorgänge bzw. Keywords zu Einkäufen in deinem Onlineshop führen. Dazu erstellen wir zunächst eine Variable, welche das Suchkeyword aus der URL zieht, fügen diese anschließend in ein First Party Cookie ein und ergänzen abschließend das purchase Event in GA4 mit der Keyword-Information. Überprüfen bzw. tracken können wir dann alles über den Tag Assistant, den Debug Mode in GA4 oder einen explorativen Report in GA4.
Lesezeit: ca. 10 Minuten
Letztes Update: 17. Juli 2024
Onlineshops setzen eine sogenannte Onsite-Suche zur besseren und schnelleren Auffindbarkeit von Produkten ein. Die Suchfunktion in einem Onlineshop hat im Laufe der Jahre immens an Bedeutung hinzugewonnen, weil Nutzer:innen schnell und einfach zum gesuchten Produkt kommen wollen und der Faktor Schnelligkeit umsatzrelevant ist.
(Exkurs: Mich hat dieses Thema sogar so weit interessiert, dass ich im Herbst 2023 meine Masterarbeit am MCI Innsbruck rund um das Thema „Einsatz einer KI-gestützten Onsite-Suchfunktion in einem E-Commerce-Shopsystem“ verfasst habe. Daher habe ich stets ein besonderes Augenmerk rund um Möglichkeiten, welche die Onsite-Suche bzw. auch die Such-Auswertung für Unternehmen verbessert.)
Allgemeine Infos und Voraussetzungen
Wer in seinem Shop über eine KI-gestützte Suchfunktion wie etwa DooFinder verfügt, der bekommt viele Daten wie etwa Search-Click-Through-Rate (Search CTR) oder Search-Conversion-Rate (Search CR) in einer (zumeist) schönen Oberfläche präsentiert. Doch mit etwas Aufwand und dem Google Tag Manager und GA4 als Basis ist es auch ohne eine cloudbasierte Onsite-Suche möglich, die eigenen Verkäufe mit relevanten Infos aus Suchvorgängen anzureichern.
Im nachfolgenden Tutorial zeige ich dir, wie du in GA4 messen kannst, welche Suchbegriffe zu direkten Einkäufen in deinem Webshop führen. Die Anleitung basiert auf dem englischsprachigen Video von Julius Fedorovicius (Analyticsmania), dem auch die Lorbeeren für dieses Tutorial gebühren.
Voraussetzung ist, dass du den Google Analytics 4 dataLayer (also die Datenschicht) in deinem Webshop eingebunden hast und E-Commerce-Tracking aktiv ist. Wir haben dazu für WooCommerce eine umfassende Anleitung verfasst, daher werde ich an diesem Punkt nicht näher auf Themen wie die Integration des dataLayers, die benötigten E-Commerce-Datenschichtwerte oder die Erstellung eines purchase-Events eingehen.
URL-Variable in GTM anlegen (Schritt 1)
Wenn du in einem Onlineshop nach einem Begriff suchst (wie wir am nachfolgenden Screenshot nach dem Begriff „monobunt“ in unserem Demo-Shop), dann wird der Suchbegriff in der URL angezeigt bzw. angehängt. Nämlich zusammen mit einem so genannten query parameter. Bei WooCommerce ist dieser „s“, bei Shopify sowie Shopware „search“ – du erkennst diesen Parameter an dem „?“, das davor steht.

Wenn wir wissen, wie der query parameter in unserem Shop lautet, können wir damit im Google Tag Manager eine Variable erstellen. Dazu gehst du auf Variablen > Benutzerdefinierte Variable > Neu und wählst „URL“ (nachdem wir unsere Variable aus ebendieser herausziehen wollen). Beim „Komponententyp“ wählst du anschließend Suchanfrage (das deutsche Wort für den zuvor erwähnten query parameter), als Suchanfragenschlüssel (query key) hinterlegst du das „s“ oder „search“. Die gesamte Variable im GTM sollte dann in etwa so aussehen:

Wenn du anschließend in den Preview Mode des GTM gehst und erneut eine Suchanfrage tätigst, dann solltest du im Tag Assistant in einem Event wie „Container Loaded“ unter dem Punkt „Variablen“ auch bereits die zuvor angelegte „url – s“ Variable sehen (siehe Screenshot). Wenn dies der Fall ist, dann hast du den ersten Schritt erfolgreich absolviert.
First-Party-Cookie mit Suchbegriff anlegen (Schritt 2)
Nun können wir den Suchbegriff aus unserer Suchergebnis-URL herausziehen. Im zweiten Schritt müssen wir diesen Wert der Suchabfrage in einem (1st Party) Cookie abspeichern, das wir anschließend als Parameter im purchase-Event hinzufügen können. Wenn du noch nie selbst ein Cookie erzeugt hast (Anm. habe ich selbst auch nicht ;) – Analyticsmania hat eine ausführliche Guideline angelegt, wie man Cookies mit dem Tag Manager anlegen und auslesen kann. Für dieses Beispiel hier ist der Absatz „Set cookies with Google Tag Manager“ aus der Guideline relevant.
Dabei gibt es drei Variablen („var“), die du umbenennen bzw. anpassen solltest:
- Beim Namen des Cookies (var CookieName) kannst du beispielsweise gtm_search_term verwenden.
- Bei der Dauer, wie lange das 1st Party Cookie im Browser gespeichert werden sollte, würde ich eine relativ kurze Dauer wie z.B. einen Tag empfehlen. Warum? Wenn ein Kunde in deinem Shop etwas sucht, den Kauf aber erst Tage (oder gar) Wochen später tätigt, solltest du zumindest hinterfragen, ob die Suchabfrage relevant für den Kauf war. Wenn der Kauf jedoch binnen 24h nach der Suchanfrage stattfindet, dann hatte dieser mit ziemlicher Sicherheit etwas damit am Hut. Ein Tag hat 86.400 Sekunden dementsprechend also den Wert 86400 bei var expirationTime hinterlegen.
- Bei der dritten Variable, also beim Wert des Cookies (var cookieValue) musst du die zuvor angelegte „url – s“ Variable hinterlegen. Am einfachsten machst du dies direkt in GTM, du kannst aber (Achtung: nur dann, wenn deine Variable ebenfalls genau „url – s“ heißt) auch gerne das nachfolgende <script> verwenden.
Das bereits angepasste Skript (die drei Zeilen mit den Variablen habe ich rot markiert) schaut folgendermaßen aus:
<script>
(function(){
var cookieName = „gtm_search_term“; // Name of your cookie
var cookieValue = „{{url – s}}“; // Value of your cookie
var expirationTime = 86400; // One day in seconds
expirationTime = expirationTime * 1000; // Converts expiration time to milliseconds
var date = new Date();
var dateTimeNow = date.getTime();date.setTime(dateTimeNow + expirationTime); // Sets expiration time (Time now + one month)
var date = date.toUTCString(); // Converts milliseconds to UTC time string// Extract base domain
var domainParts = location.hostname.split(‚.‘);
var baseDomain = domainParts.slice(-2).join(‚.‘); // Get the last two parts of the domaindocument.cookie = cookieName + „=“ + cookieValue + „; SameSite=None; Secure; expires=“ + date + „; path=/; domain=“ + baseDomain; // Sets cookie for all subdomains
})();
</script>
Anschließend kannst du im GTM ein neues Tag vom Typen „Benutzerdefiniertes HTML“ (Custom HTML) anlegen und den Code hineinkopieren. Im nachfolgenden Screenshot siehst du, wie die drei adaptierten Variablen im cHTML-Tag aufgebaut sind:

Beim Trigger (also dem Auslöser) für das Tag wird es etwas komplexer. Du willst das Cookie nämlich nur dann abspeichern lassen, wenn auch eine Onsite-Suche getätigt wurde. Wenn du für das cHTML einfach den Trigger „Alle Seiten“ wählen würdest, würde das Cookie jedes Mal geschrieben werden – und zwar inhaltslos.
Weil dies komplizierter klingt, als es wirklich ist, sehen wir uns dies in einem Beispiel an. Wenn du im GTM Preview Mode auf einer Seite unterwegs bist, auf der du keine Suchanfrage getätigt hast, dann ist unsere „url – s“ Variable leer. Der entsprechende Wert im GTM für eine leere Variable lautet „undefined“.
Wir wollen das 1st Party Cookie auf Basis der „url – s“ Variable nur überall dort schreiben lassen, wenn der Wert nicht „undefined“ ist. Hierzu kannst du einen „Seitenaufruf“-Trigger erstellen und diesen folgendermaßen eingrenzen: bei „einige Seitenaufrufe“ wählst du unsere „url – s“ Variable, anschließend „ist nicht gleich“ (does not equal) und dann als Wert das „undefined“. Das schaut dann so aus:

Auf diese Weise wird unser cHTML-Skript nur dann ausgelöst, wenn die Suchvariable nicht undefined (= leer) ist. Wenn du jetzt wieder in den Preview Mode im GTM gehst und eine Suchanfrage tätigst, dann sollte das zuvor angelegte Tag abgefeuert werden. Wenn dies der Fall ist, kannst du über die Developer Tools überprüfen, ob auch das Cookie in deinem Browser geschrieben wurde.
Dazu mit der rechten Maustaste irgendwo auf die Seite klicken und „Untersuchen“ wählen. Anschließend zu „Application“ navigieren und unter „Storage“ zur URL deines Shops gehen. Wenn du hier im Filter nach dem Namen des Cookies (gtm_search_term) suchst, dann sollte dieses angezeigt werden, den Suchbegriff als Wert beinhalten und das Ablaufdatum 24h in der Zukunft liegen.

1st Party Cookie an das purchase-Event anfügen (Schritt 3)
Damit das Cookie mit dem Suchbegriff immer zusammen mit einem Verkauf an GA4 übergeben wirst, musst du dieses Cookie jetzt noch an dein purchase-Event im GTM anfügen.

Dazu in GTM unter Variablen > Benutzerdefinierte Variablen > Neu eine Variable vom Typ „First-Party-Cookie“ anlegen und beim Namen des Cookies „gtm_search_term“ hinterlegen. Wir erinnern uns, dies ist die Variable für den Namen des Cookies (var cookieName) aus dem cHTML-Tag, das wir zuvor erstellt hatten.
Anschließend kannst du in deinem „GA4 – purchase“ Tag das „Cookie – gtm_search_term“ als Ereignisparameter hinterlegen. Dazu in den Bereich „Ereignisparameter“ navigieren und dort „search_term“ eintippen. Sobald du zu tippen beginnst, sollte dieser Begriff auch von GTM vorgeschlagen werden. Dabei handelt es sich nämlich um den in der offiziellen GA4-Dokumentation von Google empfohlenen Parameter (siehe Screenshot).

Deswegen wird rechts neben dem Ereignisparameter auch automatisch ein Haken gesetzt, um zu signalisieren, dass dieser Parameter bekannt ist. Alles in allem sollte die Konfiguration dann folgendermaßen aussehen:
- Ein Tag vom Typen „Google Analytics: GA4-Ereignis“
- Deine hinterlegte GA4-Mess-ID
- Der zuvor erwähnte „search_term“ Parameter mit dem Wert aus dem erstellten 1st Party Cookie
- Das Senden der E-Commerce Daten aus dem dataLayer im Bereich „Ecommerce“
- Als Trigger das GA4-purchase-Event

Du kannst die Funktionsweise anschließend durch einen Testkauf in deinem Shop überprüfen. Wenn du nach dem Kauf im Tag Assistant auf das purchase Event navigierst, solltest du den Suchparameter sowohl im GTM- als auch im gtag sehen.

Im Screenshot oben siehst du den Parameter und den Parameter-Wert auf Basis der GTM-Container ID (GTM-XXXXXXX). Wenn du dir im Tag Assistant dein gtag (G-XXXXXXXXXXX) anschaust, dann einfach ebenfalls zum purchase-Event navigieren, unter „Hits Sent“ bei „Purchase“ nach unten scrollen und hier solltest du als „Event Parameter“ namens „ep.search_term“ (Anm. das ep steht für event parameter) deinen Suchbegriff sehen.
Explorativen Report in GA4 erstellen (Schritt 4)
Wenn du den debug_mode in GA4 bzw. im GTM aktiviert hast, kannst du dir hier ebenfalls ansehen, ob der search_term Parameter mit dem purchase Event übergeben wird. Dazu bei den Einstellungen unter „Datenanzeige“ auf „DebugView“ gehen und dort im Stream nach dem grün markierten „purchase“ Ausschau halten (Anm. es ist deswegen grün, weil es sich dabei um eine von Google vorgegebene Conversion handelt).

Et voila: auch hier sehen wir den Suchbegriff „monobunt“, der zum Kauf im Shop geführt hat. Spätestens 24 Stunden nachdem du das Suchbegriff-purchase-Tracking eingerichtet hast, kannst du auch einen explorativen Report in GA4 anlegen.
Hierzu einfach ein leeres Template verwenden, bei der Dimension „Suchbegriff“ (Search Term) hinzufügen und durch Doppelklick aktivieren. Beim Messwert „Umsatz aus Käufen“ (Purchase Revenue) hinzufügen und ebenfalls aktivieren. Anschließend wird dir in einer Tabelle angezeigt, welche Suchbegriffe zu wie viel Umsatz geführt haben. Diese Tabelle ist natürlich am Anfang wenig aussagekräftig, wird jedoch immer interessanter, je mehr Verkäufe du auf Basis von Suchanfragen generierst.

Zusammenfassung und Ausblick
Du stellst dir vielleicht jetzt die Frage, ob du dieses Tracking für deinen Shop umsetzen sollst (oder willst). Diese Frage kann ich dir nicht vollends beantworten. Wenn du nur wenige Verkäufe über deinen Webshop generierst, dann ist es wahrscheinlich ein Overkill. Wenn die Onsite-Suche jedoch ein zentrales UI-Element deines Webshops ist und du keine cloudbasierte Suche verwendest, dann würde ich die Implementierung empfehlen.
Wenn du nicht nur weißt, was deine User:innen suchen, sondern auch was deine sogenannten Money-Suchbegriffe sind, dann kannst du dein Sortiment, deine Banner und Placements auf dieser Basis überarbeiten und dadurch optimieren. Denn wie eingangs erwähnt – Schnelligkeit ist umsatzrelevant und je schneller Produkte in deinem Shop gesucht und gefunden werden können, desto höher deine potenzielle Abschluss- bzw. Kaufrate.
Das alles klingt etwas zu kompliziert? Du hast gar keinen WooCommerce-Shop, Shopify-Shop oder Shopware-Shop, sondern verwendest ein anderes Shopsystem? Wenn du E-Commerce-Tracking-Aktionen in deinem Shop nicht selber einrichten willst oder kannst, kannst du uns gerne jederzeit kontaktieren und wir übernehmen das Setup gerne für dich. Wir freuen uns auf deine Kontaktaufnahme bzw. Kommentare unter diesem Tutorial!
Hinweis: Das Cover Image wurde mit DALL·E 3 und dem Prompt „Cover Image für einen Blogartikel über Tracking von Suchvorgängen und Keywords in Onlineshops mit Google Analytics 4 und Google Tag Manager“ erstellt.
Über den Autor
Gerald Emprechtinger ist seit 2017 im Team von MONOBUNT und seit Februar 2022 als Agenturleiter tätig. Er hat ein Diplomstudium für Marketing und Medienmanagement an der FH Salzburg sowie ein berufsbegleitendes Masterstudium für Digital Marketing & Analytics am MCI Innsbruck abgeschlossen. Seine Leidenschaft gilt der Suchmaschinenoptimierung und der Webanalyse. Seit 2015 beschäftigt er sich mit Google Tag Manager und hat dazu viele Blogartikel und Gastartikel verfasst. Hier geht es zu den weiteren Blogartikeln von Gerald bei MONOBUNT.

