TODO
Google Ads conversion
Set NEXT_PUBLIC_GOOGLE_CONVERSION_ID and GOOGLE_CONVERSION_LABEL in your deploy env vars. The demo page saves a “demo_engaged” conversion to /api/demo/conversion today; once both env vars are set, the JS path calls gtag('event', 'conversion', { send_to: 'ID/LABEL' }) for real attribution.
NEXT_PUBLIC_GOOGLE_CONVERSION_ID
unset
GOOGLE_CONVERSION_LABEL
aQm0wbedlRKFw+dhr6Gsx9WcBVqzbHkGgmNk304tkrg=
Stub only
Until both env vars are set, conversions land in dataLayer + the DemoConversion table — no Google Ads upload.

Paste this snippet to install the real Google tag

<!-- Paste into src/components/custom/head-content.tsx (next/script)
     and replace the two placeholders with the real values from your
     Google Ads UI → Conversions → New conversion → 'Use Google Tag Manager? No'.
     Until then leave NEXT_PUBLIC_GOOGLE_CONVERSION_ID unset so the stub fires. -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'AW-XXXXXXXXX');
</script>
<!-- The label aQm0wbedlRKFw+dhr6Gsx9WcBVqzbHkGgmNk304tkrg= is the conversion label printed by Google Ads. -->