Measurement ID G-2WWKKGDL6H wired via site.analytics.measurementId.
Layout conditionally injects the gtag.js loader + dataLayer init +
config call when analytics.measurementId is set, mirroring the
AdSense conditional pattern.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Shares the same publisher account as qipaobuzz (ca-pub-9763775565109295).
site.ads = { enabled: true, publisherId: '9763775565109295' }; Layout
conditionally injects the adsbygoogle.js loader in <head> when ads are
enabled, letting Google's auto-ads system place units automatically
(no manual <ins> slots — start with auto-ads, can add explicit slots
later if specific placements are needed).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Generic 'Street Culture Blog' replaced with a tagline that matches
the actual editorial angle from about.md ('guide to the anatomy of
online attention', 'lifecycle of hype: birth, peak, collapse', 'when
the hype is gone, all that's left is a 404'):
'Street culture - Anatomy of online hype, from peak to 404'
Flows through to <meta description>, og:description, twitter:description
and the visible header tagline.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>