Monetization Dashboard
Track revenue, ad performance, and player lifetime value.
Overview
The Monetization Dashboard provides insights into your game's revenue streams:
- Revenue by Channel -- IAP, ads, and crypto breakdown
- ARPU / ARPPU -- Average Revenue Per User / Per Paying User
- LTV Projections -- Lifetime value estimates by cohort
- MRR -- Monthly Recurring Revenue (subscriptions)
- Ad Performance -- eCPM, fill rates, reward completion
Required Events
| Event | SDK Method | Auto-Tracked | Priority |
|---|---|---|---|
transaction | TrackTransaction() | No | Required |
ad_view | TrackAdView() | No | Recommended |
ad_click | TrackAdClick() | No | Recommended |
ad_reward | TrackAdReward() | No | Recommended |
crypto_tx | TrackCryptoTransaction() | No | Optional |
Event Implementation
Transaction Event (In-App Purchases)
using GameRebellionSdk.Unity;
// Standard IAP
GameRebellion.TrackTransaction(new GrTransactionEvent
{
Amount = 4.99,
Currency = "USD",
Type = "iap",
Description = "Premium Sword",
Status = "success",
UsdValue = 4.99
});
// Subscription
GameRebellion.TrackTransaction(new GrTransactionEvent
{
Amount = 14.99,
Currency = "USD",
Type = "subscription",
Description = "Monthly Battle Pass",
Status = "success",
UsdValue = 14.99
});
// Failed transaction (still tracked for funnel analysis)
GameRebellion.TrackTransaction(new GrTransactionEvent
{
Amount = 9.99,
Currency = "USD",
Type = "iap",
Description = "Gem Pack 100",
Status = "failed",
FailureReason = "payment_declined"
});
GrTransactionEvent Fields
| Field | Type | Required | Description |
|---|---|---|---|
Amount | double | No | Transaction amount. |
Currency | string | Yes | ISO 4217 currency code (e.g., "USD", "EUR"). |
Type | string | No | Transaction type: "iap", "subscription", "consumable". |
Description | string | No | Product name or description. |
TransactionHash | string | No | Receipt or transaction identifier. |
UsdValue | double? | No | Pre-converted USD value for cross-currency comparison. |
PlatformFee | string | No | Store fee percentage/amount. |
Status | string | No | "success", "failed", "pending", "refunded". |
FailureReason | string | No | Reason for failure (when Status is "failed"). |
Ad View Event
// Banner ad impression
GameRebellion.TrackAdView(new GrAdViewEvent
{
AdType = "banner",
AdPlacement = "main_menu",
AdSdkName = "AdMob",
Category = "display"
});
// Rewarded video impression
GameRebellion.TrackAdView(new GrAdViewEvent
{
AdType = "rewarded",
AdPlacement = "double_coins",
AdSdkName = "Unity Ads",
Category = "video",
AdDuration = 30.0,
LoadTime = 1.2
});
Ad Click Event
GameRebellion.TrackAdClick(new GrAdClickEvent
{
AdType = "interstitial",
AdPlacement = "level_complete",
AdSdkName = "AdMob",
Category = "display",
TimeToClick = 3.5
});
Ad Reward Event
GameRebellion.TrackAdReward(new GrAdRewardEvent
{
AdType = "rewarded",
AdPlacement = "double_coins",
AdSdkName = "Unity Ads",
RewardType = "coins",
RewardAmount = 100,
RewardCurrency = "gold"
});
Crypto Transaction Event (Web3 Games)
GameRebellion.TrackCryptoTransaction(new GrCryptoTransactionEvent
{
Amount = "0.1",
Currency = "ETH",
Type = "nft_purchase",
Blockchain = "ethereum",
TransactionHash = "0x1a2b3c...",
UsdValue = 350.00,
Status = "success",
NftCollection = "GameSwords",
NftRarity = "legendary"
});
Metrics Unlocked
| Metric | Description | Event Source |
|---|---|---|
| Total Revenue | Sum of all revenue | transaction, ad_reward |
| Revenue by Channel | IAP vs Ads vs Crypto breakdown | All monetization events |
| ARPU | Average Revenue Per User | transaction + sessions |
| ARPPU | Revenue Per Paying User | transaction |
| LTV | Lifetime Value projection | transaction + retention |
| MRR | Monthly Recurring Revenue | transaction (subscriptions) |
| eCPM | Effective Cost Per Mille | ad_view, ad_reward |
| Ad Fill Rate | Ads shown vs requested | ad_view |
| Conversion Rate | Players who make a purchase | transaction |
Best Practices
- Always include
CurrencyandUsdValue. Currency is required. ProvidingUsdValueenables accurate cross-currency revenue aggregation. - Track failed transactions. Failed purchases reveal conversion friction. Use
Status = "failed"with aFailureReason. - Track all ad types. Even if you only monetize with rewarded video, tracking banners and interstitials gives you a complete ad performance picture.
- Use consistent
AdPlacementnames. This lets you compare performance across placements (e.g.,"main_menu"vs."level_complete").
Implementation Checklist
-
TrackTransaction()called for all in-app purchases -
TrackAdView()called for ad impressions -
TrackAdClick()called for ad clicks -
TrackAdReward()called for rewarded ad completions -
TrackCryptoTransaction()called for Web3 transactions (if applicable) -
UsdValueincluded for cross-currency revenue accuracy