How we track our own iOS app installs
ASC API + ct= campaign tokens, per-source attribution, and zero personal data on the install funnel.
Every App Store link on hundo-hunter.com has a ct= campaign token. Apple's App Analytics aggregates installs per token and surfaces them via the App Store Connect Analytics API. We pull daily totals, never per-user data.
Apple's iTunes Store URL accepts a ?ct=<token> parameter. Anyone who taps a link with the token, then downloads the app within the next ~24 hours, is attributed to that token in App Store Connect Analytics.
We use one token per content source: storage-system page = ct=storage, blog post = ct=blog-<slug>, monthly recap = ct=recap-2026-05, etc. The tokens never leave Apple's servers in raw per-user form — only aggregate daily counts are returned.
https://apps.apple.com/app/hundo-hunter/id6766415258?ct=<source>&pt=<provider> ct = content/campaign token // up to 100 chars, alphanumeric pt = provider token // omitted; we are the developer
The full implementation lives at lib/asc/url.ts. All AppStoreLink components in the site render through a single buildAppStoreUrl(source) helper so we never hand-type tokens.
We never include user IDs, session IDs, IP fragments, or any other identifier in the ct token — only the abstract source surface name.
Attribution is intentionally minimal:
- ▸We DO: pull daily aggregate install counts per ct token via the ASC Analytics API on a nightly cron.
- ▸We DO: surface 30-day rolling totals per source on the internal /admin/analytics dashboard.
- ▸We do NOT: drop any cookie, fingerprint, or per-user pixel on app store link clicks.
- ▸We do NOT: pair ct tokens with any user table — there is no user table on the site at all (no accounts).
- ▸We do NOT: share or sell the aggregated counts with any third party.
App-install attribution is one of the few places a site can quietly add tracking and most users would never notice. We list the exact mechanism here so anyone curious can verify by network-tapping a link.
The full client code is in the repo at lib/asc/url.ts. The server-side pull script is a thin wrapper around the ASC API using the same ES256 JWT signer we use for App Store releases.
How Hundo Hunter solves the CP formula backward to find IVs.
How Hundo Hunter ranks the top 12 counters for every raid boss.
How Hundo Hunter curates the top-12 picks per league.
How Hundo Hunter computes the hundo and floor CP for every raid catch.
How Hundo Hunter assigns S / A+ / A / B / C tiers to attackers.
How Hundo Hunter maps the in-game appraisal stat bars to exact 0-15 IVs.
The DPS × Effectiveness × Bulk formula behind every counter list on Hundo Hunter.
The 91% IV threshold, XL-relevance check, and per-species candy economics behind every Pinap recommendation.
Per-level CPM math, Lucky halving, Best Buddy stack, and why our estimates can differ from in-game by 1-2%.
LeekDuck → ScrapedDuck → our API, with 1-hour refresh, Postgres translation cache, and graceful fallback.
Where the "mons" / "the game" convention applies, where the trademarked name is allowed, and why.
Vercel Analytics, no personal tracking, opt-in email only, and stateless HMAC unsubscribes.