Skip to content

feat(legal): publish a privacy policy the ad and analytics stack requires - #30

Merged
writingdeveloper merged 1 commit into
mainfrom
feat/privacy-policy
Aug 20, 2026
Merged

feat(legal): publish a privacy policy the ad and analytics stack requires#30
writingdeveloper merged 1 commit into
mainfrom
feat/privacy-policy

Conversation

@writingdeveloper

Copy link
Copy Markdown
Owner

Why

AdSense rejected the site with Low value content, and a separate Verify site ownership step is still listed. While checking whether re-review is worth requesting, a second, independent violation turned up: there is no privacy policy.

/privacy, /privacy-policy and /terms all returned the identical 8018-byte soft-404 shell as a nonexistent slug. The site has been running GA4 and the AdSense loader since 4e1149e (2026-06-13) with zero disclosure. AdSense's program policies require a policy that discloses third-party cookie use and links the opt-out. GA4 alone makes it necessary regardless of AdSense.

This does not fix the content verdict. It removes a violation that would fail the re-review on its own.

What the page says

Only what the site actually loads, read out of the code rather than assumed:

Disclosed Source
Google Analytics 4 (G-77H1KB1H05) layout.tsxGoogleAnalytics
Google AdSense (ca-pub-3427879236190872) layout.tsxGoogleAdSense
Vercel Analytics + Speed Insights (cookieless) layout.tsx
giscus → GitHub Discussions in this public repo Comments.tsx
Vercel server logs hosting

Both opt-out destinations are real links, since that is the form AdSense asks for.

Reachability

The footer link covers every page in the app shell. The home route is immersive and renders LedgerHome's own footer, so the link is repeated there. /play is immersive too and keeps its bare 3D chrome; it links home, which carries the policy.

Verified on a production build across /, /en, /blog, /projects, /hire, /studio, /about, /graveyard and both /privacy locales.

QA

  • type-check, lint clean
  • 172 tests pass
  • production build succeeds; /[locale]/privacy registered and added to sitemap.ts
  • both locales render all seven sections, both IDs, and all four outbound links
  • messages/*.json verified canonical JSON.stringify(obj, null, 2) + pure CRLF after edit

🤖 Generated with Claude Code

https://claude.ai/code/session_01LaydoxAZ4eaqqPNKrmWLbt

…ires

The site has been running Google Analytics 4 and the AdSense loader since
4e1149e without disclosing either. /privacy, /privacy-policy and /terms all
returned the same soft-404 shell as a nonexistent slug, so there was no
disclosure anywhere on the site.

That is an independent AdSense policy violation, separate from the "low value
content" verdict the review actually returned: the program policies require a
policy that names the third-party cookie use and links the opt-out. It is also
required on its own merits, since GA4 is already collecting.

The page discloses only what the site actually loads, verified against the
code rather than assumed: GA4 (G-77H1KB1H05) and AdSense
(ca-pub-3427879236190872) from layout.tsx, Vercel Analytics and Speed Insights
alongside them, and giscus from Comments.tsx — which stores comments as GitHub
Discussions in this public repo. Both required opt-out destinations are linked,
not merely mentioned, because AdSense asks for the link.

Reachability was the other half. The footer link covers every page in the app
shell, but the home route is immersive and renders LedgerHome's own footer
instead, so the link is repeated there. /play is immersive too and keeps its
bare 3D chrome; it links home, which carries the policy.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LaydoxAZ4eaqqPNKrmWLbt
@vercel

vercel Bot commented Aug 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
portfolio Ready Ready Preview Aug 20, 2026 5:15pm

Request Review

@writingdeveloper
writingdeveloper merged commit 8775d47 into main Aug 20, 2026
3 checks passed
@writingdeveloper
writingdeveloper deleted the feat/privacy-policy branch August 20, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant