Three layers (honest status)
| Layer | Status | What it tells you | Money? |
|---|---|---|---|
localStorage |
Live | Per-browser chooser events under affairs_chooser_events (this page) |
No |
| Cloudflare Web Analytics | Parked — pending beacon token | When enabled: aggregate page views / referrers in the CF dashboard (private). Loader is on every page (analytics-config.js + analytics.js) with enabled: false and empty token — no network calls until flipped. |
No |
| Money (affiliate) | systeme.io affiliate dashboard → Ops | Pending / approved / cash only there. Ops books cash received via the PNL / systeme SOP in private records — not on this public site. | Only cash received |
Internal tracking notes (incl. CF status and Ops PNL SOP) live in private records
(TRACKING.md / PNL-SYSTEME-SOP.md) — not linked as a public CF dashboard.
Do not treat this page as proof that aggregate CF analytics are live.
Layer 1 — Storage key (live)
Events are appended to browser localStorage under
affairs_chooser_events (see app.js).
Cap: last 100 entries. Events also console.log / console.debug
via a beacon stub that does not POST anywhere yet.
What each event means
| type | When | detail (typical) |
|---|---|---|
page_view |
Chooser page loads | path |
recommend |
You submit the form | answers, ranked tools with scores |
affiliate_click |
You click a card CTA | slug, rank, href, score, answers |
reset |
You hit Start over | empty object |
progress |
You complete a fieldset (budget / need / team) | field, value, filled count |
Each entry also has an ISO ts. Kit / Leadpages / Surfer CTA hrefs stay
/go/placeholder?utm_source=affairs&utm_medium=chooser&utm_campaign=<slug>.
The systeme.io CTA uses the live affiliate URL plus the same UTM set
(utm_campaign=systeme). Placeholder /go/* clicks are logged without navigating
(that path is not hosted on Pages). Live affiliate clicks navigate (new tab) and are still logged.
Export via browser console
On the chooser origin, open DevTools → Console and run:
JSON.parse(localStorage.getItem('affairs_chooser_events') || '[]')
Pretty-print / copy:
copy(JSON.stringify(JSON.parse(localStorage.getItem('affairs_chooser_events') || '[]'), null, 2))
Clear the log (optional):
localStorage.removeItem('affairs_chooser_events')
localStorage data never leaves your browser. Clearing site data or using another device/profile starts a new empty log. This is not a substitute for later aggregate analytics.
Layer 2 — Cloudflare Web Analytics (parked)
Sitewide loader scripts are deployed: analytics-config.js then analytics.js.
Config currently has an empty cloudflareToken and enabled: false, so the beacon
does not load and makes no network requests. When a real CF Web Analytics token is set and
enabled flipped to true, the beacon will report aggregate traffic to the
Cloudflare dashboard (private account view — not claimed as public on this site).
Layer 3 — Money only in systeme.io → Ops PNL
Affiliate pending / approved / paid amounts live in the systeme.io affiliate dashboard. Ops records cash received per the private PNL / systeme SOP. This public page does not show balances, commissions, or a CF dashboard link.
Related
- Methodology — ranking weights + research vs hands-on
- Chooser — generate
recommend/affiliate_clickevents