Skip to main content

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

EventSDK MethodAuto-TrackedPriority
transactionTrackTransaction()NoRequired
ad_viewTrackAdView()NoRecommended
ad_clickTrackAdClick()NoRecommended
ad_rewardTrackAdReward()NoRecommended
crypto_txTrackCryptoTransaction()NoOptional

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

FieldTypeRequiredDescription
AmountdoubleNoTransaction amount.
CurrencystringYesISO 4217 currency code (e.g., "USD", "EUR").
TypestringNoTransaction type: "iap", "subscription", "consumable".
DescriptionstringNoProduct name or description.
TransactionHashstringNoReceipt or transaction identifier.
UsdValuedouble?NoPre-converted USD value for cross-currency comparison.
PlatformFeestringNoStore fee percentage/amount.
StatusstringNo"success", "failed", "pending", "refunded".
FailureReasonstringNoReason 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

MetricDescriptionEvent Source
Total RevenueSum of all revenuetransaction, ad_reward
Revenue by ChannelIAP vs Ads vs Crypto breakdownAll monetization events
ARPUAverage Revenue Per Usertransaction + sessions
ARPPURevenue Per Paying Usertransaction
LTVLifetime Value projectiontransaction + retention
MRRMonthly Recurring Revenuetransaction (subscriptions)
eCPMEffective Cost Per Millead_view, ad_reward
Ad Fill RateAds shown vs requestedad_view
Conversion RatePlayers who make a purchasetransaction

Best Practices

  • Always include Currency and UsdValue. Currency is required. Providing UsdValue enables accurate cross-currency revenue aggregation.
  • Track failed transactions. Failed purchases reveal conversion friction. Use Status = "failed" with a FailureReason.
  • 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 AdPlacement names. 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)
  • UsdValue included for cross-currency revenue accuracy