Στήνω το ecommerce tracking του WooCommerce ώστε τα δεδομένα του GA4 να συμφωνούν με τις παραγγελίες που βλέπεις στο admin σου — χωρίς διπλά purchase events και χωρίς χαμένο revenue.
Το GA4 ecommerce tracking σε WooCommerce σπάνια είναι λάθος επειδή «δεν μπήκε ο κωδικός». Είναι λάθος επειδή μπήκε δύο φορές, επειδή στέλνει τιμές με ΦΠΑ ενώ το backend τις κρατάει χωρίς, ή επειδή το purchase event ξαναφεύγει κάθε φορά που κάποιος κάνει refresh στη σελίδα ευχαριστίας.
Το αποτέλεσμα το ξέρεις: το GA4 λέει 480 παραγγελίες, το WooCommerce 412, το Google Ads κάτι τρίτο. Και επειδή κάθε bidding strategy και κάθε report στηρίζεται σε αυτά τα νούμερα, βελτιστοποιείς πάνω σε δεδομένα που δεν ισχύουν.
Παρακάτω εξηγώ τι φταίει στις περισσότερες υλοποιήσεις WooCommerce, ποια events πρέπει να στέλνει κάθε e-shop, πώς χτίζεται σωστά το data layer με WooCommerce hooks, και τι σημαίνει «τα νούμερα συμφωνούν» στην πράξη.
01
Γιατί τα plugins δεν αρκούν
Τα δημοφιλή plugins — MonsterInsights, Site Kit, GA for WooCommerce, ή όποιο GTM plugin έχει εγκαταστήσει ο προηγούμενος developer — κάνουν καλά μία δουλειά: βάζουν γρήγορα ένα βασικό tracking. Το πρόβλημα ξεκινά όταν συνυπάρχουν δύο από αυτά, ή όταν ένα plugin στέλνει το ίδιο event που στέλνει ήδη το GTM container σου.
Το πιο συχνό εύρημα σε audit: το purchase event φεύγει και από το plugin και από το GTM tag. Το GA4 δεν έχει native deduplication για ecommerce events, οπότε τα έσοδα εμφανίζονται διπλά. Το δεύτερο πιο συχνό: το plugin στέλνει μόνο purchase, χωρίς view_item, add_to_cart ή begin_checkout — δηλαδή δεν έχεις funnel για να δεις πού χάνεις κόσμο.
Υπάρχουν και πιο ύπουλα: plugins που στέλνουν item_id το SKU σε ένα event και το post ID σε άλλο, οπότε το ίδιο προϊόν εμφανίζεται δύο φορές στα reports· plugins που δεν καλύπτουν variable products· plugins που σπάνε σιωπηλά μετά από update του WooCommerce και το καταλαβαίνεις έναν μήνα μετά.
Διπλά purchase events από plugin + GTM tag ταυτόχρονα
Ελλιπές funnel: μόνο purchase, χωρίς τα ενδιάμεσα βήματα
Ασυνεπή item_id ανάμεσα σε SKU και post ID
Variable products και bundles που καταγράφονται λάθος
Τιμές με ή χωρίς ΦΠΑ και μεταφορικά, χωρίς σαφή κανόνα
02
Τι περιλαμβάνει η σωστή υλοποίηση
Η σωστή υλοποίηση ξεκινά με απόφαση αρχιτεκτονικής: μία και μοναδική πηγή αλήθειας. Το data layer γεμίζει από το WooCommerce, το GTM διαβάζει από το data layer, και όλα τα destinations (GA4, Google Ads, Meta) τροφοδοτούνται από εκεί. Κανένα plugin δεν στέλνει παράλληλα δικά του events.
Μετά ορίζουμε το schema: ποια πεδία στέλνει κάθε item (item_id, item_name, item_category, item_variant, price, quantity, index), σε ποιο νόμισμα, με ή χωρίς ΦΠΑ, και τι μπαίνει στο value του purchase — υποσύνολο, μεταφορικά, εκπτώσεις.
Τέλος έρχεται η επαλήθευση. Δεν παραδίδεται setup χωρίς σύγκριση GA4 έναντι WooCommerce reports για συγκεκριμένο διάστημα, με αποδεκτή απόκλιση και τεκμηριωμένη εξήγηση για ό,τι μένει εκτός (ad blockers, consent, refunds).
Καθαρισμός υπάρχοντος setup και αφαίρεση διπλών εγκαταστάσεων
Server-side ή hook-based data layer με σταθερό schema
GTM container με ένα tag ανά destination και ρητά triggers
Consent Mode v2 ώστε το tracking να σέβεται το banner
Reconciliation report: GA4 vs WooCommerce, παραγγελία προς παραγγελία
03
Τα events που πρέπει να στέλνει κάθε e-shop
Το GA4 έχει συγκεκριμένο ecommerce schema. Αν το ακολουθήσεις, δουλεύουν αυτόματα τα built-in reports, τα funnels και τα audiences. Αν στείλεις custom ονόματα, χάνεις όλη αυτή τη λειτουργικότητα και ξαναχτίζεις τα πάντα με το χέρι.
view_item_list και select_item
Στέλνονται στις σελίδες κατηγορίας και στα αποτελέσματα αναζήτησης. Σου δείχνουν ποιες λίστες παράγουν κλικ και ποια προϊόντα αγνοούνται, κάτι που δεν φαίνεται πουθενά αλλού.
view_item
Στη σελίδα προϊόντος, με πλήρη item data. Είναι η βάση για το conversion rate ανά προϊόν και για remarketing audiences με νόημα.
add_to_cart και remove_from_cart
Στα WooCommerce hooks του καλαθιού, όχι μόνο στο κλικ του κουμπιού — αλλιώς χάνεις τα AJAX add-to-cart από τις λίστες και τα quick views.
begin_checkout και add_payment_info
Τα δύο βήματα όπου χάνεται το μεγαλύτερο ποσοστό. Χωρίς αυτά δεν μπορείς να ξεχωρίσεις αν το πρόβλημα είναι τα μεταφορικά ή ο τρόπος πληρωμής.
purchase και refund
Το purchase μία φορά ανά transaction_id, με value, tax, shipping και items. Το refund κλείνει τον κύκλο ώστε το revenue στο GA4 να μην είναι διαρκώς φουσκωμένο.
04
Data layer και WooCommerce hooks
Στο WooCommerce το σωστό σημείο για κάθε event είναι ένα hook, όχι ένα selector στο DOM. Το woocommerce_add_to_cart, το woocommerce_thankyou και τα αντίστοιχα template hooks δίνουν τα πραγματικά δεδομένα της παραγγελίας, ενώ ένα click listener δίνει ό,τι προλάβει να διαβάσει από τη σελίδα.
Το θέμα με τα διπλά purchase events λύνεται εδώ. Η σελίδα ευχαριστίας είναι μια κανονική σελίδα: ο χρήστης μπορεί να την ανανεώσει, να τη μοιραστεί, να γυρίσει σε αυτήν από το ιστορικό. Χωρίς προστασία, κάθε φόρτωση στέλνει νέο purchase. Η λύση είναι flag στην παραγγελία (order meta) που σημειώνει ότι το event έχει ήδη σταλεί, σε συνδυασμό με σταθερό transaction_id.
Για refunds, το event στέλνεται όταν αλλάζει το status της παραγγελίας σε refunded — με το ίδιο transaction_id και τα items που επιστράφηκαν, ώστε το GA4 να αφαιρέσει το σωστό ποσό. Σε e-shop με ρούχα ή παπούτσια, όπου οι επιστροφές είναι κανονικότητα, χωρίς refund tracking το ROAS που βλέπεις είναι φαντασία.
05
Σύνδεση με Google Ads και Meta
Μόλις το data layer είναι σταθερό, η σύνδεση με τα διαφημιστικά platforms γίνεται τετριμμένη: το ίδιο purchase event τροφοδοτεί το Google Ads conversion με σωστό value και currency, και το Meta CAPI με τα ίδια items.
Εδώ κερδίζεις δύο πράγματα. Πρώτον, το Smart Bidding μαθαίνει από πραγματικές αξίες παραγγελιών αντί για σταθερή τιμή ανά conversion. Δεύτερον, τα conversions στο Google Ads και τα conversions στο GA4 αναφέρονται στο ίδιο γεγονός, οπότε οι διαφορές τους εξηγούνται από attribution — όχι από σπασμένο tracking.
Αν θέλεις να μειώσεις και τις απώλειες από ad blockers και ITP, το επόμενο βήμα είναι το server-side tracking, όπου τα events περνούν από δικό σου endpoint πριν φύγουν προς τα platforms.
Η ΔΙΑΔΙΚΑΣΙΑ
Πώς δουλεύουμε.
01
STEP 1 / 5
Audit υπάρχοντος setup
Καταγράφω τι στέλνει σήμερα το site: plugins, GTM tags, hardcoded scripts, διπλά events. Παίρνεις λίστα με ό,τι είναι λάθος και γιατί.
02
STEP 2 / 5
Σχεδιασμός data layer
Ορίζουμε schema, ονόματα events, πεδία items και κανόνες για ΦΠΑ, μεταφορικά και εκπτώσεις. Ένα έγγραφο που καταλαβαίνει και ο developer σου.
03
STEP 3 / 5
Υλοποίηση σε WooCommerce hooks
Τα events μπαίνουν στα σωστά hooks, με προστασία από διπλό purchase και υποστήριξη variable products.
04
STEP 4 / 5
GTM, GA4 και destinations
Ένα tag ανά destination, ρητά triggers, Consent Mode v2 και σύνδεση με Google Ads και Meta.
05
STEP 5 / 5
Επαλήθευση και παράδοση
Σύγκριση GA4 με WooCommerce reports, τεκμηρίωση αποκλίσεων και documentation για τη μελλοντική συντήρηση.
ΓΙΑΤΙ ΕΧΕΙ ΣΗΜΑΣΙΑ
Τι κερδίζεις.
Έσοδα στο GA4 που συμφωνούν με το WooCommerce
01
Πλήρες funnel από view_item μέχρι purchase
02
Μηδέν διπλά purchase events
03
Refunds που αφαιρούνται σωστά από το revenue
04
Google Ads και Meta με πραγματικές αξίες παραγγελιών
Θέλεις τα νούμερα του GA4 να συμφωνούν με τις παραγγελίες σου;
Στέλνεις το URL του e-shop και παίρνεις συγκεκριμένη εικόνα για το τι στέλνει σήμερα το tracking σου και τι πρέπει να αλλάξει.
FAQ
Συχνές ερωτήσεις για GA4 & WooCommerce
Οι τρεις βασικές αιτίες είναι τα διπλά purchase events από παράλληλα plugins, τα χαμένα events από ad blockers και άρνηση consent, και οι διαφορετικοί κανόνες για ΦΠΑ και μεταφορικά στο value. Μια απόκλιση της τάξης του 2-5% είναι φυσιολογική· το 20% σημαίνει σπασμένο setup.
ΑΣ ΜΙΛΗΣΟΥΜΕ
Έτοιμος να αποδώσειτο MarTech stackσου;
Διάλεξε μία ώρα από το ημερολόγιο και κλείσε δωρεάν 15λεπτο intro call. Προτιμάς να στείλεις brief; Χρησιμοποίησε τη φόρμα δίπλα.