Skip to content

Conversation

@roomote
Copy link
Contributor

@roomote roomote bot commented Nov 3, 2025

Implements Google Consent Mode v2 with cookieless pings for Google Ads tags on the marketing website.

Changes

  • Set consent defaults before gtag.js loads (required for Consent Mode v2)
  • Enable cookieless pings with url_passthrough parameter
  • Implement consent update logic for all consent categories (ad_storage, ad_user_data, ad_personalization, analytics_storage, etc.)
  • Support both granted and denied consent states
  • Scripts now load unconditionally (required for cookieless mode to work)
  • Add TypeScript types for Consent Mode v2 API

Key Features

Cookieless Pings: When users decline cookies, Google Ads can still send conversion data without cookies using the url_passthrough parameter. This allows for privacy-friendly conversion tracking.

Consent Mode v2 Compliance: Implements all required consent types for Google Consent Mode v2:

  • ad_storage - Storage for ads
  • ad_user_data - Consent for sending user data to Google for advertising
  • ad_personalization - Consent for personalized ads
  • analytics_storage - Storage for analytics
  • functionality_storage - Storage for functionality
  • personalization_storage - Storage for personalization
  • security_storage - Always granted for security purposes

Privacy-First Approach: All consent types default to "denied" until user explicitly accepts cookies, maintaining GDPR compliance.

Testing

  • ✅ TypeScript compilation passed
  • ✅ ESLint validation passed
  • ✅ All existing tests passed
  • ✅ Verified consent default/update flow

Related

Addresses Slack request to update Google Ads tags to use advanced Google Consent Mode v2 with cookieless pings while making minimal changes.


Important

Implements Google Consent Mode v2 with cookieless pings and TypeScript types in google-analytics-provider.tsx.

  • Behavior:
    • Implements Google Consent Mode v2 with cookieless pings in google-analytics-provider.tsx.
    • Sets consent defaults before gtag.js loads, enabling url_passthrough for cookieless pings.
    • Updates consent states for categories like ad_storage, ad_user_data, and analytics_storage.
    • Scripts load unconditionally to support cookieless mode.
  • TypeScript:
    • Adds types for Consent Mode v2 API, including ConsentState, ConsentParams, and GtagArgs.

This description was created by Ellipsis for b7d5bd3. You can customize this summary. It will automatically update as commits are pushed.

- Add consent defaults before gtag.js loads (required for Consent Mode v2)
- Enable cookieless pings with url_passthrough for Google Ads
- Implement consent update logic for all consent categories
- Support both granted and denied consent states
- Maintain backward compatibility with existing consent manager
@roomote roomote bot requested review from cte, jr and mrubens as code owners November 3, 2025 01:51
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. Enhancement New feature or request labels Nov 3, 2025
@roomote
Copy link
Contributor Author

roomote bot commented Nov 3, 2025

See this task on Roo Code Cloud

All issues resolved. PR is ready to merge.

  • Fix useEffect dependency array causing unnecessary consent re-initialization
Previous Reviews

Mention @roomote in a comment to trigger your PR Fixer agent and make changes to this pull request.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 3, 2025

🚀 Preview deployed!

Your changes have been deployed to Vercel:

Preview URL: https://roo-code-website-aaue8ata5-roo-code.vercel.app

This preview will be updated automatically when you push new commits to this PR.

@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Nov 3, 2025
@dleffel
Copy link
Collaborator

dleffel commented Nov 3, 2025

@roomote address all PR feedback.

@roomote
Copy link
Contributor Author

roomote bot commented Nov 3, 2025

See this task on Roo Code Cloud

Fixed the reported issue. All local checks passed.

View commit | Revert commit

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Nov 3, 2025
@dleffel dleffel merged commit 5fb36d9 into main Nov 3, 2025
16 checks passed
@dleffel dleffel deleted the feature/google-consent-mode-v2 branch November 3, 2025 04:59
@github-project-automation github-project-automation bot moved this from Triage to Done in Roo Code Roadmap Nov 3, 2025
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Nov 3, 2025
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Nov 3, 2025
* web: More website copy tweaks (RooCodeInc#8326)

Co-authored-by: Matt Rubens <[email protected]>

* fix: remove <thinking> tags from prompts for cleaner output and fewer tokens (RooCodeInc#8319)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Upgrade Supernova (RooCodeInc#8330)

* chore: add changeset for v3.28.9 (RooCodeInc#8336)

* Changeset version bump (RooCodeInc#8337)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Track when telemetry settings change (RooCodeInc#8339)

* fix: use max_completion_tokens for GPT-5 models in LiteLLM provider (RooCodeInc#6980)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make chat icons shrink-0 (RooCodeInc#8343)

* web: Testimonials (RooCodeInc#8360)

* Adds lots of testimonials, 5-stars from marketplace

* Fits more testimonials in one page

* Testimonial heading tweak

* ci: refresh contrib.rocks cache workflow (RooCodeInc#8083)

* feat: add Claude 4.5 Sonnet model across all providers (RooCodeInc#8368)

* chore: add changeset for v3.28.10 (RooCodeInc#8369)

* Changeset version bump (RooCodeInc#8370)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: correct AWS Bedrock Claude Sonnet 4.5 model identifier (RooCodeInc#8372)

Fixes RooCodeInc#8371 - Updates the model ID from anthropic.claude-4.5-sonnet-v1:0
to anthropic.claude-sonnet-4-5-20250929-v1:0 to match AWS Bedrock naming convention

Co-authored-by: Roo Code <[email protected]>

* fix: correct Claude Sonnet 4.5 model ID format (RooCodeInc#8373)

* chore: add changeset for v3.28.11 (RooCodeInc#8374)

* Changeset version bump (RooCodeInc#8375)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: Anthropic Sonnet 4.5 model id + Bedrock 1M context checkbox (RooCodeInc#8384)

fix(anthropic): use claude-sonnet-4-5 id
fix(bedrock): enable 1M context checkbox for Sonnet 4.5 via shared list
closes RooCodeInc#8379
closes RooCodeInc#8381

* chore: add changeset for v3.28.12 (RooCodeInc#8385)

* Changeset version bump (RooCodeInc#8376)

* changeset version bump

* Revise changelog for version 3.28.12

Updated version number and consolidated patch notes.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix Vertex Sonnet 4.5 (RooCodeInc#8391)

* fix: remove topP parameter from Bedrock inference config (RooCodeInc#8388)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.28.13 (RooCodeInc#8393)

* Changeset version bump (RooCodeInc#8394)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add GLM-4.6 model support for z.ai provider (RooCodeInc#8408)

Co-authored-by: Roo Code <[email protected]>

* chore: add changeset for v3.28.14 (RooCodeInc#8413)

* Changeset version bump (RooCodeInc#8414)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* A couple more sonnet 4.5 fixes (RooCodeInc#8421)

* chore: Remove unsupported Gemini 2.5 Flash Image Preview free model (RooCodeInc#8359)

* Include reasoning messages in cloud tasks (RooCodeInc#8401)

* fix: show send button when only images are selected in chat textarea (RooCodeInc#8423)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add structured data to the homepage (RooCodeInc#8427)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* fix(ui): disable send button when no input content and update tests

* fix: Addresses overeager 'there are unsaved changes' dialog in settings (RooCodeInc#8410)

Fixes overeager 'there are unsaved changes' dialog in settings

* feat: add UsageStats schema and type (RooCodeInc#8441)

feat: add UsageStats schema and type to cloud.ts

Co-authored-by: Roo Code <[email protected]>

* Release: v1.80.0 (RooCodeInc#8442)

chore: bump version to v1.80.0

* feat: add new DeepSeek and GLM models with detailed descriptions to the Chutes provider (RooCodeInc#8467)

* Deprecate free grok 4 fast (RooCodeInc#8481)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* fix: improve save button activation in prompts settings (RooCodeInc#5780) (RooCodeInc#8267)

Co-authored-by: MuriloFP <[email protected]>
Co-authored-by: Roo Code &