Οδηγός Ενσωμάτωσης Συναίνεσης Cookies για το PostHog Product Analytics: Βιβλίο Οδηγιών Ανάπτυξης Self-Hosted και Cloud για το 2026
Το PostHog είναι η πλατφόρμα αναλυτικής προϊόντος στην οποία στρέφονται οι ομάδες μηχανικών όταν θέλουν αναλυτική προϊόντος, αναπαραγωγή συνεδρίας, σημαίες λειτουργιών, πειραματισμό, έρευνες και αναλυτική ιστού σε μια ενιαία στοίβα αντί για πέντε προμηθευτές ραμμένους μαζί. Αυτή η ομαδοποίηση είναι η αξιακή πρόταση. Είναι επίσης ο λόγος που μια προεπιλεγμένη ανάπτυξη PostHog φέρει πιο συγκεντρωμένες υποχρεώσεις συναίνεσης από σχεδόν οποιοδήποτε άλλο εργαλείο θα εγκαταστήσει ένας εκδότης. Η ίδια κλήση posthog.init() που καταγράφει γεγονότα προϊόντος μπορεί να ξεκινήσει την εγγραφή συνεδρίας, να αξιολογήσει σημαίες λειτουργιών έναντι ενός επίμονου αναγνωριστικού και να τοποθετήσει σε ουρά εμφανίσεις ερευνών — και κάθε μία από αυτές τις δραστηριότητες ενεργοποιεί διαφορετική νομική βάση βάσει GDPR, ePrivacy και CCPA. Τα καλά νέα είναι ότι το PostHog διαθέτει ένα από τα πιο λεπτομερή API συναίνεσης στο οικοσύστημα αναλυτικής· η δουλειά είναι στο να το χρησιμοποιήσετε πραγματικά. Αυτός ο οδηγός περιγράφει πώς να αναπτύξετε το PostHog ώστε η νομική θέση να ταιριάζει με την τεχνική πραγματικότητα σε εγκαταστάσεις self-hosted και PostHog Cloud, σε περιοχές US και EU, και σε ολόκληρη την επιφάνεια αναλυτικής, αναπαραγωγής, σημαιών και ερευνών.
Γιατί το PostHog απαιτεί συναίνεση — και γιατί η απάντηση δεν είναι η ίδια για κάθε μονάδα
Το web SDK του PostHog δεν είναι μια παθητική ετικέτα σελίδας. Σε μια προεπιλεγμένη αρχικοποίηση το SDK ορίζει μία ή περισσότερες εγγραφές επιμονής — κατά προεπιλογή ένα συνδυαστικό σχήμα cookie και localStorage με κλειδί κάτω από ph_{projectKey}_posthog — δημιουργεί ένα σταθερό διακριτό αναγνωριστικό, καταγράφει την αρχική προβολή σελίδας με παραπομπή, παραμέτρους UTM και αναγνωριστικά κλικ, και ανοίγει ένα μακρόχρονο κανάλι γεγονότων στον διαμορφωμένο κεντρικό υπολογιστή ingest. Εάν η αναπαραγωγή συνεδρίας είναι ενεργοποιημένη σε επίπεδο έργου, το SDK αρχίζει επίσης να μεταδίδει ένα συνεχές αρχείο του αποδομημένου DOM, συντεταγμένων ποντικιού και γεγονότων εισόδου. Εάν έχουν διαμορφωθεί σημαίες λειτουργιών, το SDK τις αξιολογεί έναντι του διακριτού αναγνωριστικού, διατηρεί τις αποφάσεις για τη συνεδρία και εκπέμπει ένα γεγονός $feature_flag_called για κάθε αξιολόγηση.
Κάθε μία από αυτές τις δραστηριότητες αντιστοιχεί σε διαφορετική πύλη συναίνεσης. Η διατήρηση ενός διακριτού αναγνωριστικού είναι μια λειτουργία αποθήκευσης-και-πρόσβασης βάσει του Article 5(3) της Οδηγίας ePrivacy και απαιτεί προηγούμενη, ελεύθερα δοθείσα, συγκεκριμένη, ενημερωμένη και αδιαμφισβήτητη συναίνεση σε ΕΟΧ, UK και οποιαδήποτε δικαιοδοσία έχει υιοθετήσει το ίδιο πρότυπο. Η καταγραφή γεγονότων συμπεριφοράς αποτελεί επεξεργασία προσωπικών δεδομένων βάσει GDPR, καθώς ο συνδυασμός αναγνωριστικού, διεύθυνσης IP και ίχνους συμπεριφοράς αρκεί για να εξατομικεύσει ένα άτομο. Η αναπαραγωγή συνεδρίας εμπίπτει σε ξεχωριστή, αυστηρότερη κατηγορία βάσει της καθοδήγησης του EDPB για την αναπαραγωγή συνεδρίας — η αναπαραγωγή καταγράφει το αποδομημένο DOM και κάθε μη καλυμμένο πεδίο εισόδου και απαιτεί ρητή, λεπτομερή συναίνεση διακριτή από τη γενική συναίνεση αναλυτικής. Η αξιολόγηση σημαιών λειτουργιών είναι η λεπτή περίπτωση: ένας έλεγχος σημαίας που επιστρέφει boolean δεν απαιτεί από μόνος του συναίνεση, αλλά η διατήρηση της ανάθεσης σημαίας του χρήστη σε ένα σταθερό αναγνωριστικό μεταξύ συνεδριών απαιτεί, διότι έτσι ο πειραματισμός βάσει σημαιών δημιουργεί ανιχνεύσιμα δεδομένα σε επίπεδο χρήστη.
Τι γράφει το PostHog πριν τη συναίνεση — και τι πρέπει να καταστέλλεται
Το προεπιλεγμένο PostHog Browser SDK γράφει τα εξής κατά την αρχικοποίηση: μία συνδυαστική εγγραφή cookie και localStorage κάτω από ph_{projectKey}_posthog που περιέχει το διακριτό αναγνωριστικό, το αναγνωριστικό συνεδρίας και τις αποφάσεις σημαιών λειτουργιών, συν, όταν η αναπαραγωγή συνεδρίας είναι ενεργοποιημένη, έναν επιπλέον buffer εγγραφής στη μνήμη που αδειάζει στο endpoint ingest κάθε λίγα δευτερόλεπτα. Το SDK στέλνει επίσης ένα άμεσο γεγονός $pageview και, εάν η αυτόματη καταγραφή είναι ενεργοποιημένη, κάθε επόμενο κλικ, αλληλεπίδραση φόρμας και rage-click στη σελίδα.
Το συνιστώμενο μοτίβο είναι να αρχικοποιήσετε το PostHog με opt_out_capturing_by_default: true και disable_session_recording: true, και στη συνέχεια να αναστρέψετε και τις δύο σημαίες μόλις το banner συναίνεσης επιστρέψει θετικό σήμα. Αυτή είναι η θέση ενσωμάτωσης που η τεκμηρίωση PostHog συνιστά τώρα, και είναι η θέση που επιβιώνει από την επαλήθευση ενός ρυθμιστή επειδή αναστρέφει την προεπιλογή: τίποτα δεν καταγράφεται μέχρι να καταγραφεί η συναίνεση, και το SDK παρέχει μια καθαρή μετάβαση αντί για μια retrofit με κατάσταση.
Τα cookies, οι εγγραφές localStorage και τα αναγνωριστικά που διατηρεί το PostHog
Το Browser SDK 1.x γράφει μία εγγραφή επιμονής ανά έργο, με κλειδί κάτω από ph_{projectKey}_posthog, με προεπιλεγμένη λήξη 365 ημερών. Η επιλογή init persistence ελέγχει τον υποκείμενο μηχανισμό: μόνο cookie, μόνο localStorage, localStorage+cookie (η προεπιλογή), sessionStorage ή memory. Για μια ανάπτυξη που δίνει προτεραιότητα στη συναίνεση, η επιμονή memory είναι η σωστή προεπιλογή όταν η συναίνεση δεν έχει ακόμα χορηγηθεί — διασφαλίζει ότι κανένα αναγνωριστικό δεν επιβιώνει τη συνεδρία σελίδας — με μετάβαση σε localStorage+cookie μόλις αναστραφεί η συναίνεση. Το SDK γράφει επίσης ένα σήμα opt-in ή opt-out κάτω από __ph_opt_in_out_{projectKey} για να θυμάται την επιλογή του χρήστη μεταξύ επισκέψεων· αυτό το σήμα είναι από μόνο του ένα απολύτως απαραίτητο cookie επειδή διατηρεί μια απόφαση συναίνεσης.
Αντιστοίχιση μονάδων PostHog σε πλαίσια συναίνεσης
Το PostHog δεν υλοποιεί εγγενώς το IAB TCF ή την IAB Global Privacy Platform, και δεν έχει κατασκευαστεί ως προμηθευτής adtech. Ωστόσο, ενσωματώνεται με το Google Consent Mode v2 μέσω γεφύρωσης από την πλευρά του εκδότη, εκθέτει ένα εγγενές API opt-in και opt-out, και σέβεται την κεφαλίδα Do Not Track μέσω της επιλογής init respect_dnt. Το μοτίβο που λειτουργεί στην παραγωγή αντιμετωπίζει κάθε μονάδα PostHog ως ξεχωριστή πύλη δεσμευμένη σε ένα συγκεκριμένο σήμα CMP.
- Γεγονότα αναλυτικής προϊόντος συνδέονται με τον σκοπό αναλυτικής. Σε όρους TCF αυτό είναι συνηθέστερα σκοπός 8 (μέτρηση απόδοσης περιεχομένου) σε συνδυασμό με σκοπό 1 (αποθήκευση και/ή πρόσβαση σε πληροφορίες). Για το Consent Mode αυτό αντιστοιχεί στο analytics_storage.
- Η αναπαραγωγή συνεδρίας βρίσκεται πίσω από αυστηρότερη πύλη. Η αναπαραγωγή συνεδρίας του PostHog καταγράφει το αποδομημένο DOM και κάθε μη καλυμμένο πεδίο εισόδου, οπότε μια συγκατάθεση επιπέδου προτιμήσεων ή έρευνας διακριτή από την αναλυτική είναι η υπερασπίσιμη θέση βάσει της καθοδήγησης EDPB.
- Σημαίες λειτουργιών και πειραματισμός μπορούν να εκτελεστούν με εφήμερη, in-memory αξιολόγηση βάσει νόμιμου συμφέροντος όταν ο στόχος είναι μόνο να ποικίλει η αποδομημένη σελίδα. Η επίμονη ανάθεση σημαίας δεσμευμένη σε σταθερό αναγνωριστικό μεταξύ συνεδριών απαιτεί την ίδια συναίνεση με την αναλυτική, επειδή τότε η σημαία γίνεται ανιχνεύσιμο σημείο δεδομένων σε επίπεδο χρήστη.
- Έρευνες και ανατροφοδότηση συνδέονται με την ίδια πύλη με την αναπαραγωγή συνεδρίας όταν συλλέγουν ελεύθερο κείμενο, ή με την πύλη αναλυτικής όταν συλλέγουν μόνο βαθμολογίες ή απαντήσεις μονής επιλογής.
Το μοτίβο ενσωμάτωσης που λειτουργεί
Η αναφορική ανάπτυξη έχει τέσσερα μέρη: ένα CMP που εκθέτει ένα γεγονός αλλαγής συναίνεσης σε πραγματικό χρόνο, ένα αναβαλλόμενο bootstrap που αρχικοποιεί το PostHog με απενεργοποιημένη καταγραφή και αναπαραγωγή, έναν ακροατή συναίνεσης που αναστρέφει το opt_in_capturing και τον διακόπτη εγγραφής όταν ανοίγουν οι σχετικές πύλες, και μια διαδρομή ανάκλησης που καλεί το opt_out_capturing, σταματά τον buffer αναπαραγωγής και διαγράφει επίμονα αναγνωριστικά μέσω του API επαναφοράς του SDK.
Υλοποίηση ιστού
Το πιο καθαρό μοτίβο είναι να φορτώσετε το PostHog SDK σε κάθε σελίδα αλλά να καλέσετε posthog.init(apiKey, { api_host: 'https://eu.posthog.com', opt_out_capturing_by_default: true, disable_session_recording: true, persistence: 'memory', respect_dnt: true }) ως αρχικό bootstrap. Εγγραφείτε στο γεγονός αλλαγής συναίνεσης του CMP. Όταν η κατηγορία αναλυτικής μεταβεί σε true, καλέστε posthog.set_config({ persistence: 'localStorage+cookie' }) ακολουθούμενο από posthog.opt_in_capturing()· αυτό επανενεργοποιεί την καταγραφή γεγονότων και η μετάβαση επιμονής αρχίζει να γράφει το διακριτό αναγνωριστικό. Όταν η κατηγορία αναπαραγωγής συνεδρίας μεταβεί σε true, καλέστε posthog.startSessionRecording(). Όταν οποιαδήποτε πύλη ανακληθεί, καλέστε posthog.opt_out_capturing() για την πύλη αναλυτικής ή posthog.stopSessionRecording() για την πύλη αναπαραγωγής, λήξτε τις σχετικές εγγραφές επιμονής μέσω posthog.reset(), και στείλτε αίτημα διαγραφής μέσω του GDPR API του PostHog εάν ο χρήστης έχει ασκήσει το δικαίωμα διαγραφής.
Επιλογή περιοχής: PostHog Cloud US vs EU vs self-hosted
Το PostHog λειτουργεί σε δύο περιοχές cloud — US (us.posthog.com) και EU (eu.posthog.com) — και υποστηρίζει εγκαταστάσεις self-hosted στη δική τους υποδομή του πελάτη. Για κίνηση ΕΟΧ και UK, το EU cloud είναι η σωστή προεπιλογή· διατηρεί ingest, επεξεργασία και αποθήκευση εντός ΕΟΧ και μειώνει την έκθεση Schrems II που φέρει οποιαδήποτε ανάπτυξη αναλυτικής σε US περιοχή. Η επιλογή init api_host καρφώνει την περιοχή. Το PostHog self-hosted μεταφέρει ολόκληρη τη στοίβα στη δική τους υποδομή του εκδότη, που είναι η ισχυρότερη θέση κατοικίας δεδομένων αλλά δεν αφαιρεί τις υποχρεώσεις συναίνεσης — η νομική βάση ακολουθεί τα δεδομένα, όχι τον φορέα. Όποια επιλογή και αν επιλεγεί πρέπει να αντικατοπτρίζεται στην ειδοποίηση απορρήτου και στα αρχεία επεξεργασίας του υπευθύνου.
Καταγραφή από την πλευρά διακομιστή
Το PostHog υποστηρίζει ingest γεγονότων από την πλευρά διακομιστή μέσω των SDK Python, Node, Go, Ruby και PHP. Τα γεγονότα από την πλευρά διακομιστή δεν εξαιρούνται από τη συναίνεση — η νομική βάση ακολουθεί τα δεδομένα — αλλά το ingest από την πλευρά διακομιστή δίνει στον εκδότη πλήρη έλεγχο του ποιά πεδία εκπέμπονται και πότε. Ένα κοινό μοτίβο είναι να καταγράψετε ένα ελάχιστο σύνολο γεγονότων μόνο απαραίτητων από την πλευρά διακομιστή βάσει νόμιμου συμφέροντος, και στη συνέχεια να εμπλουτίσετε αυτά τα γεγονότα με λεπτομέρειες συμπεριφοράς από τον πελάτη μόνο μετά τη χορήγηση συναίνεσης αναλυτικής. Τα γεγονότα από πλευρά διακομιστή και πλευρά πελάτη συνδέονται στο ίδιο διακριτό αναγνωριστικό όταν η συναίνεση έχει αναστραφεί· πριν τη συναίνεση, τα γεγονότα από πλευρά διακομιστή εκπέμπονται με ανώνυμο, εφήμερο αναγνωριστικό που επαναφέρεται σε κάθε συνεδρία.
Επικύρωση της ενσωμάτωσης και το ίχνος ελέγχου
Το βήμα επικύρωσης είναι αυτό που ελέγχουν οι ρυθμιστές και αυτό που οι εκδότες παραλείπουν πιο συχνά. Μια σωστά ενσωματωμένη ανάπτυξη PostHog πρέπει να περάσει τέσσερις δοκιμές σε σειρά. Πρώτον, μια καθαρή συνεδρία προγράμματος περιήγησης με εμφανιζόμενο banner αλλά χωρίς επιλογή πρέπει να παράγει μηδέν αιτήματα στο διαμορφωμένο api_host πέρα από την ανάκτηση αρχείου SDK, μηδέν cookies ph_ στο document.cookie, και μηδέν εγγραφές ph_ στο localStorage. Δεύτερον, η απόρριψη αναλυτικής πρέπει να διατηρεί αυτή την κατάσταση — χωρίς καταγραφή, χωρίς εγγραφή, χωρίς επίμονο αναγνωριστικό. Τρίτον, η αποδοχή αναλυτικής πρέπει να παράγει ένα άμεσο γεγονός $opt_in, την αναμενόμενη εγγραφή επιμονής ph_{projectKey}_posthog με σωστά χαρακτηριστικά SameSite, και ροή γεγονότων προς τον διαμορφωμένο κεντρικό υπολογιστή. Τέταρτον, η ανάκληση συναίνεσης μετά το γεγονός πρέπει αμέσως να σταματήσει περαιτέρω καταγραφή και αναπαραγωγή, να λήξει επίμονα αναγνωριστικά, και να ενεργοποιήσει αίτημα διαγραφής μέσω του GDPR API του PostHog εάν ο χρήστης έχει ασκήσει τη διαγραφή.
Η προσδοκία ίχνους ελέγχου βάσει των κατευθυντήριων γραμμών banner cookies του EDPB του 2023 και των ανανεωμένων προτεραιοτήτων ομάδας εργασίας για το 2026 είναι ότι ο εκδότης μπορεί να αποδείξει για οποιοδήποτε δεδομένο γεγονός στο έργο PostHog ότι ο χρήστης που το δημιούργησε είχε δώσει έγκυρη συναίνεση κατά τη στιγμή της καταγραφής. Το τυπικό μοτίβο είναι να ορίσετε την έκδοση συναίνεσης και τη χρονική σφραγίδα ως ιδιότητες ατόμου στο διακριτό αναγνωριστικό μέσω posthog.setPersonProperties({ consent_version: 'v3', consent_ts: ts }) ώστε κάθε μεμονωμένο γεγονός να είναι ανιχνεύσιμο σε μια συγκεκριμένη εγγραφή αρχείου καταγραφής συναίνεσης. Μια σωστά ελεγχόμενη ανάπτυξη, σε συνδυασμό με επιλογή περιοχής που ταιριάζει με το κοινό, επιμονή που ορίζει ως προεπιλογή τη μνήμη, και διαδρομή διαγραφής που ενεργοποιείται κατά την ανάκληση, είναι αυτό που μετατρέπει το PostHog από ρυθμιστικό κίνδυνο συγκέντρωσης σε ένα υπερασπίσιμο κέντρο της στοίβας αναλυτικής προϊόντος.