Συναίνεση cookies για Progressive Web Apps (PWA): οδηγός για εκδότες
Γιατί οι PWA είναι μια οριακή περίπτωση συναίνεσης
Μια Progressive Web App συμπεριφέρεται σαν εγγενής εφαρμογή — εγκαθίσταται στην αρχική οθόνη, εκτελείται εκτός σύνδεσης και αποθηκεύει επιθετικά στην cache — αλλά εξακολουθεί να σερβίρεται από ένα πρόγραμμα περιήγησης, οπότε ισχύουν οι κανόνες για cookies και web storage. Αυτή ακριβώς η υβριδική φύση μπερδεύει τους εκδότες: οι ίδιες υποχρεώσεις συναίνεσης GDPR όπως κάθε ιστότοπος, σε συνδυασμό με service workers και μόνιμες cache που μπορούν αθόρυβα να διατηρούν δεδομένα και scripts αφού ο χρήστης έχει πει όχι.
Πού αποθηκεύουν δεδομένα οι PWA
Πριν μπορέσετε να ελέγξετε την αποθήκευση με βάση τη συναίνεση, πρέπει να γνωρίζετε κάθε σημείο όπου μια PWA μπορεί να διατηρήσει δεδομένα:
- Cookies — η κλασική επιφάνεια, που διέπεται από τη συναίνεση όπως πάντα.
- LocalStorage / IndexedDB — συχνά χρησιμοποιούνται για την κατάσταση της εφαρμογής, αλλά και για αναλυτικά στοιχεία και αναγνωριστικά διαφημίσεων.
- Cache Storage — ο service worker μπορεί να αποθηκεύσει στην cache scripts τρίτων (αναλυτικά, διαφημιστικά SDK) ώστε να εκτελούνται ακόμα και εκτός σύνδεσης.
- Ο ίδιος ο service worker — παραμένει μεταξύ των συνεδριών και μπορεί να επανεγγράψει την παρακολούθηση στην επόμενη εκκίνηση.
Η συναίνεση πρέπει να διέπει όλα αυτά, όχι μόνο το document.cookie.
Το μοτίβο service worker με προτεραιότητα στη συναίνεση
Η βασική αρχή: ο service worker πρέπει να διαβάζει την κατάσταση συναίνεσης πριν αποθηκεύσει στην cache ή εκτελέσει οποιονδήποτε μη απαραίτητο πόρο τρίτου. Ένα καθαρό μοτίβο μοιάζει ως εξής:
- Αποθηκεύστε το σήμα συναίνεσης κάπου όπου ο service worker μπορεί να το διαβάσει — στο IndexedDB ή σε μια εγγραφή cache που ενημερώνει ο CMP σε κάθε επιλογή.
- Στον χειριστή
fetchτου service worker, αρνηθείτε να αποθηκεύσετε στην cache τα endpoints αναλυτικών/διαφημίσεων εκτός αν υπάρχει συναίνεση για αυτόν τον σκοπό. - Όταν ένας χρήστης ανακαλεί τη συναίνεση, στείλτε ένα μήνυμα στον service worker να εκκαθαρίσει τα αποθηκευμένα scripts παρακολούθησης και να καθαρίσει τα σχετικά αποθετήρια IndexedDB.
Η παράλειψη αυτού του τελευταίου βήματος είναι το πιο κοινό κενό συμμόρφωσης των PWA: το banner λέει “απορρίφθηκε”, αλλά ένα αποθηκευμένο στην cache script αναλυτικών συνεχίζει να ενεργοποιείται από τον service worker στην επόμενη εκκίνηση εκτός σύνδεσης.
UX συναίνεσης εκτός σύνδεσης
Οι PWA μπορούν να εκκινήσουν χωρίς δίκτυο. Το banner συναίνεσής σας και η αποθηκευμένη επιλογή του χρήστη πρέπει και τα δύο να λειτουργούν εκτός σύνδεσης — αποθηκεύστε στην cache το ίδιο το UI του CMP και ποτέ μην ορίζετε ως προεπιλογή το “παραχωρήθηκε” απλώς επειδή ο διακομιστής συναίνεσης δεν είναι προσβάσιμος. Αν δεν μπορείτε να επιβεβαιώσετε προηγούμενη επιλογή, αντιμετωπίστε τον χρήστη ως μη συναινούντα και σερβίρετε μόνο βασική λειτουργικότητα μέχρι να μπορέσετε.
Επιπτώσεις στα διαφημιστικά έσοδα
Για PWA που υποστηρίζονται από διαφημίσεις, η κατάσταση συναίνεσης πρέπει να φτάνει στο διαφημιστικό SDK σας κατά τη στιγμή του αιτήματος, online ή offline. Μια σωστά συνδεδεμένη PWA περνά το IAB TCF string και τα σήματα Consent Mode v2 στους συνεργάτες ζήτησης όπως ένας κανονικός ιστότοπος· μια λανθασμένα διαμορφωμένη αποθηκεύει στην cache μια απαρχαιωμένη κατάσταση “χωρίς συναίνεση” και καταρρέει το eCPM σας σε μη εξατομικευμένες τιμές επ’ αόριστον. Αντιμετωπίστε τη φρεσκάδα της συναίνεσης ως μετρική εσόδων.
Πώς βοηθά το FlexyConsent
Το FlexyConsent αποθηκεύει την εγγραφή συναίνεσης σε ένα αποθετήριο αναγνώσιμο από service worker, εκπέμπει σήματα TCF και Consent Mode v2 που επιβιώνουν στις εκκινήσεις εκτός σύνδεσης και εκθέτει ένα hook ανάκλησης που μπορείτε να συνδέσετε με την εκκαθάριση της cache — ώστε η PWA σας να παραμένει συμμορφούμενη και η διαφημιστική σας στοίβα να διατηρεί το πιο φρέσκο δυνατό σήμα συναίνεσης σε κάθε επιφάνεια.
Βασικά συμπεράσματα
- Οι PWA αντιμετωπίζουν πλήρεις υποχρεώσεις συναίνεσης GDPR συν τις περιπλοκές service worker και cache.
- Ελέγξτε cookies, LocalStorage, IndexedDB και Cache Storage με βάση τη συναίνεση — όχι μόνο cookies.
- Στην ανάκληση, εκκαθαρίστε τα αποθηκευμένα scripts παρακολούθησης και καθαρίστε τα αποθηκευμένα αναγνωριστικά.
- Διατηρήστε την κατάσταση συναίνεσης φρέσκια και ασφαλή εκτός σύνδεσης ώστε τα διαφημιστικά έσοδα να μην κολλάνε σε μη εξατομικευμένες τιμές.