The App > Reports > Analytics > LiveOps Campaigns page is where you measure the campaigns you configured under App > Design > LiveOps > Campaigns. It reports, per campaign, how each scenario performed against the others — engagement, retention, conversion and revenue — and tells you whether the differences it shows are statistically real or just noise.
The page has two levels. You first pick a campaign from the list, then work in that campaign's report: summary cards at the top, a daily chart in the middle, and the per-scenario comparison table at the bottom.
The Campaigns List
The opening table lists every campaign in your app, whether scheduled, running or finished:
Campaign Code — the campaign's unique ID. Click any row to open its report.
Name — the campaign's display name.
Scenarios — how many scenarios the campaign runs, including the control.
Purpose / Hypothesis — what the campaign was set up to test or achieve (hover to read long text in full).
Start — when the campaign started (or starts), shown relative to now. Hover for both local and UTC times.
Duration — how long the campaign runs.
Status — Scheduled, In Progress, Completed, Suspended, Cancelled or Disabled.
Notes — a yellow document icon appears when someone has recorded assessment notes for the campaign. Hover to read them.
Use the Search box to filter by campaign code, name or purpose, and the Status dropdown to show only campaigns in a given state.
If your app has no campaigns yet, the page switches itself into sample data mode so you can explore what the report looks like with realistic numbers. Sample mode is framed with an orange border and can be toggled with the Sample Data switch — nothing you see in that mode comes from your app.
Background: What This Report Is Measuring
A LiveOps campaign assigns each eligible player to one scenario, at random, according to the allocation weights you configured. The control scenario (_) applies no overrides and represents the default experience; the other scenarios are the variations you want to test. That makes a campaign a live A/B test, and this page is its scoreboard.
Enrolled means intent-to-treat. Every metric on this page is measured over the players assigned to a scenario, whether or not they came back, played, or spent anything. Each player is counted once. This is deliberate: dropping inactive players would bias the comparison toward whichever scenario happened to keep the most engaged users, which is exactly the effect you are trying to measure.
The baseline. All comparisons run against one baseline scenario — normally the control. If the campaign was configured with no control arm (control allocated 0%), brainCloud uses scenario A as the baseline instead, and the hovers say so explicitly ("Lift vs scenario A").
Significance. For each metric, brainCloud runs a statistical test comparing the scenario against the baseline and reports one of two verdicts:
significant (shown in blue) — at your chosen confidence level, the gap is unlikely to be chance. Treat it as a real difference.
not significant (shown muted) — the gap cannot be told apart from random variation. It may still be real, but there is not enough evidence yet.
Average metrics (revenue per user, session duration, daily playtime) are compared with Welch's t-test; rate metrics (Purchasers %, retention) with a two-proportion z-test. The supporting numbers — value, confidence range, lift, sample sizes, test used, and p-value — are all in the hover on the verdict text.
When A/B statistics are shown. Significance and confidence require something to compare against — a baseline plus at least one other scenario with participants. So the whole confidence layer (the verdicts, the significance-coloured ± pills, the statistical hovers and the Confidence selector) appears only for campaigns that actually have two or more arms to test:
A campaign running a single scenario with no control allocation — a themed event rolled out to everyone — has no comparison at all. No A/B statistics are calculated or shown for it; the report gives absolute performance only (see Themed Events below).
The same is true of a campaign that only ever enrolled players into one arm, even if more scenarios are configured — for example while the campaign is brand new, or if a variant's allocation was never given any traffic. Metrics still appear as soon as players enroll; the verdicts appear once there are two arms with data to test.
When a campaign has multiple scenarios but no A/B snapshot has been produced yet, the metric values and ± pills are still shown — just without verdicts, and with the pills coloured by simple ranking rather than significance (see The Scenario Analytics Table).
The Report Header
Opening a campaign replaces the list with that campaign's report. The header shows the back arrow, the campaign name and its status chip, plus these controls:
Confidence — the confidence level every significance verdict on the page is judged at. It is shown only for campaigns that have multiple scenarios to compare; single-scenario campaigns have no A/B statistics, so the control is omitted entirely. Changing it re-runs the analysis immediately as a preview; the Save (disk) button beside it stores your choice as the campaign's own setting so it is used the next time anyone opens the report. Five levels are offered, each with a hover explaining the trade-off:
99% — very strict; a 1-in-100 false-positive risk. For high-stakes decisions, but expect to need large differences or lots of players.
95% — the industry standard and the default. A good choice for most campaigns.
90% — relaxed; a 1-in-10 false-positive risk. Reasonable when player volume is limited and a directional read is enough.
85% — lenient; roughly a 1-in-7 risk. Reaches verdicts sooner, but treat winners as suggestive.
80% — very lenient; a 1-in-5 risk. Only for low-traffic apps or low-risk decisions.
Lowering the confidence level does not produce better results — it lowers the bar for declaring a winner. Choose the level before you look at the outcome, not after.
Notes — opens the campaign's assessment notes (see below). The button and its icon turn yellow once notes exist.
view campaign — jumps to the campaign's configuration on App > Design > LiveOps > Campaigns. The adjacent icon opens it in a new tab, which is handy for checking scenario overrides while reading the numbers.
The Summary Cards
The cards across the top of the report give the campaign at a glance:
Purpose — the campaign's purpose or hypothesis. Use the chevron to expand it if it was truncated.
Key Metric — the metric this campaign was set up to optimize (Revenue, Engagement, Retention or Conversion). It is shown only if the campaign defines one, and it drives the highlighting described below.
Campaign Duration — total length, the date range, and — while the campaign is In Progress — how much time remains. The remaining time turns yellow once less than a third of the campaign is left. The Extend button appears here for running campaigns.
Total Participants — unique players enrolled across all scenarios.
Total Revenue All Scenarios — all revenue collected from enrolled participants.
The remaining cards are winner cards — one per headline metric, each naming the scenario that leads it:
Longest Sessions — highest average length of a single play session.
Most PlayTime — highest average play time per participant per day.
Best Retention (D+N) — highest day-N retention (see Retention below). If no retention day is reportable yet, this card is replaced by a Scenarios card listing the campaign's scenarios instead.
Most Purchasers by % — highest share of participants who made at least one purchase.
Highest Revenue per User — highest average revenue per enrolled participant (ARPU).
Each winner card is colour-keyed to its scenario (left border and swatch), and shows the winning value, a trend arrow, and the significance verdict. The trend arrow only appears when the lead is statistically significant — a leading scenario with no arrow is ahead on the raw numbers but not provably ahead. Hovering a card gives the full statistical detail.
The winner card matching the campaign's Key Metric is tinted, as is the matching column in the scenario table, so the metric the campaign was actually run for stands out from the supporting ones.
Every card and column header carries a small (i) icon. Hover it for a plain-language definition of exactly how that number is calculated — this is the fastest way to settle "what does this metric actually mean?" while reading the report.
The Scenario Analytics Table
The table at the bottom is the head-to-head comparison, one row per scenario with the control first:
Scenario — the scenario code and its colour swatch. Hover for the scenario's description.
Allocation % — the configured share of eligible players assigned to this scenario.
Enrolled — unique players assigned to this scenario, counted once each.
Session Duration — average length of a single play session.
Daily Playtime — average play time per participant per day.
Retention (D+N) — day-N retention, shown only once a retention day is reportable.
Purchasers % — payers ÷ enrolled.
Revenue/User — total revenue ÷ enrolled, including participants who spent nothing (ARPU).
Each metric cell holds three things: the value, a ± pill giving the percentage difference from the baseline, and the significance verdict on the right. The baseline row itself shows a grey - - pill, since it has nothing to compare against.
Pill colours mean different things depending on whether statistical results are available:
With A/B statistics (the normal case): green = a real gain, red = a real loss, grey = a difference that isn't significant. Colour follows the verdict, not the size of the gap.
Without A/B statistics (for example a campaign with no participant data yet): the pills fall back to a purely descriptive ranking — grey when the gap is within the app's "no meaningful spread" threshold (5% by default), green for the best scenario, red for the worst, and intermediate colours in between. No verdicts are shown in this case.
Two different hovers are available in every cell. Hovering the value and pill shows the inputs behind the number — exact value, purchaser and enrolment counts, total revenue. Hovering the verdict text shows the confidence detail: value with its confidence range, lift versus baseline, sample sizes, which test was used, and the p-value.
A warning triangle in the Enrolled column means the scenario received noticeably more or fewer players than its allocation predicted — a sample-ratio mismatch. The hover shows expected versus observed counts and how much that scenario contributes to the mismatch. This matters because random assignment is what makes the comparison valid: if the split is off, something is interfering with enrollment (a mid-flight allocation change, a targeting change, or duplicate enrollment paths), and the verdicts should be treated with caution until you understand why.
Selecting rows in this table filters the chart above to just those scenarios — useful when a campaign runs several variants and you want to compare two of them directly.
Retention in a Campaign Report
Campaign retention is measured relative to enrollment, not to a player's first-ever login. Day 0 is the day the player was enrolled in the campaign, so D+7 asks: "of the players this scenario enrolled, how many were still playing a week later?" That makes it directly comparable between scenarios. (The app-wide report on App > Reports > Analytics > Retention uses first-login cohorts instead, so its numbers are answering a different question.)
Three concepts govern what you see:
The matured cohort — only participants who were enrolled at least N days ago can have their D+N outcome known. Retention rates are always computed against that matured group, which is why a young campaign shows retention for D+1 but not D+30.
Rolling vs Classic — rolling retention counts a participant who returned on day N or any later day; classic counts only those who returned exactly on day N. Rolling is always the higher number, and is the better read on "how much of this cohort is still reachable"; classic is the industry-standard benchmark and better for spotting a specific day where people drop off.
The headline day — brainCloud picks the largest day-N whose comparison has enough matured participants on both sides to be worth reporting (50 per side by default). The choice is made before looking at the outcome, so it can't flatter the result. If no day qualifies yet, the Retention column and Best Retention card are simply not shown.
The retention day and rolling/classic type shown by the Retention column and the Best Retention card follow the chart's retention controls. Change the day or type on the chart and both update — with a brief blue pulse to show what moved.
Because the headline day is chosen without regard to the outcome, a smaller day can be significant while the headline day is not. When that happens the cell adds a pointer beneath the verdict — for example (significant at D+3) — and the hover lists every other reportable day's rate and verdict, along with the new-player and returning-player breakdown where each cohort is large enough to report.
The Daily Chart
The chart between the cards and the table plots one line per scenario, day by day, so you can see when a difference appeared rather than just its final total. Pick what to plot from the metric dropdown:
Active Participants — participants active in the campaign each day.
New Participants — participants who joined the campaign each day.
Purchasers — participants who made their first campaign purchase each day.
Total Revenue — revenue from participants each day.
Total PlayTime — total time played by participants each day.
Item Sales — daily purchase counts of the catalog items this campaign adjusts. Only offered when the campaign has such sales.
Cash Product Sales — daily purchases of the cash products this campaign adjusts, as units or revenue. Only offered when the campaign has such sales.
Session Duration — average session length per active participant each day.
Daily Playtime — average time played per active participant each day.
Revenue per active User — average revenue per active participant each day.
Retention — day-N retention by enrollment-day cohort.
Each option carries an (i) hover with its definition, and options marked with an orange Raw chip are unadjusted totals rather than averages. If the campaign defines a Key Metric, the chart opens on the metric matching it.
The controls beside the dropdown change with the selected metric:
Normalize (raw metrics only) — divides each scenario's values by its allocation. A scenario given 10% of traffic will always look smaller than one given 60% on a raw count; normalizing puts them on a like-for-like footing.
Show Averages — overlays each scenario's range average as a dashed line, so you can see which days ran above or below trend. Not available for totals, retention, or the sales metrics.
Day +1 / +3 / +7 / +14 / +30, Rolling / Classic, and All Players / New Players / Returning (Retention only) — choose which retention view to plot. The day and type also drive the Retention column and the Best Retention card; the player-cohort split is chart-only.
All Items / All Products and Revenue (sales metrics only) — narrow to a single item or product, and for cash products switch between units sold and revenue collected.
Stacked (sales metrics only) — the sales metrics draw as bars: grouped bars compare scenarios side by side, stacked bars show total daily volume and its scenario mix.
Hovering a point gives that day's value for that scenario, its running cumulative total where that makes sense, and the range average. Clicking a scenario in the legend hides or shows its line.
On the retention chart, each point is one enrollment-day cohort's day-N rate, so the newest cohorts on the right are blank until they mature.
Themed Events (Single-Scenario Campaigns)
Not every campaign is an experiment. If a campaign allocates 0% to the control, enrolls no control participants, and runs exactly one scenario, brainCloud treats it as a themed event — a seasonal sale or holiday event rolled out to everyone — and the report changes accordingly.
In this mode there is nothing to compare against, so no A/B statistics are produced and every comparative surface is removed: no Confidence selector, no ± pills, no significance verdicts, no scenario table, and no Normalize control. Instead the cards report absolute performance:
Total Participants, Daily Active Users, Total Revenue, Avg Daily Playtime/User, Avg Session Length, Purchasers % and Avg. Revenue/User.
The Daily Active Users card carries the one comparison that still makes sense: a trend against your app's average DAU over the seven days before the event started. Total Revenue is highlighted as the headline card — or Avg Daily Playtime/User for apps with no revenue.
If you want statistical results from an event like this, it has to be run as a test: give the control a non-zero allocation so that some players get the default experience and there is a baseline to measure the event against.
Campaign Notes
The Notes button opens a side panel for recording your assessment of the campaign — what you concluded, what you shipped, what you would do differently. Notes support Markdown, are limited to 16,384 characters, and are saved against the campaign, so they stay with it permanently and can be edited even after the campaign has ended. A campaign with notes is flagged in the Notes column of the campaigns list.
The brainBot icon in the panel header asks brainBot to evaluate whether the campaign is ready for analysis and to draft the notes for you. brainBot receives the report's underlying statistics — sample sizes, confidence intervals, p-values and retention detail — not just what is visible on screen. This is disabled in sample-data mode.
Acting on the Results
Two actions are available from the report while a campaign is In Progress. Both require write access to the app.
Optimize Campaign... (above the scenario table) rolls a winner out to everyone: the selected scenario is set to 100% allocation for the remainder of the campaign. Players already enrolled keep the scenario they were assigned. The scenario that won the campaign's Key Metric is flagged Recommended. Selecting the control instead concludes the campaign immediately, since it returns every new participant to the default experience.
Extend (on the Campaign Duration card) pushes the end date out — either by a preset number of days (+1, +3, +7, +14, +30) or to a specific date and time — and previews the new end date and the length of the extension before you confirm. Extensions are capped by the maximum campaign duration configured for your app (90 days by default); the button is disabled once that cap is reached. If the app is live-locked you will be asked to unlock it first.
Extending a campaign that is close to a verdict is often the right call — but extending it repeatedly because it hasn't reached significance yet inflates your false-positive risk. Decide the duration you need up front where you can.
Data Freshness and Retention
The two halves of this report update on different schedules:
Descriptive daily metrics — the chart, the enrollment and revenue totals — are recorded as players play, so they are effectively live. Days are UTC. Play time and session-length figures are recorded when a session ends, so the current day's playtime lags slightly behind reality.
A/B statistics — the significance verdicts, confidence ranges, p-values and retention comparisons come from a snapshot that is recomputed daily. The exact timestamp of the snapshot you are looking at is shown just below the chart as "A/B statistics as of ...". Recomputation continues for a couple of days after a campaign ends, after which the totals no longer change and the final snapshot stands.
Changing the Confidence level does not wait for the next snapshot — verdicts are re-derived from the current snapshot immediately.
Retention and item/product sales breakdowns are computed on demand from campaign participant records, which are retained for 180 days after a campaign ends by default; the daily metrics behind the chart are retained for 730 days. If you need a permanent record of a campaign's outcome, capture it in the campaign notes.
Tips for Reading the Report
Lead with the Key Metric. The highlighted card and column are the metric the campaign was designed to move. A significant win on some other metric is interesting, but the more metrics you scan, the more likely one of them looks significant by luck alone.
Don't call a winner early. Verdicts refresh daily, and checking repeatedly until one turns blue is a well-known way to fool yourself. Decide your confidence level and your campaign length in advance, then read the result.
Read the confidence range, not just the value. A scenario showing +18% ARPU with a range spanning zero has not beaten the control. The width of that range is the honest measure of how much data you have.
Check the split before trusting the verdict. A warning triangle in the Enrolled column means assignment did not follow your allocation — resolve that before acting on any result from the campaign.
"Not significant" is a real result. It usually means the change you tested doesn't matter much — worth knowing, and cheaper to learn now than after a full rollout.
Look at the shape, not just the total. Use the chart to check whether a lead built steadily or came from a single day. A one-day spike often traces back to something other than the scenario itself.
Permissions
Accessing this page requires the REPORT_ANALYTICS_LIVEOPS_CAMPAIGNS permission. Reading the report needs read access only. Saving a Confidence setting, editing notes, optimizing a campaign and extending a campaign all require write access to the app — with read-only access those controls are visible but disabled.
