GA4 × WOOCOMMERCE

    GA4 Ecommerce Tracking για WooCommerce.

    Στήνω το 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 με πραγματικές αξίες παραγγελιών
    05
    Documentation ώστε να μη σπάει στο επόμενο update
    06
    LET'S BUILD

    Θέλεις τα νούμερα του 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; Χρησιμοποίησε τη φόρμα δίπλα.