Professionelles E-Commerce Tracking & Consent Management für JTL-Shop 5
Ein datengestütztes Marketing ist das Fundament erfolgreicher Online-Shops. Das Plugin JTL Shop Google Tracking Codes mit Consent Manager Erweiterung von CiN GmbH schließt die Lücke zwischen präziser Datenerfassung und den strengen datenschutzrechtlichen Vorgaben der DSGVO. Es ermöglicht Shop-Betreibern ab JTL-Shop 5 eine nahtlose Integration von Google Analytics 4, Google Ads, dem Google Tag Manager sowie weiteren Drittanbieter-Scripten.
Durch die direkte Anbindung an den JTL Shop 5 Consent Manager und das EU Cookie Plugin werden sämtliche Tracking-Codes erst nach aktiver Nutzereinwilligung gemäß EuGH-Urteil aktiviert. Dies sichert Ihr Business rechtlich ab und schützt gleichzeitig die Privatsphäre Ihrer Shop-Besucher.
Erweiterung des JTL Consent Managers für Drittanbieter
Neben den Google-Diensten dient das Plugin als zentrale Verwaltung für weitere Marketing-Skripte wie Facebook Pixel oder Bing Webmaster Tools. Diese lassen sich unkompliziert im CiN Consent Manager hinterlegen und verwalten, wodurch bisherige manuelle Skript-Implementierungen DSGVO konform vollständig abgelöst werden.
Umfassende GA4 & Google Ads Integration
Das Plugin liefert out-of-the-box eine tiefgehende E-Commerce-Erfassung nach aktuellem Google Analytics 4 Standard. Neben klassischen Seitenaufrufen und Artikelübersichten werden detaillierte Interaktions-Events im Bestellprozess automatisiert erfasst.
-
Vollständiger Checkout-Funnel: Detailliertes Tracking von
view_item_list, view_item, add_to_cart, view_cart, begin_checkout bis hin zu purchase.
-
Analyse von Kaufabsprüngen: Schwachstellen im Bezahlprozess können durch visuelle Funnels im GA4-Dashboard gezielt identifiziert und optimiert werden.
-
Erweiterte Conversions & Remarketing: Übergabe von dynamischen Parametern und Warenkorbwerten an Google Ads für optimiertes Bidding und zielgerichtetes Remarketing.
GA4 Events
Diese Events werden im GA4-Format bereitgestellt, wenn die jeweilige Funktion und der passende Consent aktiv sind:
page_view
search
view_search_results
view_item_list
select_item
view_item
view_cart
add_to_cart
remove_from_cart
add_to_wishlist
remove_from_wishlist
begin_checkout
add_shipping_info
add_payment_info
choose_shipping_payment
confirmation_page
purchase
refund
view_promotion
select_promotion
generate_lead
sign_up
login
share
select_content
ClickTel
ClickMailTo
ClickWhatsApp
Google Consent Mode v2 (Basic & Advanced)
Seit März 2024 ist der Google Consent Mode v2 Voraussetzung für die uneingeschränkte Nutzung von Google-Werbefunktionen. Das Plugin unterstützt sowohl das Basic- als auch das Advanced-Modell vollumfänglich. Über den JTL Consent Manager werden Zustimmungen als Custom Events an den Google Tag Manager übergeben, um Trigger präzise zu steuern. Dadurch geht Ihnen selbst bei verweigerten Cookies wertvolle Datenbasis durch Anonymized Tracking und Modellierung nicht verloren.
Google Tag Manager DataLayer
Für maximale Flexibilität stellt das Plugin sämtliche Events sowohl im GA4- als auch im Analytics DataLayer-Standard bereit. Marketing-Teams können eigene Tags, Conversion-Pixel oder erweiterte E-Commerce-Berichte ohne Eingriff in das Template konfigurieren.
Technische Produktdaten & Attribute
| Eigenschaft |
Spezifikation |
| Artikelnummer / HAN |
2147326 / Shop5-cookie |
| Hersteller |
CiN GmbH |
| Kategorie |
JTL Plugin Shop 5 |
| Kompatibilität |
JTL-Shop ab Version 5 (Template NOVA) |
| Unterstützte Google-Dienste |
Google Analytics 4, Google Ads, Google Tag Manager, Consent Mode v2 |
| Zusätzliche Integrationen |
Facebook Pixel, Bing Webmaster Tools, ProfitFinder |
| Datenschutz-Standard |
DSGVO-konform, EuGH-Urteil 01.10.2019, TTDSG / TDDDG |
| Verfügbarkeit |
Auf Lager direkt Download |
Häufig gestellte Fragen zu diesem Produkt
Ist das Plugin für den Google Consent Mode v2 vorbereitet?
Ja, das Plugin unterstützt den Google Consent Mode v2 sowohl im Basic- als auch im Advanced-Modus nahtlos in Verbindung mit dem JTL Shop 5 Consent Manager. Über die Schnittstelle werden Zustimmungen für Google Ads und Google Analytics als Custom Event an den Google Tag Manager übergeben. Dadurch wird sichergestellt, dass das Tracking erst nach ausdrücklicher Einwilligung des Nutzers aktiviert oder entsprechend den Consent-Signalen angepasst wird.
Welche E-Commerce Events werden für Google Analytics 4 (GA4) übergeben?
Das Plugin erfasst eine Vielzahl relevanter E-Commerce- und Interaktions-Events wie view_item_list, select_item, view_item, add_to_cart, view_cart, begin_checkout und purchase. Darüber hinaus werden spezialisierte Micro-Conversions wie das Anklicken von Telefonnummern (ClickTel), E-Mail-Links (ClickMailTo) oder WhatsApp-Kontakten (ClickWhatsApp) automatisch gefeuert. Sämtliche Events liefern detaillierte Parameter, um Absprünge im Checkout-Prozess präzise im GA4-Dashboard zu analysieren.
Können neben Google-Diensten auch andere Tracking-Skripte wie Facebook oder Bing eingebunden werden?
Ja, das Plugin dient gleichzeitig als Erweiterung für den JTL Consent Manager und erlaubt das einfache Hinterlegen weiterer Drittanbieter-Skripte. So können beispielsweise Facebook Pixel oder Bing Webmaster Tools DSGVO-konform gesteuert und erst nach Zustimmung des Shop-Besuchers geladen werden. Shop-Betreiber behalten somit eine zentrale Steuerung für alle Marketing- und Analysetools im JTL-Shop.
Unterbindet das Plugin das Setzen von Cookies vor der Zustimmung des Benutzers rechtssicher?
Ja, gemäß den Vorgaben des EuGH-Urteils vom 01.10.2019 blockiert der Consent Manager beim ersten Betreten des Shops alle Drittanbieter-Tracker zuverlässig. Erst wenn der Besucher aktiv seine Einwilligung über die Cookie-Schaltfläche erteilt, werden die entsprechenden Tracking-Codes freigeschaltet. Besucher haben zudem jederzeit die Möglichkeit, ihre getroffenen Cookie-Einstellungen im Shop nachträglich einzusehen und anzupassen.
array(2) {
["Marke"]=>
string(8) "CIN GmbH"
["PHPVersion"]=>
string(10) "PHP ab 7.4"
}
Nutzung des Plugins
Cookie Consent Manager Plugin
Für nähere Einstellmöglichkeiten des Plugins siehe im Plugin-Backend im Admin-Bereich des JTL Shops.
Allgemeine Einstellungen im Plugin
Detailierte Hilfe zu den Einstellungen finden Sie beim jeweiligen Fragezeichen hinter dem Eingabe- bzw. Auswahlfeld.
Anpassung des Plugins an Ihr Shop-Template
Für die Nutzung in individuellen Templates ist eventuell eine Anpassung des Templates oder Plugins erforderlich!
Sollten Sie Fragen dazu haben, stehen wir Ihnen gerne zur Verfügung.
Support-Angebot
Vor dem Veröffentlichen neuer Plugins - bzw. einer neuen Plugin-Version - werden diese in verschiedenen Test-Shops von uns geprüft.
Falls dennoch Probleme mit unseren Plugins auftreten, oder Sie Fragen, Wünsche oder Anregungen dazu haben, nutzen Sie unser Support-Angebot.
In unserem Online-Shop haben wir zusätzlich für unsere Kunden ein FAQ eingerichtet, das Ihnen vorab weiterhelfen soll. Konnte Ihre Frage hier nicht beantwortet werden oder Sie haben andere Fragen, kontaktieren Sie uns einfach per E-Mail unter support@com-ins-netz.de oder telefonisch über unser Support-Team unter 030-991 98 98 0
Für Änderungen am Template und/oder Plugin können Servicegebühren anfallen.
(siehe https://www.com-ins-netz.de/Preisliste-fuer-Dienstleistungen)
Ihr Com-ins-Netz-Team
(CiN GmbH)
Plugin-Download
Über den Download-Button können Sie das Plugin downloaden und unverbindlich - sogar ohne Registrierung oder Angabe Ihrer Shop-URL - für den Zeitraum von 14 Tagen ausgiebig testen.
Bitte beachten Sie das unsere Plugins den Ioncube Loader auf Ihrem
Server nutzen, dieser sollte auf Ihrem Server installiert werden!
Ioncube Loader
Sollte kein Ioncube Loader auf dem Server laufen, werden Sie
Fehlermeldungen oder weiße Seiten Ihres Onlineshops erhalten.
Weitere Hilfe dazu unter
https://www.com-ins-netz.de/FAQ
Lizenzhinweise
Die Laufzeit des Plugins ist auf 14 Tage beschränkt, danach deaktiviert es sich automatisch.
Wenn Sie es dauerhaft nutzen möchten, dann bitten wir Sie einfach, das Plugin zu kaufen, und wir werden es dann entsprechend Ihrer Zahlungsweise sofort freischalten.
Ein erneutes Herunterladen und Installieren ist nicht nötig - es wird automatisch als Vollversion aktiviert.
Nähere Informationen bezüglich der Laufzeit, Lizenz und Updates können Sie unseren Demo- und Lizenzhinweisen entnehmen.
Beim Kauf erhalten Sie eine Lizenz in der für Sie jeweiligen JTL-Shop Version.
Bitte beachten Sie, das für das für einige Plugins eine monatliche Transaktionsabrechnung entsprechend dem ausgewiesenen Transaktionsatzes (unter der Preisangabe, oder in den Merkmalen) gemäß unseren Transaktionsbedigungen erfolgt.
Die Abrechnungshöhe können Sie ebenfalls auch im Shop-Admin in den Plugin-Einstellungen einsehen und überprüfen.
Die Höhe der Transaktionsgebühr entnehmen Sie bitte aus der entsprechenden Auftragsbestätigung.
Bitte beachten Sie die Endbenutzer-Lizenzvereinbarung (EULA) der CiN GmbH com-ins-netz.de (lesen).
Shop-Domain
Die Lizenz ist an die von Ihnen hier im Rahmen des Bestell-Prozesses angegebene Shop-Domain gebunden.
Bitte tragen Sie Ihre Shop-Domain exakt so ein, wie Sie Ihnen im Shop-Admin auf dem Dashboard bei den Server-Informationen rechts neben »Host« angezeigt wird (ohne führendes http:// bzw. https:// sowie ohne die angezeigte IP-Adresse).
Es gibt noch keine Bewertungen.
1.3.1 - 30.9.2026
- GA4-Preis- und Wertübermittlung für Netto- und Bruttopreise vereinheitlicht.
-
- Varianten werden bei Warenkorb, Wunschliste und Bestellungen korrekt als item_variant übertragen.
-
- add_to_wishlist verwendet den tatsächlichen JTL-Artikel und übermittelt keine unvollständigen Artikeldaten.
-
- Suchergebnisanzahl für verschiedene JTL-Shop-Versionen verbessert.
-
- Kunden-ID-Ermittlung für JTL-Hook 362 kompatibler gemacht.
-
- Unterstützung für weitere JTL-Geschenk- und Promotion-Daten ergänzt.
-
- Telefon-, E-Mail- und WhatsApp-Events übertragen keine Zieladressen mehr.
-
- Consent-Verhalten für technisch notwendige Sicherheitsfunktionen angepasst.
-
- Kompatibilität mit der bestehenden Plugin-Konfiguration und den Migrationen beibehalten.
1.2.35-test - 28.09.2026
- Vollständig neu auf dem nachweislich installierbaren Paket 1.2.33 aufgebaut; 1.2.34-test ist keine Releasebasis.
- Ordnerstruktur,
Bootstrap.php, Migrationen, Vendor-Abhängigkeiten, Consent Mode sowie Google-Tag-, Ads- und GTM-Routing entsprechen weiterhin 1.2.33.
- Preisbasis wird nur innerhalb der jeweiligen GA4-Payload-Erzeugung gesetzt. Es gibt keine neuen globalen
setPriceBasisFromRevenueSource()-Aufrufe in JTL-Hooks.
- GA4-Artikelpreise, Warenkorbwerte, Checkoutwerte, Kauf und Vollerstattung verwenden konsistent die gewählte Netto- oder Bruttopreisbasis.
purchase.value und refund.value entsprechen der Summe price * quantity; Steuer und Versand bleiben separate Felder.
- Varianten aus JTL-Warenkorb-, Wunschlisten- und Bestellpositionen werden als
item_variant normalisiert.
-
add_to_wishlist lädt den echten JTL-Artikel anhand der Artikel-ID und verwirft weiterhin unvollständige Artikel statt Buttontexte oder Nullpreise zu senden.
- Suchergebnisanzahl unterstützt die öffentlichen JTL-Getter und Feldvarianten der geprüften Shopgenerationen.
- JTL-Hook 362 liest die bestätigte Kunden-ID primär aus
customerID und behält kKunde als Kompatibilitätsfallback.
- Gratisgeschenke unterstützen sowohl
freeGiftsAll als auch oArtikelGeschenk_arr.
- Promotionen werden nur mit einem serverseitig bekannten Artikel gesendet; Bannertexte werden nicht als Produktdaten erfunden.
- Telefon-, E-Mail- und WhatsApp-Ereignisse übertragen keine möglicherweise personenbezogene Zieladresse mehr.
- Das vorhandene Einstellungs- und
info.xml-Schema aus 1.2.33 bleibt erhalten; es wurden keine Einstellungen entfernt und keine Migrationen ergänzt.
- Wettbewerberbezeichnungen aus Changelog und Quellkommentaren entfernt; das Release-ZIP wird vor der Ausgabe zusätzlich auf fremde Marken- und Produktnamen geprüft.
-
security_storage wird für technisch notwendige Authentifizierungs-, Betrugspräventions- und Schutzfunktionen bereits im Consent-Default sowie unverändert in jedem Update auf granted gesetzt.
1.2.33-test - 21.09.2026
- Kritischen HTTP-500 auf JTL-Artikellisten behoben:
Illuminate\Support\Collection::$items wird nicht mehr wie eine öffentlich lesbare Eigenschaft behandelt.
- Laravel Collections werden über ihre öffentliche
all()-API normalisiert – sowohl als direkte Produktliste als auch auf jedem verschachtelten Pfadschritt.
- Der generische Datenleser greift nicht mehr allein aufgrund von
property_exists() auf Objektattribute zu. Öffentliche Eigenschaften, absichtlich bereitgestellte Magic Properties und öffentliche Getter bleiben unterstützt; fehlerhafte Magic-/Getter-Zugriffe fallen kontrolliert auf den Defaultwert zurück.
- Exceptions aus ungewöhnlichen Collection-/Iterator-Implementierungen werden kontrolliert abgefangen; eine nicht auswertbare Produktquelle wird ausgelassen, statt den Shop-Response abzubrechen.
- Die gleiche Zugriffssicherung wurde im Such-Fallback umgesetzt, damit Hauptservice und Sucherfassung auf unterschiedlichen JTL-Shop-5.2.x-Patchständen dasselbe Verhalten besitzen.
- Unbekannte Produktlistenstrukturen dürfen nicht mehr den JTL-Smarty-Output-Filter und damit die komplette Shopseite abbrechen. Nicht sicher auflösbare Trackingdaten werden stattdessen ausgelassen.
- Mindestversion bleibt JTL-Shop 5.2.2. Der Fix ist ohne Patchstand-Sonderlogik für den unterstützten Bereich 5.2.2 bis zum letzten 5.2.x-Patchstand ausgelegt.
- Versions-, Test- und Paketprüfung für
1.2.33-test ergänzt; die bestätigte Google-Tag-, Consent-, GA4-, Ads- und GTM-Logik wurde nicht verändert.
1.2.32-test - 19.09.2026
- Versionslinie bereinigt: letzter nachweisbarer Master-Release ist
1.2.13 vom 11.09.2026. Die Nummern 1.2.14 bis 1.2.31 sind interne Entwicklungs-/Teststaende; der aktuelle Gesamtstand bleibt folgerichtig 1.2.32 und wird nicht auf 1.2.14 zurueckgesetzt.
- Die bestehende und im Tag Assistant bestaetigte Google-Tag-Struktur bleibt unveraendert:
GT-... ist Loader-/Config-ID, G-... bleibt GA4-Ereignisziel und AW-... das Ads-Ziel. Es wird weiterhin kein drittes config(G-...) erzeugt.
- GA4-Ecommerce-Payloads und ihre Listener werden bei aktiver Konfiguration schon vor einer Browserfreigabe vorbereitet, aber erst nach wirksamem
google.analytics.ecommerce-Consent gesendet. Dadurch funktionieren Erstzustimmung auf derselben Seite und Rueckkehrer mit erhaltenem LocalStorage auch bei neuer PHP-Session.
- Eine nachgelagerte NOVA-Consent-Hydrierung wird sicher uebernommen. Nur sichtbare Freigaben duerfen den Laufzeitstatus hochstufen; echte Widerrufe laufen weiterhin ueber das Consent-
change-Ereignis.
- Warenkorb- und Checkout-
items enthalten nur echte JTL-Artikelpositionen (nPosTyp = 1). Versand, Zahlungsaufschlaege, Gutscheine und sonstige Nebenpositionen werden nicht mehr als Produkte an GA4 gesendet.
- Der Testmodus umgeht keine Deduplizierung mehr.
begin_checkout, add_shipping_info, add_payment_info und choose_shipping_payment werden auch beim Testen nicht durch wiederholte Seitenaufrufe vervielfacht.
-
view_item wird bei einem bestaetigten klassischen Warenkorb-Hinzufuegen auf derselben Antwortseite nicht ein zweites Mal erzeugt.
-
purchase, confirmation_page und refund erhalten zusaetzlich eine Browser-Session-Sperre anhand der transaction_id.
- Ereignisweite Geldfelder
value, tax und shipping werden waehrungsgerecht auf zwei Nachkommastellen gerundet. Item-Preise behalten die JTL-Rechengenauigkeit.
- Enhanced Conversions bleiben serverseitig normalisiert und SHA-256-gehasht. Unvollstaendige Anschriften sowie eine Telefonnummer ohne E-Mail oder vollstaendige Anschrift werden entsprechend den aktuellen Google-Vorgaben verworfen.
- Der CiN-Testbericht bewertet Ereignisse anhand des aktuell wirksamen Browser-Consents und speichert bei Enhanced Conversions weder Hashwerte noch Postleitzahlen, sondern nur das Vorhandensein der Felder.
- Die im Quellprojekt dauerhaft gepflegte Datei
ERKENNTNISSE_GA4_TRACKING.md dokumentiert Architektur, Seitentypen, Ereigniszuordnung, Tests, Umsatzdefinitionen und offene Freigabekriterien; Entwicklungsdokumente werden nicht in das Installationsarchiv gepackt.
- Das Installationsarchiv verwendet wieder ausschliesslich JTL-kompatible ZIP-Pfade mit
/. Windows-Compress-Archive hatte intern \ verwendet, sodass JTL den Pluginordner und die info.xml nicht erkennen konnte.
1.2.31-test - 18.09.2026
- GA4-Ecommerce-Ereignisse werden konsequent nur noch mit belastbaren Artikeldaten gesendet. Unvollstaendige oder aus Button-Texten erratene Produkte werden verworfen.
- Fehlerhaftes
add_to_wishlist mit item_name: "Auf den Wunschzettel", Preis 0 und fehlender Artikel-ID behoben. NOVA data-product-id-wl wird serverseitig auf echte Artikeldaten aufgeloest.
- AJAX-Ereignisse fuer Warenkorb und Wunschliste werden erst nach erfolgreicher Antwort gesendet. Ein Klick oder Formular-Submit allein gilt nicht mehr als Erfolg.
- Nicht-AJAX-Aktionen werden ueber bestaetigte JTL-Hooks erfasst; doppelte Client-/Server-Ereignisse wurden entfernt.
-
view_item_list und select_item fuer Artikel-/Suchlisten, Wunschliste, Vergleichsliste, Gratisgeschenke und Startseiten-Produktboxen ergaenzt. Nicht aufloesbare Smarty-Strukturen bleiben bewusst ohne Event.
- Reale NOVA-Startseiten-Slider abgesichert: Produktlinks werden ueber die serverseitige JTL-Artikel-URL auf echte Artikeldaten abgebildet, auch wenn das HTML weder
kArtikel noch SKU enthaelt. Die URL dient ausschliesslich als interner Lookup und niemals als GA4-item_id; slotID und andere Query-Parameter werden beim Abgleich ignoriert.
- Mehrdeutige Listenzuordnungen desselben Artikels werden nicht geraten. In diesem Fall entfallen nur die unsicheren
item_list_*-Felder.
-
view_item bleibt auch dann erhalten, wenn auf derselben Artikelseite zuvor ein Warenkorb-Ereignis vorgemerkt wurde.
- Checkout-Events praezisiert:
add_shipping_info und add_payment_info feuern erst nach bestaetigter Auswahl; begin_checkout bleibt pro Warenkorbinhalt dedupliziert.
-
login wird erst nach erfolgreicher Authentifizierung gesendet. Der JTL-Hook 145 allein ist kein Erfolgsnachweis, weil er vor der Passwortpruefung laeuft.
-
sign_up, Kontakt-Lead und Newsletter-Lead werden nur nach erfolgreicher JTL-Verarbeitung gesendet. Reine Formularversuche erzeugen keine Conversion mehr.
- Suche dedupliziert:
search beim bewussten Absenden, view_search_results auf der Ergebnis-Seite.
-
refund technisch ergaenzt, aber aus Datensicherheitsgruenden standardmaessig deaktiviert. Die neue Option darf nur aktiv sein, wenn jeder JTL-Wawi-Vollstorno tatsaechlich eine vollstaendige monetare Erstattung bedeutet.
- Event-spezifische Payload-Felder wie
transaction_id, coupon, shipping_tier und payment_type bleiben bei der zentralen Normalisierung erhalten.
- Promotions werden nur bei expliziten
data-promotion-*-/data-ga-promo-Attributen erfasst; allgemeine Woerter wie "Sale" werden nicht mehr als Beweis fuer eine Promotion verwendet.
- Die bestehende Google-Tag-, GA4-Ziel-, Ads- und Consent-Konfiguration wurde nicht geaendert.
1.2.30 - 18.09.2026
- Tag-ID und Ziel-ID im Ereignisrouting korrekt getrennt:
GT-... bleibt Loader-/Config-ID, waehrend GA4-Ereignisse per send_to an die Mess-/Ziel-ID G-... gesendet werden.
- Die in 1.2.29 eingefuehrte Umschreibung von
G-... auf GT-... unmittelbar vor gtag('event') wurde entfernt. GT-... ist keine GA4-Ziel-ID und darf deshalb nicht den G-...-Wert im Event ersetzen.
- Die Bereitschaftspruefung bildet die Verbindung nun ohne Payload-Manipulation ab: Das Ziel
G-... gilt als bereit, sobald sein kanonischer Tag GT-... konfiguriert ist. Es wird weiterhin kein config('G-...') erzeugt und somit auch kein dritter Tag angelegt.
- Kombiniertes Produkt-Remarketing verwendet wieder das fachlich korrekte
send_to: ['G-...', 'AW-...'] bei weiterhin nur zwei konfigurierten Google-Tags (GT-... und AW-...).
1.2.29 - 18.09.2026
- Ereignisrouting fuer zusammengefuehrte Google-Tags korrigiert: Ist eine kanonische
GT-...-ID hinterlegt, werden GA4-Ereignisse an diese bereits konfigurierte Tag-ID gesendet. Google leitet sie von dort an das verbundene G-...-Ziel weiter.
-
G-... wird nicht mehr nur intern als konfiguriert markiert, wenn tatsaechlich ausschliesslich config('GT-...') ausgefuehrt wurde. Diese Scheinbereitschaft hatte Ereignisse freigegeben, obwohl ihr bisheriges send_to: G-... in Tag Assistant als nicht geladenes Ziel galt.
- Der zentrale Router bildet auch aeltere oder explizit mit
G-... erzeugte Plugin-Payloads unmittelbar vor dem Versand auf die zugehoerige GT-...-ID ab. Ads-Ziele und Conversion-Labels bleiben unveraendert.
- Ohne separate
GT-...-ID bleibt das bisherige G-...-Routing vollstaendig erhalten.
- Debug-Ausgabe, Testmodus und HTML-Snippet-Uebersicht zeigen die tatsaechlich verwendete Analytics Event-ID getrennt an.
1.2.28 - 18.09.2026
- Kanonische Google Tag-ID und GA4-Ziel-ID werden getrennt behandelt:
GT-... initialisiert das verbundene Google-Tag, waehrend GA4-Ereignisse weiterhin per send_to an die Mess-ID G-... gesendet werden.
- Optionales Backend-Feld
Google Tag-ID ergaenzt. Ohne Eingabe bleibt G-... aus Kompatibilitaetsgruenden die Config-/Loader-ID; mit Eingabe wird kein zusaetzliches gtag('config', 'G-...') mehr erzeugt.
- Die GA4-Mess-ID wird nach erfolgreicher
GT-...-Konfiguration intern als versandbereites Ziel markiert. Dadurch bleiben Events korrekt geroutet, ohne in Tag Assistant einen leeren dritten G-...-Tag anzulegen.
- Domain-Mapping unterstuetzt jetzt auch kanonische
GT-...-IDs (analytics_tag_id, google_tag_id, tag_id oder gt).
- Debug-, Testmodus- und HTML-Snippet-Uebersicht zeigen Google Tag-ID, GA4-Mess-ID und die tatsaechlich verwendete Config-ID getrennt an.
1.2.27 - 18.09.2026
- Leeres doppeltes
view_item in Google Tag Assistant behoben: GA4-Ereignisse werden ohne konfigurierten GTM-...-Container nicht mehr zusaetzlich als neutrales {event: ...}-Objekt in den DataLayer geschrieben.
- Ereignisse werden erst nach dem zugehoerigen
gtag('config', ...) eingereiht. Das verhindert das von Tag Assistant gemeldete, nicht initialisierte Phantom-Ziel G-....
- Im Basic Consent Mode werden Loader und Zielkonfiguration nun synchron in die gtag-Warteschlange gestellt; der asynchrone Download von
gtag.js kann dadurch kein Ereignis mehr vor der Konfiguration passieren lassen.
- Mehrere Ereignisziele werden entsprechend der Google-Dokumentation als
send_to-Array (['G-...', 'AW-...']) statt als kommagetrennte Einzelzeichenkette uebergeben.
- Die gleiche Reihenfolgepruefung gilt fuer Google-Ads-Kauf-Conversions und Enhanced Conversions.
- Direkte Suchereignisse verwenden jetzt ebenfalls den zentralen Ereignis- und Zielrouter. Dadurch funktionieren
search und view_search_results auch bei deaktiviertem GTM-DataLayer ohne doppelte DataLayer-Kopie.
1.2.26 - 18.09.2026
- Reale JTL/NOVA-Ausgabe korrigiert: Der per
head->prepend() eingefügte Google-Bootstrap fehlte im finalen HTML, obwohl die Snippet-Übersicht ihn als eingebunden meldete. Consent-Default und window.cinGoogleAnalytics werden nun als erster Google-Block stabil per head->append() ausgegeben.
- JavaScript-Fehler in
eventAllowed() behoben: Die Funktion verwendete params.send_to, ohne params als Parameter zu erhalten.
-
window.gtag wird in Default-, Update- und Config-Block einheitlich global und idempotent initialisiert.
- Der Consent-Update-Block besitzt einen eigenen, Guard-geschützten Consent-Default-Fallback, damit auch optimierte oder veraltete Cache-Ausgaben immer
default vor update setzen.
- Alle GA4-Ereignisse ohne eigenes Ziel erhalten explizit
send_to: G-...; sie werden dadurch nicht versehentlich über die gemeinsame Default-Gruppe auch an Ads geroutet.
- Bei kombinierten
view_item-Zielen werden G-... und AW-... unmittelbar vor dem Senden nach dem jeweils wirksamen Consent gefiltert.
- Google-Tag-Blöcke werden in fester Reihenfolge ausgegeben: Consent Default, Consent Update, Loader sowie GA4-/Ads-Config, danach Events.
- Die Snippet-Übersicht prüft die zentralen Google-Blöcke nun im abschließenden phpQuery-DOM und meldet keinen Block mehr allein deshalb als vorhanden, weil seine Einfügung angefordert wurde.
1.2.25 - 18.09.2026
- Google-Tag-Konfiguration vereinfacht: Es gibt kein manuelles
GT-...-Feld. Als Loader-ID dient die GA4-Mess-ID G-...; wenn nur Google Ads aktiv ist, dient die Conversion-ID AW-... als Loader-ID.
- Wenn GA4 und Google Ads aktiv sind, konfiguriert ein gemeinsames
gtag.js beide Ziele mit gtag('config', 'G-...') und gtag('config', 'AW-...').
- Separates Google-Ads-
page_view inklusive altem Template und alter Payload-Methode entfernt.
- Produkt-Remarketing wird im regulären
view_item über ein consentabhängiges send_to integriert (G-..., AW-... oder beide Ziele).
- Retail-Artikel enthalten neben den GA4-Feldern auch
id und google_business_vertical: retail für dynamisches Google-Ads-Remarketing.
- Implizites Ads-
send_page_view aus der Ads-Konfiguration entfernt.
- Initialer Consent-Default ist durch
window.cinGoogleConsentDefaultInitialized gegen doppelte Initialisierung geschützt und bleibt vor Google-Konfigurationen und Events.
- Testplan und Debug-Ausgaben an das gemeinsame
view_item-Remarketing angepasst.
- Versionsnummern in Paketname,
info.xml und Changelog vereinheitlicht.
1.2.13 - 11.9.2026
1.2.20 - 13.08.2026
-
Fehlende eCommerce-Events behoben (
view_item_list, add_to_cart, begin_checkout, add_to_wishlist, remove_from_wishlist u. a.): consentGranted() hat den Consent-Zustand aus der Checkbox im #consent-manager gelesen und damit den Serverzustand überstimmt. Der Shop liefert diese Checkbox aber nie mit checked aus – den Haken setzt erst consent.js aus dem localStorage, und dieses Script läuft mit defer, also nach den Plugin-Scripten. Jede Consent-Prüfung beim Seitenaufbau ergab dadurch denied. War der localStorage leer oder von _checkVersion() nach einem Versionswechsel geleert, blieben die Events dauerhaft aus, obwohl die Server-Session den Consent hatte.
- Ab jetzt gilt der serverseitig gerenderte Zustand (
window.cinGoogleConsentState) als maßgeblich; eine angehakte Checkbox wirkt zusätzlich sofort als Zustimmung, ein Widerruf im Dialog greift weiterhin über das change-Event
-
begin_checkout, add_shipping_info, add_payment_info und choose_shipping_payment überspringen im Testmodus ihre Einmal-pro-Warenkorb-Sperre, damit ein erneuter Aufruf der Checkout-Seite beim Testen nicht wie ein Fehler aussieht
- Duplikatsschutz der clientseitigen Events markiert ein Event nur noch als gesendet, wenn es tatsächlich abgesetzt wurde – vorher blockierte er 1,5 Sekunden lang jeden Wiederholversuch nach einem blockierten Event
- Testmodus zeigt im Tab Snippets jetzt Server-Consent, Checkbox-Zustand und wirksamen Consent nebeneinander und markiert Abweichungen
1.2.19 - 13.08.2026
- Testmodus ergänzt:
?cinGaTest=1 im Frontend (bei aktiver Debug-Einstellung) blendet ein Overlay ein, das jeden dataLayer-/gtag-Push aufzeichnet und gegen eine serverseitig berechnete Soll-Liste für den jeweiligen Seitentyp prüft
- Soll-Liste deckt Consent Mode V2, GA4 eCommerce, Engagement, Google Ads Remarketing (retail), Google Ads Conversion inkl. Erweiterte Conversions und die GTM-DataLayer-Pushes ab und nennt bei nicht erwarteten Events den Grund
- Aufzeichnung läuft über alle besuchten Seiten einer Session zusammen, sodass ein kompletter Durchlauf einen einzigen Bericht ergibt; Button "Bericht kopieren" legt ihn als Text in die Zwischenablage und in die Konsole
- Doku-Seite "Doku Allg / GA / Ads" um eine Anleitung zum Testmodus erweitert
1.2.18 - 13.08.2026
- Google Ads Remarketing:
page_view wird jetzt im <head> direkt hinter dem Google Tag ausgegeben (Einbindungsmethode "after") statt am Ende des <body>
- Google Ads Remarketing funktioniert jetzt auch, wenn nur "Google Ads Remarketing verwenden?" aktiv ist und das Conversion Tracking aus bleibt
- Google Ads Kauf-Conversion vom eCommerce-Block entkoppelt: sie hängt nur noch am
google.ads Consent und wird nicht mehr durch abgelehnten Statistik-/eCommerce-Consent oder die Einstellung "Enhanced Ecommerce Daten erfassen?" blockiert
- Google Ads Kauf-Conversion wird jetzt zusätzlich auf der Bestellstatus-Seite (PAGE_BESTELLSTATUS) ausgeliefert und pro Bestellung nur einmal je Session gesendet
- Erweiterte Conversions: Telefonnummer wird nicht mehr nur zusammen mit einer E-Mail-Adresse übergeben, zusätzlich werden SHA256-Vor-/Nachname sowie PLZ und Land als
address gesendet
- Remarketing- und Conversion-Snippets verweigern das Senden jetzt, wenn der Consent-Helper fehlt (vorher wurde ohne Helper gesendet)
- Alle vom Plugin eingefügten Snippets sind im Quelltext durch
<!-- CiN Consent Manager | START/END ... --> und data-cin-snippet="..." markiert; am Ende des <body> steht eine Übersicht aller Snippets inklusive Grund für nicht eingebundene
- Such-Debug-Log der Hooks 140/160/161 schreibt nur noch bei aktivierter Debug-Einstellung
-
remove_from_wishlist funktioniert wieder: Entfernen auf der Wunschlistenseite (Einzelartikel und "Alle Artikel entfernen") wird jetzt serverseitig in Hook 214 erfasst, solange die Position noch existiert – JTL bietet für Wishlist::entfernePos() keinen eigenen Hook
-
remove_from_wishlist über den AJAX-Herz-Toggle behoben: trackedItem() lieferte ein leeres, aber wahrheitswertiges Objekt zurück und blockierte damit die Fallback-Kette, sodass das Event mangels item_id/item_name verworfen wurde
- Erkennungsmuster der Warenkorb-/Wunschlisten-Aktionen korrigiert:
descriptorFor() las pro Element nur das erste Attribut (bei data-toggle="tooltip" also nie name="remove"), und das Muster l.*sch schlug bereits bei der Formular-Action .../wunschliste an
- GA4 bekommt nicht mehr den Button-Tooltip ("Artikel entfernen") als
item_name untergeschoben
- Hook 214 von Fremdcode befreit: enthielt Code aus dem Pfandartikel-Plugin, schrieb bei jedem Seitenaufruf eine Datei ins Shop-Root und manipulierte den Warenkorb
1.2.13 - 04.08.2026
- Google Consent Mode V2 um Basic/Advanced Mode, Ads-Consent und Tag-Manager-Consent erweitert
- GA4 eCommerce-Tracking um Warenkorb, Checkout, Versand-/Zahlungsinformationen und Purchase-Payloads ergänzt
- Google Ads Purchase Conversion Tracking, Search Console Verification, Sitelinks Search Box und Domain Mapping ergänzt
- Google Ads Enhanced Conversions senden optional SHA256-gehashte Kundendaten nach Ads-Consent
- Engagement-Events für Scrolltiefe, Lesezeit, Site Search, Lead-Generierung, Signup, Content-Auswahl, Sharing und Kontakt-Klicks ergänzt
- Google-Settings in Tabs für Allgemein, GA4, Ads, GTM, Doku und Status aufgeteilt
- Search-Console-Verifikation akzeptiert kompletten HTML-Meta-Tag oder nur den Content-Token
- Google-Tracking-Einstellungen umfassend ergänzt: Verwenden-Schalter,
send_to, Revenue-/Value-Auswahl, Cookie-Flags, Cookie-Unterbindung, DataLayer-Modus, DataLayer-Name, GTM-Expertenfelder, Statuslink und ProfitFinder-URL
- Frontend-Ausgabe wertet die neuen GA4-/Ads-/GTM-Schalter, Cookie-Storage-Optionen, DataLayer-Konfiguration und konfigurierbare Lesezeit-Intervalle aus
1.2.12 - 5.11.2025
1.2.11 - 28.11.2024
- fehlende Dateien für Extension Store hinzugefügt
1.2.10 - 28.11.2024
- Fehlendes page_view behoben
1.2.9 - 29.2.2024
- kleinere fixes bei der kommunikation mit Google
1.2.8 - 23.2.2024
- Google Consent V2 Implementierung
1.2.5 - 22.9.2023
- Darstellungsfehler von Scripten im Backend behoben
- Fehler bei der Ausspielung der Scripte behoben
1.2.4 - 7.9.2023
- unterschiedliches verhalten zwischen mysql und maria db behoben
1.2.3 - 7.9.2023
- Script verlust bei Update gefixt
1.2.2 - 30.8.2023
- Update auf das GA4 Script von Google
1.2.1 - 30.8.2023
1.2.0 - 29.8.2023
- Beta Version
- Angepasst an Shop 5.2.2+
- Fehlerbehebungen
1.1.3 - 19.7.2022
1.1.2 - 15.7.2022
- Beim anlegen/bearbeiten eines Snippets lassen sich jetzt alle Seiten de/aktivieren.
- Fehlerbehebungen
1.1.1 - 19.6.2022