Track where your Minecraft players come from

Give every creator, server list and ad its own join address, such as yt.yourserver.net, all pointing at the same proxy. The address a player types travels in the Minecraft handshake, so the MCAnalytics connector on your Velocity proxy reads it and credits the player to that address on their first join, for good. Growth then lists each address with its new players, how many came back within 7 days, and what they spent in Tebex. There is no tracking link, no cookie and no pixel: the address is the campaign.

Sample data: the Sources table on the MCAnalytics Growth page, with each join address, its type, new players, 7-day return rate and revenue
Growth, Sources · Sample data, not a live network

How it works

  1. Make one address per source

    Add a DNS record for each creator, list or ad: a CNAME to your main address, or one wildcard record for all of them. Nothing changes on the proxy.

  2. Players type it to join

    The client sends the typed address in the handshake. The connector on Velocity reads it, or the Paper connector on a server that players join directly.

  3. The first join decides

    The first session ever recorded for a player writes their source. Joining later through another address does not move them, and a join with no address goes to Unknown instead of a guess.

  4. Compare sources on Growth

    Every address gets the same numbers: new players, 7-day return rate and Tebex revenue, so a small creator and a big server list are judged by one rule.

What you see on the dashboard

  • Sources table

    Each join address on one row with its type, new players, 7-day return rate and revenue, for 24 hours, 7, 30 or 90 days.

  • Addresses appear on their own

    A new address shows up after its first join. Label it or mark your main domain in Settings, with nothing to register in advance.

  • Unknown stays visible

    Players who arrived without a readable address are grouped as Unknown, so the rows still add up to your total.

  • Filter and export

    Show hostnames, creators, Discord or Unknown on their own, open a source for its details, and export the table as CSV.

Why the first join, and not the last

A player who found you through a creator and later types your main domain is still that creator's player. Crediting the first join counts every player once, under one source, and a source's numbers never change after the fact.

It has limits worth knowing. A player who saw a video but typed your main domain anyway is credited to the main domain. An address only works when the creator or list actually shows it, so give each one a name that is short and easy to type.

Questions

Do I need a new IP or a new server for every address?

No. Every address points at the same proxy, through a CNAME record or one wildcard record. The proxy needs no change, and the connector reads whichever name the player typed.

What if a player joins through two different addresses?

The first one counts, for life. Later joins through another address are still recorded as sessions, but the player stays credited to the source that brought them first.

Does this work on a single server without Velocity?

Yes. On a Paper or Purpur server that players join directly, the connector runs in standalone mode and reads the address itself. Behind a proxy, install it on the proxy, because a backend server never sees the address the player typed.

Read the docs

All features

Set it up on your network.

$1 for the first month, once per network, then from $4.99 a month. Community is free under 50 players, with no card.