Brazil's biggest MU Online portal — since 2003
Tutorial Intermediate Web

How to run A/B testing on your MU Online server's donation page

Learn how to structure A/B tests on your MU Online server's donation page, from hypothesis design to significance calculation, to increase conversion and average ticket without risking revenue.

BR Bruno · Updated on Jul 31, 2026 · ⏱ 14 min read
Quick answer

The donation page is the most important commercial asset of any MU Online private server: it's where community engagement converts into revenue that pays for hosting, DDoS protection, and the development team's time. Small changes to copy, layout, or price can produce swings of 15% to 40% in convers

The donation page is the most important commercial asset of any MU Online private server: it's where community engagement converts into revenue that pays for hosting, DDoS protection, and the development team's time. Small changes to copy, layout, or price can produce swings of 15% to 40% in conversion — but without a structured testing process, those changes become the admin's guesswork. This tutorial shows how to build an A/B testing program for the donation page, from hypothesis formulation to reading the statistical result, avoiding decisions based on "gut feeling" or a sample too small to mean anything.

Why test the donation page instead of just "improving by feel"

Server admins often redesign the donation page based on personal taste or by copying a competitor with more players. The problem is that a page that converts well for one audience (hardcore PvP, x1000 server) may convert poorly for another (casual, x50 server). An A/B testing program replaces the question "what do I think looks good" with "what gets more people to complete payment," measured with real data from your own audience. This is especially critical when the change involves price or removing an item from the shop, points that create direct friction with the community if decided wrong.

Defining the primary metric before anything else

Before designing any variant, define which metric will decide the test. The most commonly used ones on MU portals are:

MetricWhat it measuresWhen to prioritize it
Conversion rate (visits → payment started)How many visitors click "donate" and start checkoutWhen testing CTAs, button colors, headlines
Checkout completion rateHow many who started payment actually payWhen testing payment methods, forms
Average ticket (page ARPU)Average amount spent per transactionWhen testing package composition and discounts
Revenue per visitor (RPV)Total revenue divided by visits"Umbrella" metric for deciding between conflicting tests

Choose one primary metric per test. Running a test that optimizes conversion and average ticket at the same time, without a defined priority, is the most common cause of "the test came back inconclusive" in community reports.

Formulating the hypothesis

Every test should follow the format: "If I change [X], I expect [metric] to improve because [reason based on observed behavior]". Examples of strong hypotheses for MU servers:

  • "If I show the Jewel bonus the player gets when buying the 50-Coin package, I expect conversion to increase because the player currently doesn't perceive the package's added value."
  • "If I reduce the packages shown on the page from 6 to 3, I expect the average ticket to increase because too many options are causing choice paralysis (the paradox of choice)."
  • "If I add a counter of daily/monthly donors, I expect conversion to increase because social proof reduces hesitation for those who have never donated."

Vague hypotheses like "let's make it prettier" don't produce learning — even if the variant wins, you won't know why, and you won't be able to replicate the gain in another test.

Technical structure: splitting traffic without two versions of the site

For servers using their own CMS (PHP with a panel like IGCN, MuEMU Website, or a customized WordPress), the simplest approach is a bucket cookie set on first access:

<?php
// bucket.php - runs before rendering the donation page
session_start();
if (!isset($_COOKIE['ab_donation_test'])) {
    $bucket = (mt_rand(0, 1) === 0) ? 'A' : 'B';
    setcookie('ab_donation_test', $bucket, time() + 60*60*24*30, '/');
    $_COOKIE['ab_donation_test'] = $bucket;
}
$variant = $_COOKIE['ab_donation_test'];

if ($variant === 'B') {
    include 'donation_variant_b.php';
} else {
    include 'donation_variant_a.php';
}

This pattern ensures the same player always sees the same variant (consistency), which is essential: switching layout on every visit destroys user trust and contaminates the data, since a player might start payment on one variant and finish seeing another.

Tools to measure without reinventing the wheel

You don't need to build a statistics engine from scratch. Options compatible with MU Online sites:

ToolTypeAdvantage for MU servers
GA4 + custom eventsFree analyticsAlready covered in the site's analytics flow; just segment by ab_donation_test
GrowthBookFeature flag + statistics, open sourceRuns self-hosted, no third-party dependency for sensitive payment data
PostHogAnalytics + experimentsHas built-in significance calculation and session replay useful for seeing where players drop off
Manual spreadsheet + Chi-squareZero costViable for small servers with low transaction volume

For most admins, GA4 with one donation_variant_view event and another donation_purchase_complete, cross-tabulated by segment, is already enough to decide the test at no extra cost.

Calculating sample size before launching

A recurring mistake is ending the test as soon as one variant "seems" to be winning. Before running it, estimate how many conversions you need to detect the difference that matters. As a practical (not exact) reference, to detect a 20% relative improvement over a 3% baseline conversion rate, you need roughly 2,000 to 3,000 visitors per variant — numbers that mid-sized servers (2,000 to 5,000 active players) reach in 1 to 2 weeks on the donation page.

If your server has low traffic, prefer testing changes with a large expected effect (redesigning the whole page) instead of fine details (button color), since small effects require much larger samples to be detected with confidence.

Running the test: duration and contamination windows

Never end a test before completing at least one full weekly cycle — donations behave very differently on a season reset day, a double-drop event, or a payday weekend (many players get paid at the start/middle of the month). If your server does monthly ranking resets, include at least one of those cycles in the test, since that day tends to concentrate 20% to 40% of monthly revenue on servers with short seasons.

Reading the result with statistical significance

After collecting the data, calculate whether the observed difference is statistically significant or just noise. A simple proportion test (z-test) between the two conversion rates, at a 95% confidence level, is the market standard. Tools like GrowthBook and PostHog calculate this automatically; if doing it manually, use an A/B significance calculator (several free ones exist online) fed with: variant A visitors, A conversions, variant B visitors, B conversions.

p-value resultInterpretationRecommended action
p < 0.05 and B > AB won with confidenceImplement B as the default
p < 0.05 and A > BA won with confidenceKeep A, discard B
p ≥ 0.05InconclusiveRun longer or increase the tested effect

Priority tests to start with

If you've never run A/B testing on donations, start with these, in order of historically observed impact on MU portals:

  1. Headline and value proposition at the top of the page (benefit-focused vs. item-focused).
  2. Number and composition of packages shown (3 packages vs. 6 packages).
  3. "Most popular" badge on an intermediate package (price anchoring effect).
  4. Showing or hiding total raised/server goal (transparency vs. urgency).
  5. Order of payment methods (Pix first vs. card first, for a Brazilian audience).

Ethical and community considerations

Testing price and artificial scarcity ("only 3 left") can generate distrust if the community perceives manipulation, especially on smaller servers where the player base is closer to the admin team. Avoid creating fake scarcity (fictitious "remaining slots" numbers); prefer testing legitimate elements like information clarity, real social proof (actual donor counts), and payment ease. Tests perceived as deceptive cost more in reputation than any short-term conversion gain.

Common errors and fixes

SymptomLikely causeSolution
Test "tied" after daysInsufficient sample for the tested effectCalculate sample size beforehand and run longer, or test a bigger change
Player sees different layouts between visitsBucket cookie not persisted correctlyFix the cookie expiration time and ensure per-session consistency
Conversion dropped for both groupsExternal change (event, server outage) contaminated the testPause the test during instability and restart the count
Result looks good but average ticket droppedWrong primary metric (only measured conversion)Always track conversion and revenue per visitor together
Community complained about the testChange perceived as manipulation (fake scarcity, price)Use only real data and communicate price changes transparently

A/B testing implementation checklist

  • Primary metric defined before launching the test.
  • Hypothesis written in the "if X, then Y, because Z" format.
  • Sample size estimated for the expected effect.
  • Variant cookie/bucket persistent and consistent per player.
  • Measurement tool configured (GA4, GrowthBook, or PostHog).
  • Minimum duration of one weekly/season cycle defined.
  • Statistical significance calculated before declaring a winner.
  • Change communicated to the community if it involves price or packages.

After validating your first tests, the natural next step is to connect the donation page results to the rest of your portal's telemetry, cross-referencing conversion with gameplay and retention data described in the tutorial on how to create a MU Online server, closing the loop between in-game engagement and revenue.

Frequently asked questions

Do I need a lot of traffic to run A/B testing on the donation page?

Ideally yes — small servers (under 200 daily visits on the donation page) take weeks to reach statistical significance. In those cases, test big changes (e.g., redesigning the whole layout) instead of micro-optimizations, since the effect needs to be large enough to show up with little data.

Which tool should I use to run an A/B test without touching the site's backend?

Google Optimize was discontinued, but alternatives like GrowthBook (open source), PostHog, or even a simple cookie-based switch combined with Google Analytics/GA4 custom events work well for most MU portals.

Is it worth testing donation package prices?

Yes, it's one of the highest-impact tests, but proceed carefully: price changes affect community perception and can generate complaints on the forum/Discord if done without communication. Prefer testing price through 'new' packages instead of changing existing ones.

How do I keep players from noticing they're in an A/B test?

Run the test server-side (server-side rendering or feature flag), never visibly swap the layout for the same user across different sessions, and don't publicly announce the test while it's active.

How long should an A/B test run?

At least one full cycle of your audience's behavior — usually 1 to 2 weeks, covering weekdays and weekends, plus the ranking reset day if your server has a short season, since that day tends to concentrate donations.

BR
Events, maps & items editor

Bruno specializes in MU Online events, maps, bosses and item economy. He documents every detail based on real gameplay.

Keep reading

Related articles