PostHog پروڈکٹ اینالیٹکس کوکی رضامندی انٹیگریشن گائیڈ: 2026 کے لیے سیلف ہوسٹڈ اور کلاؤڈ ڈیپلائمنٹ پلے بک
PostHog وہ پروڈکٹ اینالیٹکس پلیٹ فارم ہے جس کی طرف انجینئرنگ ٹیمیں اس وقت رخ کرتی ہیں جب وہ پانچ فروشوں کو ایک ساتھ جوڑنے کے بجائے ایک ہی اسٹیک میں پروڈکٹ اینالیٹکس، سیشن ری پلے، فیچر فلیگز، تجربہ، سروے اور ویب اینالیٹکس چاہتی ہیں۔ یہ بنڈلنگ ہی قدر کی تجویز ہے۔ اور یہی وجہ ہے کہ PostHog کی ڈیفالٹ تعیناتی تقریباً کسی بھی دوسرے ٹول سے زیادہ مرتکز رضامندی کی ذمہ داریاں اٹھاتی ہے جو ایک پبلشر نصب کرے گا۔ وہی posthog.init() کال جو پروڈکٹ ایونٹس کو کیپچر کرتی ہے سیشنز ریکارڈ کرنا شروع کر سکتی ہے، ایک مستقل شناخت کنندہ کے خلاف فیچر فلیگز کا جائزہ لے سکتی ہے، اور سروے امپریشن کو قطار میں لگا سکتی ہے — اور ان سرگرمیوں میں سے ہر ایک GDPR، ePrivacy اور CCPA کے تحت ایک مختلف قانونی بنیاد سے مشغول ہوتی ہے۔ اچھی خبر یہ ہے کہ PostHog اینالیٹکس ایکو سسٹم میں سب سے زیادہ گرینولر رضامندی APIs میں سے ایک کے ساتھ آتا ہے؛ کام اسے دراصل استعمال کرنے میں ہے۔ یہ گائیڈ بتاتا ہے کہ PostHog کو کس طرح تعینات کیا جائے تاکہ قانونی موقف سیلف ہوسٹڈ انسٹالیشنز اور PostHog Cloud دونوں میں، امریکہ اور EU خطوں میں، اور اینالیٹکس، ری پلے، فلیگز اور سروے کی مکمل سطح پر تکنیکی حقیقت سے میل کھائے۔
PostHog کو رضامندی کی ضرورت کیوں ہے — اور جواب ہر ماڈیول کے لیے یکساں کیوں نہیں
PostHog کا ویب SDK ایک غیر فعال پیج ٹیگ نہیں ہے۔ ڈیفالٹ ابتدائیزیشن پر SDK ایک یا زیادہ فرسٹ پارٹی پرسسٹنس اندراجات ترتیب دیتا ہے — بطور ڈیفالٹ ph_{projectKey}_posthog کے تحت کلید کردہ ایک مشترکہ کوکی پلس localStorage اسکیم — ایک مستحکم مختلف شناخت کنندہ تیار کرتا ہے، ریفرر، UTM پیرامیٹرز اور کلک شناخت کنندگان کے ساتھ ابتدائی پیج ویو کیپچر کرتا ہے، اور کنفیگر کیے گئے انجیسشن ہوسٹ پر ایک دیرپا ایونٹ چینل کھولتا ہے۔ اگر سیشن ری پلے پروجیکٹ کی سطح پر فعال ہے تو SDK مزید رینڈر کردہ DOM، ماؤس کوآرڈینیٹس اور ان پٹ ایونٹس کا ایک مسلسل ریکارڈ سٹریم کرنا شروع کر دیتا ہے۔ اگر فیچر فلیگز کنفیگر ہیں تو SDK انہیں مختلف شناخت کنندہ کے خلاف جانچتا ہے، سیشن کے لیے فیصلوں کو برقرار رکھتا ہے، اور ہر جائزے کے لیے ایک $feature_flag_called ایونٹ خارج کرتا ہے۔
ان میں سے ہر سرگرمی ایک مختلف رضامندی گیٹ پر نقشہ کرتی ہے۔ ایک مختلف شناخت کنندہ کو برقرار رکھنا ePrivacy ہدایت کے آرٹیکل 5(3) کے تحت ایک ذخیرہ اور رسائی آپریشن ہے اور پورے EEA، UK اور کسی بھی قضائے نظر میں جس نے یہی معیار درآمد کیا ہے پہلے سے، آزادانہ طور پر دی گئی، مخصوص، باخبر اور غیر مبہم رضامندی کی ضرورت ہے۔ رویے کے ایونٹس کو کیپچر کرنا GDPR کے تحت ذاتی ڈیٹا کی پروسیسنگ ہے کیونکہ شناخت کنندہ، IP ایڈریس اور رویے کے نشان کا مجموعہ کسی فرد کو الگ کرنے کے لیے کافی ہے۔ سیشن ری پلے EDPB کی سیشن ری پلے گائیڈنس کے تحت ایک الگ، سخت تر زمرے میں ہے — ری پلے رینڈر کردہ DOM اور کسی بھی غیر نقاب شدہ ان پٹ فیلڈ کو کیپچر کرتا ہے اور عام اینالیٹکس رضامندی سے مختلف واضح، گرینولر رضامندی کی ضرورت ہے۔ فیچر فلیگ کا جائزہ لطیف ہے: ایک فلیگ چیک جو بولین واپس کرتی ہے خود رضامندی کی ضرورت نہیں رکھتی، لیکن سیشنز میں ایک مستحکم شناخت کنندہ کے ساتھ صارف کی فلیگ اسائنمنٹ کو برقرار رکھنا ضرورت رکھتا ہے، کیونکہ اسی طرح فلیگ پر مبنی تجربہ قابل ردہن صارف سطحی ڈیٹا بناتا ہے۔
رضامندی سے پہلے PostHog کیا لکھتا ہے — اور کیا دبایا جانا چاہیے
ڈیفالٹ PostHog Browser SDK ابتدائیزیشن پر مندرجہ ذیل لکھتا ہے: ph_{projectKey}_posthog کے تحت ایک مشترکہ کوکی اور localStorage اندراج جس میں مختلف شناخت کنندہ، سیشن شناخت کنندہ اور فیچر فلیگ فیصلے شامل ہیں، نیز جب سیشن ری پلے فعال ہو تو ایک اضافی ان میموری ریکارڈنگ بفر جو ہر چند سیکنڈ میں انجیسشن اینڈ پوائنٹ پر فلش ہوتا ہے۔ SDK فوری طور پر ایک $pageview ایونٹ بھی بھیجتا ہے اور اگر آٹوکیپچر آن ہے تو صفحے پر ہر اگلی کلک، فارم تعامل اور ریج کلک بھیجتا ہے۔
تجویز کردہ نمونہ PostHog کو opt_out_capturing_by_default: true اور disable_session_recording: true کے ساتھ ابتدائیز کرنا ہے، پھر جب رضامندی بینر مثبت سگنل واپس کرے تو دونوں فلیگز کو پلٹنا ہے۔ یہ انٹیگریشن موقف ہے جسے PostHog دستاویزات اب تجویز کرتی ہے، اور یہ وہ موقف ہے جو ریگولیٹر کے جائزے سے گزرتا ہے کیونکہ یہ ڈیفالٹ کو الٹ دیتا ہے: رضامندی ریکارڈ ہونے تک کچھ بھی کیپچر نہیں ہوتا، اور SDK ایک سٹیٹ فل ریٹرو فٹ کے بجائے صاف منتقلی فراہم کرتا ہے۔
کوکیز، localStorage اندراجات اور شناخت کنندگان جو PostHog برقرار رکھتا ہے
Browser SDK 1.x ph_{projectKey}_posthog کے تحت کلید کردہ، ڈیفالٹ کے طور پر 365 دن کی میعاد کے ساتھ، فی پروجیکٹ ایک پرسسٹنس اندراج لکھتا ہے۔ persistence ابتداء آپشن بنیادی طریقہ کار کو کنٹرول کرتا ہے: صرف cookie، صرف localStorage، localStorage+cookie (ڈیفالٹ)، sessionStorage، یا memory۔ رضامندی کو پہلے رکھنے والی تعیناتی کے لیے، جب رضامندی ابھی تک نہیں دی گئی تو memory پرسسٹنس صحیح ڈیفالٹ ہے — یہ یقینی بناتی ہے کہ کوئی بھی شناخت کنندہ پیج سیشن سے آگے نہ جائے — رضامندی بدلنے پر localStorage+cookie میں منتقلی کے ساتھ۔ SDK وزٹس میں صارف کی پسند کو یاد رکھنے کے لیے __ph_opt_in_out_{projectKey} کے تحت ایک opt-in یا opt-out مارکر بھی لکھتا ہے؛ وہ مارکر خود ایک سختی سے ضروری کوکی ہے کیونکہ یہ رضامندی کے فیصلے کو برقرار رکھتی ہے۔
PostHog ماڈیولز کو رضامندی فریم ورکس پر نقشہ کرنا
PostHog مقامی طور پر IAB TCF یا IAB Global Privacy Platform کو نافذ نہیں کرتا، اور یہ اشتہاری ٹیکنالوجی فروش کے طور پر نہیں بنایا گیا ہے۔ تاہم، یہ پبلشر سائڈ برجنگ کے ذریعے Google Consent Mode v2 کے ساتھ انضمام کرتا ہے، ایک مقامی opt-in اور opt-out API کو بے نقاب کرتا ہے، اور respect_dnt ابتداء آپشن کے ذریعے Do Not Track ہیڈر کا احترام کرتا ہے۔ وہ نمونہ جو پروڈکشن میں کام کرتا ہے ہر PostHog ماڈیول کو ایک مخصوص CMP سگنل سے منسلک ایک الگ گیٹ کے طور پر سمجھتا ہے۔
- پروڈکٹ اینالیٹکس ایونٹس اینالیٹکس مقصد سے منسلک ہیں۔ TCF کی اصطلاح میں یہ اکثر مقصد 8 (مواد کی کارکردگی کی پیمائش) اور مقصد 1 (معلومات کو ذخیرہ کرنا اور/یا رسائی) کا مجموعہ ہے۔ Consent Mode کے لیے یہ analytics_storage پر نقشہ کرتا ہے۔
- سیشن ری پلے ایک سخت تر گیٹ کے پیچھے ہے۔ PostHog کا سیشن ری پلے رینڈر کردہ DOM اور کسی بھی غیر نقاب شدہ ان پٹ فیلڈ کو کیپچر کرتا ہے، اس لیے اینالیٹکس سے الگ ترجیحات یا تحقیق سطحی opt-in EDPB کی گائیڈنس کے تحت قابل دفاع موقف ہے۔
- فیچر فلیگز اور تجربہ اس وقت جائز مفاد کی بنیاد پر عارضی، ان میموری جائزے کے ساتھ چل سکتے ہیں جب مقصد صرف رینڈر کردہ صفحے کو بدلنا ہو۔ سیشنز میں ایک مستحکم شناخت کنندہ سے منسلک مستقل فلیگ اسائنمنٹ کو اینالیٹکس جیسی ہی رضامندی کی ضرورت ہے، کیونکہ تبھی فلیگ صارف سطح کا قابل ردہن ڈیٹا پوائنٹ بنتا ہے۔
- سروے اور فیڈبیک سیشن ری پلے جیسے گیٹ سے منسلک ہیں جب وہ آزاد متن ان پٹ اکٹھا کرتے ہیں، یا اینالیٹکس گیٹ سے جب وہ صرف ریٹنگز یا سنگل سلیکٹ ریسپانس اکٹھے کرتے ہیں۔
وہ انٹیگریشن نمونہ جو کام کرتا ہے
حوالہ تعیناتی کے چار حصے ہیں: ایک CMP جو ریئل ٹائم رضامندی تبدیلی ایونٹ کو بے نقاب کرتا ہے، ایک موخر bootstrap جو کیپچر اور ری پلے غیر فعال کر کے PostHog کو ابتدائیز کرتا ہے، ایک رضامندی سننے والا جو متعلقہ گیٹس کھلنے پر opt_in_capturing اور ریکارڈنگ سوئچ کو پلٹتا ہے، اور ایک واپسی راستہ جو opt_out_capturing کو کال کرتا ہے، ری پلے بفر کو روکتا ہے، اور SDK کے ری سیٹ API کے ذریعے مستقل شناخت کنندگان کو صاف کرتا ہے۔
ویب امپلیمنٹیشن
سب سے صاف نمونہ یہ ہے کہ PostHog SDK کو ہر صفحے پر لوڈ کریں لیکن ابتدائی bootstrap کے طور پر posthog.init(apiKey, { api_host: 'https://eu.posthog.com', opt_out_capturing_by_default: true, disable_session_recording: true, persistence: 'memory', respect_dnt: true }) کو کال کریں۔ CMP کے رضامندی تبدیلی ایونٹ کو سبسکرائب کریں۔ جب اینالیٹکس کیٹیگری true میں منتقل ہو تو posthog.set_config({ persistence: 'localStorage+cookie' }) کو کال کریں اور پھر posthog.opt_in_capturing() کریں؛ یہ ایونٹ کیپچر کو دوبارہ فعال کرتا ہے اور پرسسٹنس ٹرانزیشن مختلف شناخت کنندہ لکھنا شروع کر دیتی ہے۔ جب سیشن ری پلے کیٹیگری true میں منتقل ہو تو posthog.startSessionRecording() کو کال کریں۔ جب کوئی گیٹ واپس لیا جائے تو اینالیٹکس گیٹ کے لیے posthog.opt_out_capturing() یا ری پلے گیٹ کے لیے posthog.stopSessionRecording() کو کال کریں، posthog.reset() کے ذریعے متعلقہ پرسسٹنس اندراجات کی میعاد ختم کریں، اور اگر صارف نے اپنا حذف کا حق استعمال کیا ہو تو PostHog کے GDPR API کے ذریعے حذف کی درخواست بھیجیں۔
علاقے کا انتخاب: PostHog Cloud US بمقابلہ EU بمقابلہ سیلف ہوسٹڈ
PostHog دو کلاؤڈ علاقوں میں کام کرتا ہے — US (us.posthog.com) اور EU (eu.posthog.com) — اور کسٹمر کے اپنے انفراسٹرکچر پر سیلف ہوسٹڈ انسٹالیشنز کو سپورٹ کرتا ہے۔ EEA اور UK ٹریفک کے لیے EU کلاؤڈ صحیح ڈیفالٹ ہے؛ یہ انجیسشن، پروسیسنگ اور سٹوریج کو EEA کے اندر رکھتا ہے اور US علاقے کی کسی بھی اینالیٹکس تعیناتی کے ساتھ آنے والی Schrems II ایکسپوژر کو کم کرتا ہے۔ api_host ابتداء آپشن علاقے کو پن کرتا ہے۔ سیلف ہوسٹڈ PostHog پورے اسٹیک کو پبلشر کے اپنے انفراسٹرکچر پر منتقل کرتا ہے، جو ڈیٹا رہائش کا سب سے مضبوط موقف ہے لیکن رضامندی کی ذمہ داریاں نہیں ہٹاتا — قانونی بنیاد ڈیٹا کی پیروی کرتی ہے، آپریٹر کی نہیں۔ جو بھی آپشن منتخب کیا جائے اسے رازداری نوٹس اور کنٹرولر کے پروسیسنگ ریکارڈ میں جھلکنا چاہیے۔
سرور سائڈ کیپچر
PostHog Python، Node، Go، Ruby اور PHP SDK کے ذریعے سرور سائڈ ایونٹ انجیسشن کو سپورٹ کرتا ہے۔ سرور سائڈ ایونٹس رضامندی سے مستثنیٰ نہیں ہیں — قانونی بنیاد ڈیٹا کی پیروی کرتی ہے — لیکن سرور سائڈ انجیسشن پبلشر کو اس پر مکمل کنٹرول دیتا ہے کہ کون سے فیلڈز کب خارج کیے جائیں۔ ایک عام نمونہ یہ ہے کہ جائز مفاد کے تحت سرور سائڈ سے صرف لازمی ایونٹس کا ایک کم سے کم سیٹ کیپچر کریں، پھر صارف کی اینالیٹکس رضامندی دینے کے بعد ہی کلائنٹ سے رویے کی تفصیلات کے ساتھ ان ایونٹس کو افزودہ کریں۔ سرور سائڈ اور کلائنٹ سائڈ ایونٹس اسی مختلف شناخت کنندہ پر جڑتے ہیں جب رضامندی بدل گئی ہو؛ رضامندی سے پہلے، سرور سائڈ ایونٹس ایک گمنام، عارضی شناخت کنندہ کے ساتھ خارج کیے جاتے ہیں جسے ہر سیشن پر ری سیٹ کیا جاتا ہے۔ یہ نقطہ نظر خطرے کو کافی حد تک کم کرتا ہے کیونکہ سرور ایونٹس کا ایک ہلکا سیٹ بغیر صارف کی رضامندی کے ٹریکنگ کے ادارہ جاتی یادداشت کے بطور کام کرتا ہے جبکہ مرکزی تجزیاتی بوجھ رضامندی کی تصدیق کا انتظار کرتا ہے۔
انٹیگریشن کی تصدیق اور آڈٹ ٹریل
تصدیق کا مرحلہ وہ ہے جو ریگولیٹرز جانچتے ہیں اور جسے پبلشرز اکثر چھوڑ دیتے ہیں۔ صحیح طور پر ضم شدہ PostHog تعیناتی کو ترتیب میں چار ٹیسٹ پاس کرنے ہوں گے۔ پہلا، بینر دکھائے جانے کے ساتھ لیکن کوئی انتخاب نہ کیا گیا صاف براؤزر سیشن SDK فائل فیچ سے آگے کنفیگر کردہ api_host پر صفر درخواستیں، document.cookie میں صفر ph_ کوکیز اور localStorage میں صفر ph_ اندراجات پیدا کرنا چاہیے۔ دوسرا، اینالیٹکس کو مسترد کرنا اس حالت کو برقرار رکھنا چاہیے — کوئی کیپچر نہیں، کوئی ریکارڈنگ نہیں، کوئی مستقل شناخت کنندہ نہیں۔ تیسرا، اینالیٹکس کو قبول کرنا فوری طور پر ایک $opt_in ایونٹ، صحیح SameSite صفات کے ساتھ متوقع ph_{projectKey}_posthog پرسسٹنس اندراج، اور کنفیگر کردہ ہوسٹ پر بہتا ہوا ایونٹ ٹریفک پیدا کرنا چاہیے۔ چوتھا، بعد میں رضامندی واپس لینا مزید کیپچر اور ری پلے کو فوری طور پر روکنا چاہیے، مستقل شناخت کنندگان کی میعاد ختم کرنی چاہیے، اور اگر صارف نے حذف کو نافذ کیا ہو تو PostHog کے GDPR API کے ذریعے حذف کی درخواست کو متحرک کرنا چاہیے۔
EDPB کی 2023 کوکی بینر گائیڈ لائنز اور تجدید شدہ 2026 ٹاسک فورس ترجیحات کے تحت آڈٹ ٹریل کی توقع یہ ہے کہ پبلشر PostHog پروجیکٹ میں کسی بھی دیے گئے ایونٹ کے لیے ثابت کر سکے کہ اسے پیدا کرنے والے صارف نے کیپچر کے وقت درست رضامندی دی تھی۔ معیاری نمونہ یہ ہے کہ posthog.setPersonProperties({ consent_version: 'v3', consent_ts: ts }) کے ذریعے مختلف ID پر رضامندی کا ورژن اور ٹائم سٹیمپ کو شخص کی خصوصیات کے طور پر ترتیب دیا جائے تاکہ کوئی بھی انفرادی ایونٹ ایک مخصوص رضامندی لاگ اندراج تک قابل ردہن ہو۔ صحیح طور پر گیٹڈ تعیناتی، ایسے علاقے کے انتخاب کے ساتھ جو سامعین سے میل کھاتا ہو، پرسسٹنس جو میموری کو ڈیفالٹ کرتی ہو، اور ایک حذف کا راستہ جو واپسی پر چالو ہو، یہی وہ ہے جو PostHog کو ریگولیٹری ارتکاز کے خطرے سے پروڈکٹ اینالیٹکس اسٹیک کے قابل دفاع مرکز میں تبدیل کرتا ہے۔