Skip to main content

CCPA Compliance Implementation: "Do Not Sell or Share" opt-out link routes to a functional opt-out mechanism

A guide on how to audit "Do Not Sell" link functionality with ObservePoint. Ensure your opt-out links route to functional 200-status pages and avoid CCPA violations caused by broken links.

Written by Luiza Gircoveanu

Overview

This check extends the link-presence validation from the Notice at Collection policy into two further, separate tests: does the "Do Not Sell or Share" (or combined "Your Privacy Choices") link's destination return a healthy status with no broken redirect chain, and (a genuinely different question) does the destination actually present a working opt-out interface that a consumer could complete?

Note: This guide is provided for informational purposes only and does not constitute legal advice. Consult qualified legal counsel regarding your organization's specific CCPA/CPRA compliance obligations.

Why It Is Important

It is not enough for the link to be present on the page: the link must actually lead to a functional opt-out. A broken link, an endless redirect loop, or a destination page whose form or toggle interface doesn't actually submit is all treated identically to having no opt-out mechanism at all, since none of them give the consumer an effective way to exercise the right. These two failure modes need different tooling: link destination health is something a normal Audit crawl already captures automatically (the crawler follows every discovered link and records what it finds), but whether the opt-out UI actually renders and submits can only be confirmed by a scripted Journey that interacts with the page.

Implementation:

  1. Build a Journey that clicks the "Do Not Sell or Share" link, then interacts with and submits the opt-out mechanism (form fill or toggle) on the destination page.

  2. Attach a Rule to that submission step: WHEN the page reaches its post-submit state, EXPECT the confirmation element (or confirmation request) to appear.

  3. Run the Journey, then pull get_journey_run_rule_results for the pass/fail verdict on that step.

  4. If it fails, use analyze_journey_tags or analyze_journey_requests on the same run to see what actually happened: a click that never landed, a form that failed silently, or a confirmation signal that never fired.

Remediation

For remediation, check the following steps:

  • For a broken link or redirect loop, apply the same remediation approach as the DSAR-page check above and restore the correct destination URL across every page template referencing it.

  • For a destination page that loads but whose opt-out mechanism fails to actually submit or take effect, this is typically a front-end form-handling or CMP-integration bug rather than a simple broken-link issue, and should be routed to the engineering team responsible for the CMP integration specifically, since it likely indicates the same integration issue underlying the opt-out enforcement checks in the Consent & Opt-Out Management policy.

  • Re-run the full Journey after remediation, including the completed test submission, to confirm the end-to-end path works.

Conclusion

A privacy link is a promise of consumer control. By using ObservePoint to audit the functionality of your "Do Not Sell or Share" link, you ensure that the promise is kept. Regular monitoring prevents technical debt or CMS updates from accidentally breaking your most critical compliance path, keeping you in the clear with both regulators and consumers.

Did this answer your question?