موافقة ملفات تعريف الارتباط لتطبيقات الويب التقدمية (PWAs): دليل الناشر
لماذا تُعد تطبيقات PWA حالة حدية للموافقة
يتصرف تطبيق الويب التقدمي مثل التطبيق الأصلي — فهو يُثبَّت على الشاشة الرئيسية، ويعمل دون اتصال، ويخزّن مؤقتًا بقوة — لكنه لا يزال يُقدَّم من متصفح، لذا تنطبق قواعد ملفات تعريف الارتباط وتخزين الويب. هذه الطبيعة الهجينة هي بالضبط ما يُعثِر الناشرين: نفس التزامات موافقة GDPR كأي موقع إلكتروني، مكدّسة فوق service workers وذواكر تخزين مؤقت دائمة يمكنها أن تحتفظ بهدوء بالبيانات والنصوص البرمجية بعد أن يقول المستخدم لا.
أين تخزّن تطبيقات PWA الأشياء
قبل أن تتمكن من تقييد التخزين بالموافقة، عليك معرفة كل مكان يمكن لتطبيق PWA أن يحتفظ فيه بالبيانات:
- ملفات تعريف الارتباط — السطح الكلاسيكي، تحكمه الموافقة كالعادة.
- LocalStorage / IndexedDB — تُستخدم غالبًا لحالة التطبيق، ولكن أيضًا للتحليلات ومعرّفات الإعلانات.
- Cache Storage — يمكن لـ service worker تخزين نصوص الطرف الثالث (التحليلات، حِزم تطوير الإعلانات SDKs) مؤقتًا بحيث تعمل حتى دون اتصال.
- service worker نفسه — يستمر عبر الجلسات ويمكنه إعادة تسجيل التتبع عند الإطلاق التالي.
يجب أن تحكم الموافقة كل هذه، وليس فقط document.cookie.
نمط service worker القائم على الموافقة أولًا
المبدأ الأساسي: يجب على service worker قراءة حالة الموافقة قبل أن يخزّن مؤقتًا أو ينفّذ أي مورد غير أساسي من طرف ثالث. النمط النظيف يبدو هكذا:
- خزّن إشارة الموافقة في مكان يستطيع service worker قراءته منه — IndexedDB أو إدخال في الذاكرة المؤقتة يحدّثه CMP عند كل اختيار.
- في معالج
fetchالخاص بـ service worker، ارفض تخزين نقاط نهاية التحليلات/الإعلانات مؤقتًا ما لم تكن الموافقة على ذلك الغرض موجودة. - عندما يسحب المستخدم الموافقة، أرسل رسالة إلى service worker لكي يطهّر نصوص التتبع المخزّنة مؤقتًا ويمسح مخازن IndexedDB ذات الصلة.
تخطّي تلك الخطوة الأخيرة هو أكثر ثغرات امتثال PWA شيوعًا: يقول البانر “مرفوض،” لكن نص تحليلات مخزّن مؤقتًا يستمر في الإطلاق من service worker عند الإطلاق التالي دون اتصال.
تجربة مستخدم الموافقة دون اتصال
يمكن لتطبيقات PWA أن تنطلق دون شبكة. يجب أن يعمل كل من بانر الموافقة واختيار المستخدم المخزّن دون اتصال — خزّن واجهة CMP نفسها مؤقتًا، ولا تعد أبدًا افتراضيًا إلى “ممنوحة” لمجرد أن خادم الموافقة غير قابل للوصول. إذا لم تتمكن من تأكيد اختيار سابق، عامِل المستخدم باعتباره غير موافق وقدّم فقط الوظائف الأساسية حتى تتمكن من ذلك.
آثار إيرادات الإعلانات
بالنسبة لتطبيقات PWA المدعومة بالإعلانات، يجب أن تصل حالة الموافقة إلى حزمة تطوير الإعلانات SDK الخاصة بك في وقت الطلب، متصلًا أو غير متصل. تطبيق PWA الموصول بشكل صحيح يمرّر سلسلة IAB TCF وإشارات Consent Mode v2 إلى شركاء الطلب تمامًا مثل أي موقع عادي؛ أما المُهيّأ خطأً فيخزّن مؤقتًا حالة “لا موافقة” قديمة ويُسقِط eCPM إلى أسعار غير مخصّصة إلى أجل غير مسمى. عامِل حداثة الموافقة كمقياس للإيرادات.
كيف يساعد FlexyConsent
يخزّن FlexyConsent سجل الموافقة في مخزن قابل للقراءة من service worker، ويُصدر إشارات TCF وConsent Mode v2 التي تنجو من عمليات الإطلاق دون اتصال، ويُتيح خطّاف سحب يمكنك توصيله بتطهير الذاكرة المؤقتة — حتى يبقى تطبيق PWA الخاص بك متوافقًا وتحتفظ حزمة الإعلانات لديك بأحدث إشارة موافقة ممكنة عبر كل سطح.
أهم النقاط
- تواجه تطبيقات PWA واجبات موافقة GDPR الكاملة بالإضافة إلى تعقيدات service worker والذاكرة المؤقتة.
- قيّد ملفات تعريف الارتباط وLocalStorage وIndexedDB وCache Storage بالموافقة — وليس فقط ملفات تعريف الارتباط.
- عند السحب، طهّر نصوص التتبع المخزّنة مؤقتًا وامسح المعرّفات المخزّنة.
- حافظ على حالة الموافقة حديثة وآمنة دون اتصال حتى لا تعلق إيرادات الإعلانات عند الأسعار غير المخصّصة.