Skip to content
Back to Launch & Discoverability

Geo Launch Metrics

Tracking launch performance by region — signups, activation, retention, and revenue per locale — so you know which regions to double down on and which to deprioritize.

Why

A single '3,127 signups' number hides that 60% came from the US, 22% from China, and 2% from Korea — and that Korean signups activated at 45% while US signups activated at 23%. Without per-region metrics, you don't know that Korea is your highest-activation region (worth doubling down on with a native OKKY campaign) or that Europe signups churn at 40% in month 1 (worth investigating the onboarding flow). Per-region metrics also reveal unexpected opportunities: maybe Brazil (pt) drove 500 signups with zero native content (just a translated page), suggesting that a native Portuguese post would 3x the signups. The metrics also inform the next launch's resource allocation: if China drove 22% of signups with 10 hours of effort and Europe drove 18% with 2 hours, Europe is 2.5x more efficient and deserves more investment next time. Without per-region tracking, every launch is a black box and you repeat the same resource allocation regardless of ROI.

When

Set up per-region tracking (UTM links, locale property on signup) before launch; review per-region metrics at T+24h, T+7, T+30; use the data to allocate the next launch's resources.

How

1. Before launch, add a locale property to every signup: capture the user's locale from the URL (/[locale]/signup), the browser's Accept-Language header, and the locale switcher cookie; store all three in the user record
2. Add UTM parameters to every regional channel link: ?utm_source=juejin&utm_medium=organic&utm_campaign=launch_v2 for the Juejin post, ?utm_source=qiita for the Qiita post — this attributes each signup to the channel that drove it
3. T+24h: pull signups by region (en, zh, ja, ko, es, fr, de, pt, ru) and by channel (PH, HN, Juejin, Qiita, OKKY, etc.); create a region × channel matrix
4. T+24h: for each region, calculate activation rate (signups who completed onboarding / total signups); identify the highest-activation region (double down) and the lowest (investigate the friction)
5. T+7: pull retention by region (signups who returned in week 1 / total signups); identify regions with low retention and investigate (is the product not localized? is the onboarding in the wrong language?)
6. T+7: pull revenue by region (paid users / total users × ARPU); identify the highest-revenue regions and the regions with high signup but low revenue (pricing too high? payment methods not available?)
7. T+30: compile a per-region launch report: signups, activation, retention, revenue, cost (content + translation + ads), ROI per region; rank regions by ROI
8. Use the T+30 report to allocate the next launch's resources: high-ROI regions get native content + paid promotion; low-ROI regions get translated content only; negative-ROI regions get deprioritized

Example

# Geo Launch Metrics — ez4code v2.0

## T+24h region × channel matrix
| Region | Signups | PH  | HN  | Juejin | Qiita | OKKY | LinkedIn |
|--------|---------|-----|-----|--------|-------|------|----------|
| en     | 1,892   | 60% | 24% | -      | -     | -    | 10%      |
| zh     | 892     | -   | -   | 70%    | -     | -    | -        |
| ja     | 423     | -   | -   | -      | 80%   | -    | -        |
| ko     | 234     | -   | -   | -      | -     | 70%  | -        |
| es     | 312     | 5%  | -   | -      | -     | -    | 60%      |
| fr     | 289     | 3%  | -   | -      | -     | -    | 70%      |
| de     | 412     | 4%  | 8%  | -      | -     | -    | 65%      |
| pt     | 487     | 8%  | -   | -      | -     | -    | 55%      |
| ru     | 186     | 2%  | 12% | -      | -     | -    | -        |
| Total  | 4,127   |     |     |        |       |      |          |

## T+7 activation + retention by region
| Region | Signups | Activation | W1 Retention | Revenue |
|--------|---------|------------|--------------|---------|
| en     | 1,892   | 23%        | 67%          | $2,890  |
| zh     | 892     | 34%        | 78%          | ¥31,200 |
| ja     | 423     | 41%        | 82%          | ¥18,900 |
| ko     | 234     | 45%        | 84%          | ₩89,000 |
| pt     | 487     | 38%        | 76%          | R$1,890 |

## Insights
- Korea: highest activation (45%) and retention (84%) → double down
- Brazil (pt): 487 signups with translated content only → native content opportunity
- Europe (es/fr/de): high signups, low activation → investigate onboarding
- Russia: low signups (186) → Habr post underperformed, try different angle

## T+30 ROI per region
| Region | Cost  | Revenue | ROI   | Action next  |
|--------|-------|---------|-------|--------------|
| ko     | $200  | $720    | 3.6x  | Native content|
| zh     | $800  | $2,400  | 3.0x  | Native content|
| ja     | $400  | $1,500  | 3.75x | Native content|
| pt     | $50   | $560    | 11.2x | Native content|
| en     | $0    | $2,890  | ∞     | Maintain     |

Common Problems

  • ⚠Tracking only total signups (not per-region) — '4,127 signups' is a vanity metric; 'Korea has 45% activation vs 23% US' is an actionable insight; without per-region tracking, you can't allocate resources by ROI.
  • ⚠Attributing all signups to the last click (not the first) — a user who discovered you on Juejin (zh) and signed up via the en landing page gets attributed to 'en direct'; use first-touch attribution to credit the Juejin post.
  • ⚠Not tracking activation and retention by region — signups are top-of-funnel; if Korean signups activate at 45% and European signups at 15%, Korea is 3x more valuable per signup; without activation data, you treat all signups as equal.
  • ⚠Ignoring revenue by region — 200 Korean signups at $9/mo with 84% retention are worth more than 500 European signups at $9/mo with 40% retention; revenue + retention, not signup count, should drive resource allocation.

Best Practices

  • ✓Capture locale on every signup (from URL, Accept-Language, cookie) and store it in the user record — this is a 1-line change that enables all per-region analysis; without it, you can't slice by region.
  • ✓Use first-touch attribution (not last-touch) — the Juejin post that introduced the user gets credit, even if they signed up from the en landing page 3 days later; last-touch attribution undervalues the regional channels.
  • ✓Track the full funnel per region: signups → activation → week-1 retention → revenue — signups alone are misleading; Korea's 234 signups at 45% activation and 84% retention are worth more than Europe's 1,013 signups at 15% activation and 40% retention.
  • ✓Use the T+30 per-region ROI report to allocate the next launch's resources — high-ROI regions (ko, ja, pt) get native content and paid promotion; low-ROI regions get translated content only; this data-driven allocation beats guessing every time.