Skip to content

docs(privacy): clarify that opt-out still loads flags and sends queued events - #21823

Merged
ioannisj merged 3 commits into
masterfrom
docs/opt-out-identify-flags
Nov 11, 2026
Merged

ioannisj merged 3 commits into
masterfrom
docs/opt-out-identify-flags

Conversation

@ioannisj

@ioannisj ioannisj commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Changes

The data collection page said that opt-out prevents "all data" from being captured and sent. That's not right. Opt-out stops event capture, but feature flags still load: posthog-js has worked this way since PostHog/posthog-js#3596 was closed, Android always did, and PostHog/posthog-ios#1004 aligned iOS in 3.93.3. PostHog/sdk-specs#167 makes it the cross-SDK rule. Events the SDK queued before the opt-out can also still be sent.

Updates to the opt-out section:

  • The summary table row says opt-out covers event capture, not all data collection.
  • The "Asking for opt out" section says opt-out stops new events, then lists what it doesn't affect: /flags requests (which carry the distinct ID and any person properties set for flag evaluation) and events already queued on the device.
  • The flags bullet names iOS 3.93.3 as the minimum version, since older iOS releases blocked flag loads while opted out.
  • The CMP steps say "no events are captured" instead of "nothing is captured".

Checklist

  • I've read the docs and/or content style guides.
  • Words are spelled using American English
  • Use relative URLs for internal links
  • I've checked the pages added or changed in the Vercel preview build
  • If I moved a page, I added a redirect in vercel.json

DRI: @ioannisj
Autonomy: Human-driven (agent-assisted)

@github-actions github-actions Bot added docs Improvements or additions to product documentation, "Docs" content PR only touches files under contents/ labels Nov 2, 2026
@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Deploy preview

Status Details Updated (UTC)
🟢 Ready View preview Nov 11, 2026 12:00PM

Changed pages

Page Source
Controlling data collection contents/docs/privacy/data-collection.mdx

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Vale prose linter → found 4 errors, 22 warnings, 11 suggestions in your markdown

Full report → Copy the linter results into an LLM to batch-fix issues.

Linter being weird? Update the rules!

contents/docs/privacy/data-collection.mdx — 4 errors, 22 warnings, 11 suggestions
Line Severity Message Rule
15:144 warning 'Cookiebot' is a possible misspelling. PostHogBase.Spelling
20:4 warning 'Cookieless' is a possible misspelling. PostHogBase.Spelling
33:5 warning Capitalize 'Feature Flags' for PostHog's product. Use 'Feature flags' for the general industry concept. PostHogBase.ProductNames
33:45 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
34:113 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
73:141 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
97:234 warning 'cookieless' is a possible misspelling. PostHogBase.Spelling
107:5 warning 'Using PostHog with a consent management platform (CMP)' heading should be in sentence case, and product names should be capitalized. PostHogBase.SentenceCase
109:61 warning 'Cookiebot' is a possible misspelling. PostHogBase.Spelling
109:72 warning 'Osano' is a possible misspelling. PostHogBase.Spelling
109:79 warning 'Usercentrics' is a possible misspelling. PostHogBase.Spelling
113:120 warning 'CMPs' is a possible misspelling. PostHogBase.Spelling
113:221 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
117:15 warning Use 'PostHog' instead of 'posthog'. Vale.Terms
121:75 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
123:151 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
124:9 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
125:9 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
144:22 warning 'Cookiebot' is a possible misspelling. PostHogBase.Spelling
146:21 warning 'cookieless' is a possible misspelling. PostHogBase.Spelling
146:207 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
177:71 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
183:169 warning Capitalize 'Product Analytics' for PostHog's product. Use 'product analytics' for the general industry concept. PostHogBase.ProductNames
261:70 warning Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. PostHogBase.ProductNames
265:43 warning Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. PostHogBase.ProductNames
285:4 warning 'Cookieless' is a possible misspelling. PostHogBase.Spelling
287:33 warning 'cookieless' is a possible misspelling. PostHogBase.Spelling
291:20 warning 'cookieless' is a possible misspelling. PostHogBase.Spelling
298:223 warning 'cookieless' is a possible misspelling. PostHogBase.Spelling
303:81 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
304:71 suggestion Address the reader directly. Use 'you' instead of 'the user'. PostHogDocs.DirectAddress
316:39 warning 'cookieless' is a possible misspelling. PostHogBase.Spelling
324:4 warning Capitalize 'Feature Flags' for PostHog's product. Use 'Feature flags' for the general industry concept. PostHogBase.ProductNames
324:39 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
324:75 warning Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. PostHogBase.ProductNames
325:27 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
326:47 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Bundle report

Total JS (gzip)

12.06 MiB (no change)

Eager graph (modules shipped in each entrypoint's initial chunks)

Entrypoint Eager size Budget Modules
✅ app 10.41 MiB (no change) report-only 1100
Largest modules in the app closure
Module Size
css ./node_modules/.pnpm/css-loader@5.2.7_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!./node_modules/.pnpm/postcss-loader@4.3.0_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./src/styles/global.css 1021.7 KiB
./src/components/Stickers/Stickers.tsx 696.4 KiB
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js 354.8 KiB
./node_modules/.pnpm/react-markdown@8.0.7_@types+react@16.14.66_react@18.3.1/node_modules/react-markdown/lib/react-markdown.js + 88 modules 351.4 KiB
./node_modules/.pnpm/framer-motion@14.0.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs + 126 modules 287.2 KiB
./node_modules/.pnpm/cloudinary-core@2.14.0_lodash@4.17.21/node_modules/cloudinary-core/cloudinary-core.js 281.9 KiB
./src/components/SearchUI/index.tsx + 87 modules 273.1 KiB
./gatsby-browser.tsx + 59 modules 259.3 KiB
./node_modules/.pnpm/@posthog+brand@0.13.0_react@18.3.1/node_modules/@posthog/brand/dist/generated/hoggies/svg/construction-1.mjs 248.5 KiB
./src/components/Pricing/PricingSlider/Slider.tsx + 87 modules 240.2 KiB
./node_modules/.pnpm/@posthog+brand@0.13.0_react@18.3.1/node_modules/@posthog/brand/dist/generated/hoggies/svg/construction-2.mjs 228.2 KiB
./node_modules/.pnpm/@posthog+brand@0.13.0_react@18.3.1/node_modules/@posthog/brand/dist/generated/hoggies/svg/magnifying-glass.mjs 221.7 KiB
./src/hooks/useProducts.tsx + 23 modules 153.9 KiB
./src/hooks/skills.tsx + 2 modules 150.7 KiB
./src/hooks/useProduct.ts + 9 modules 149.8 KiB

Eager-graph budgets are report-only until a baseline is established. Sizes are gzip of public/**/*.js; eager size is webpack module source bytes for the modules actually shipped in the entrypoint's initial chunks (post-tree-shake).

@ioannisj
ioannisj marked this pull request as ready for review November 10, 2026 09:34
@ioannisj
ioannisj requested a review from a team November 10, 2026 18:44

@marandaneto marandaneto left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review finding; approval will be submitted separately as explicitly requested.


Opting out doesn't affect:

- **Feature flags.** Flags still load while the user is opted out (iOS requires 3.93.3 or later). The SDK sends `/flags` requests that include the distinct ID and any person properties set for flag evaluation.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

blocking: Scope the iOS version requirement to identify-triggered reloads — The blanket ‘iOS requires 3.93.3 or later’ qualifier is too broad: released 3.93.2 already permits explicit reloadFeatureFlags() while opted out, sending the distinct ID and person properties. 3.93.3 changed the identify() path, not general flag loading. Please narrow or remove this qualifier so integrations on older releases do not infer that opt-out prevents those requests. Reproduction: reproduced — make test filter=PostHogIdentityTests/piReviewFlagsWhileOptedOutBefore3933 on released 3.93.2 (shared SDK implementation on macOS) compiled and failed the no-request assertion with one mocked flags request containing identity/person properties; the corresponding documentation accuracy check also failed on the reviewed head.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 An AI agent wrote this on behalf of @ioannisj.

Good catch, dropped the qualifier in 7032c3c. reloadFeatureFlags() on 3.93.2 has no opt-out guard, so the only thing #1004 changed was the identify() path, and that detail doesn't belong on this page.

@marandaneto marandaneto left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving as explicitly requested, with the iOS minimum-version scope correction noted in the inline review comment. That finding remains outstanding.

@marandaneto
marandaneto requested a review from a team November 11, 2026 11:37
@ioannisj
ioannisj enabled auto-merge (squash) November 11, 2026 11:43
@ioannisj
ioannisj merged commit a157838 into master Nov 11, 2026
22 checks passed
@ioannisj
ioannisj deleted the docs/opt-out-identify-flags branch November 11, 2026 12:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

content PR only touches files under contents/ docs Improvements or additions to product documentation, "Docs"

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants