agentsclimarketplace

Monetization systems

Skill medy-gribkov/arcana/skills/monetization-systems

Universal AI development toolkit. 74 production-ready skills for every coding agent. Works with Claude Code, Cursor, Codex.

Install
npx -y skills add medy-gribkov/arcana --skill monetization-systems

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Game monetization strategies, in-app purchases, battle passes, ads integration, and player retention mechanics. Ethical monetization that respects players.

SKILL.md

18.0 KB, as published. Nobody here has run it

Monetization Systems

Monetization Models

CHOOSING YOUR MODEL:
┌─────────────────────────────────────────────────────────────┐
│  GAME TYPE                    → RECOMMENDED MODEL           │
├─────────────────────────────────────────────────────────────┤
│  Story-driven / Single play   → PREMIUM ($10-60)           │
│  Competitive multiplayer      → F2P + Battle Pass          │
│  Mobile casual                → F2P + Ads + Light IAP      │
│  MMO / Live service           → Subscription + Cosmetics   │
│  Indie narrative              → Premium + Optional tip jar │
└─────────────────────────────────────────────────────────────┘

ETHICAL PRINCIPLES:
┌─────────────────────────────────────────────────────────────┐
│  ✅ DO:                        ❌ DON'T:                    │
│  • Cosmetics only              • Pay-to-win                 │
│  • Clear pricing               • Hidden costs               │
│  • Earnable alternatives       • Predatory targeting        │
│  • Transparent odds            • Gambling mechanics         │
│  • Respect time/money          • Exploit psychology         │
│  • Value for purchase          • Bait and switch            │
└─────────────────────────────────────────────────────────────┘

IAP Implementation

// ✅ Production-Ready: Unity IAP Manager
public class IAPManager : MonoBehaviour, IStoreListener
{
    public static IAPManager Instance { get; private set; }

    private IStoreController _storeController;
    private IExtensionProvider _extensionProvider;

    // Product IDs (match store configuration)
    public const string PRODUCT_STARTER_PACK = "com.game.starterpack";
    public const string PRODUCT_GEMS_100 = "com.game.gems100";
    public const string PRODUCT_BATTLE_PASS = "com.game.battlepass";
    public const string PRODUCT_VIP_SUB = "com.game.vip_monthly";

    public event Action<string> OnPurchaseComplete;
    public event Action<string, string> OnPurchaseFailed;

    private void Awake()
    {
        if (Instance != null) { Destroy(gameObject); return; }
        Instance = this;
        DontDestroyOnLoad(gameObject);

        InitializePurchasing();
    }

    private void InitializePurchasing()
    {
        var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());

        // Consumables
        builder.AddProduct(PRODUCT_GEMS_100, ProductType.Consumable);

        // Non-consumables
        builder.AddProduct(PRODUCT_STARTER_PACK, ProductType.NonConsumable);

        // Subscriptions
        builder.AddProduct(PRODUCT_VIP_SUB, ProductType.Subscription);
        builder.AddProduct(PRODUCT_BATTLE_PASS, ProductType.Subscription);

        UnityPurchasing.Initialize(this, builder);
    }

    public void BuyProduct(string productId)
    {
        if (_storeController == null)
        {
            OnPurchaseFailed?.Invoke(productId, "Store not initialized");
            return;
        }

        var product = _storeController.products.WithID(productId);
        if (product != null && product.availableToPurchase)
        {
            _storeController.InitiatePurchase(product);
        }
        else
        {
            OnPurchaseFailed?.Invoke(productId, "Product not available");
        }
    }

    public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
    {
        var productId = args.purchasedProduct.definition.id;

        // Validate receipt (server-side recommended for security)
        if (ValidateReceipt(args.purchasedProduct.receipt))
        {
            // Grant the purchase
            GrantPurchase(productId);
            OnPurchaseComplete?.Invoke(productId);
        }

        return PurchaseProcessingResult.Complete;
    }

    private void GrantPurchase(string productId)
    {
        switch (productId)
        {
            case PRODUCT_GEMS_100:
                PlayerInventory.AddGems(100);
                break;
            case PRODUCT_STARTER_PACK:
                PlayerInventory.UnlockStarterPack();
                break;
            case PRODUCT_BATTLE_PASS:
                BattlePassManager.Activate();
                break;
        }
    }

    // IStoreListener implementation...
    public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
    {
        _storeController = controller;
        _extensionProvider = extensions;
    }

    public void OnInitializeFailed(InitializationFailureReason error) { }
    public void OnPurchaseFailed(Product product, PurchaseFailureReason reason) { }
}

Battle Pass Design

BATTLE PASS STRUCTURE:
┌─────────────────────────────────────────────────────────────┐
│  SEASON LENGTH: 8-12 weeks                                   │
│  TIERS: 100 levels                                           │
│  XP PER TIER: 1000 (increases gradually)                    │
├─────────────────────────────────────────────────────────────┤
│  FREE TRACK:                                                 │
│  • Common rewards every 5 levels                            │
│  • 1-2 rare items mid-season                                │
│  • Currency to buy next pass (partial)                      │
├─────────────────────────────────────────────────────────────┤
│  PREMIUM TRACK ($10):                                        │
│  • Exclusive skin at level 1 (instant value)                │
│  • Premium rewards every level                              │
│  • Legendary items at 25, 50, 75, 100                       │
│  • Enough currency to buy next pass (with effort)           │
├─────────────────────────────────────────────────────────────┤
│  XP SOURCES:                                                 │
│  • Daily challenges: 500 XP                                 │
│  • Weekly challenges: 2000 XP each                          │
│  • Playtime: 50 XP per match                                │
│  • Special events: Bonus XP weekends                        │
└─────────────────────────────────────────────────────────────┘

Economy Design

DUAL CURRENCY SYSTEM:
┌─────────────────────────────────────────────────────────────┐
│  SOFT CURRENCY (Gold/Coins):                                 │
│  • Earned through gameplay                                  │
│  • Used for: Upgrades, basic items, consumables             │
│  • Sink: Level-gated purchases, repair costs               │
├─────────────────────────────────────────────────────────────┤
│  HARD CURRENCY (Gems/Diamonds):                              │
│  • Purchased with real money                                │
│  • Small amounts earnable in-game                           │
│  • Used for: Premium cosmetics, time skips                  │
│  • NEVER required for core gameplay                         │
└─────────────────────────────────────────────────────────────┘

PRICING PSYCHOLOGY:
┌─────────────────────────────────────────────────────────────┐
│  $0.99  - Impulse buy, low barrier                          │
│  $4.99  - Starter pack sweet spot                           │
│  $9.99  - Battle pass standard                              │
│  $19.99 - High-value bundles                                │
│  $49.99 - Whale offering (best value/gem)                   │
│  $99.99 - Maximum purchase (regulations)                    │
└─────────────────────────────────────────────────────────────┘

Key Metrics

MONETIZATION KPIS:
┌─────────────────────────────────────────────────────────────┐
│  CONVERSION RATE: 2-5% (F2P)                                 │
│  ARPU: $0.05-0.50/DAU (casual mobile)                       │
│  ARPPU: $5-50/paying user                                   │
│  LTV: Should exceed CPI by 1.5x+                            │
├─────────────────────────────────────────────────────────────┤
│  HEALTHY INDICATORS:                                         │
│  ✓ D1 retention > 40%                                       │
│  ✓ D7 retention > 20%                                       │
│  ✓ Conversion > 2%                                          │
│  ✓ LTV/CPI > 1.5                                            │
│  ✓ Refund rate < 5%                                         │
└─────────────────────────────────────────────────────────────┘

A/B Test Revenue Impact

A/B TEST REVENUE FORMULA:
┌─────────────────────────────────────────────────────────────┐
│  Revenue Impact = (Variant ARPU - Control ARPU) × DAU       │
│                                                              │
│  EXAMPLE:                                                    │
│  Control:  ARPU = $0.20, 10,000 DAU                         │
│  Variant:  ARPU = $0.25, 10,000 DAU                         │
│                                                              │
│  Daily Impact:   ($0.25 - $0.20) × 10,000 = $500/day        │
│  Monthly Impact: $500 × 30 = $15,000/month                  │
│  Annual Impact:  $15,000 × 12 = $180,000/year               │
├─────────────────────────────────────────────────────────────┤
│  STATISTICAL SIGNIFICANCE:                                   │
│  • Minimum sample: 100 conversions per variant             │
│  • Target p-value: < 0.05 (95% confidence)                 │
│  • Run duration: 7-14 days minimum                         │
│                                                              │
│  WATCH FOR:                                                  │
│  • Revenue up, retention down = short-term win, long loss  │
│  • Test during normal periods (avoid holidays/events)      │
│  • Segment by user cohort (new vs veteran players)         │
└─────────────────────────────────────────────────────────────┘
# Calculate A/B test significance
from scipy import stats

def calculate_ab_significance(
    control_conversions: int,
    control_users: int,
    variant_conversions: int,
    variant_users: int
) -> dict:
    """Chi-square test for A/B test significance."""

    control_rate = control_conversions / control_users
    variant_rate = variant_conversions / variant_users

    # Chi-square test
    observed = [[control_conversions, control_users - control_conversions],
                [variant_conversions, variant_users - variant_conversions]]
    chi2, p_value, dof, expected = stats.chi2_contingency(observed)

    return {
        "control_rate": f"{control_rate:.2%}",
        "variant_rate": f"{variant_rate:.2%}",
        "lift": f"{((variant_rate / control_rate) - 1) * 100:.1f}%",
        "p_value": p_value,
        "significant": p_value < 0.05
    }

# Example
result = calculate_ab_significance(
    control_conversions=200,
    control_users=10000,
    variant_conversions=250,
    variant_users=10000
)
print(f"Lift: {result['lift']}, Significant: {result['significant']}")

🔧 Troubleshooting

┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Low conversion rate (< 1%)                         │
├─────────────────────────────────────────────────────────────┤
│ ROOT CAUSES:                                                 │
│ • IAP offers too expensive                                  │
│ • Poor first purchase experience                            │
│ • No perceived value                                        │
│ • Wrong timing                                              │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS:                                                   │
│ → Add high-value starter pack                               │
│ → Show IAP after engagement hook                            │
│ → A/B test price points                                     │
│ → Improve soft currency scarcity                            │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: High refund rate (> 10%)                           │
├─────────────────────────────────────────────────────────────┤
│ ROOT CAUSES:                                                 │
│ • Unclear what purchase provides                            │
│ • Buyers remorse (poor value)                               │
│ • Accidental purchases                                      │
│ • Technical issues                                          │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS:                                                   │
│ → Add purchase confirmation                                 │
│ → Show exactly what user receives                           │
│ → Improve purchase value                                    │
│ → Fix any delivery bugs                                     │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Economy inflation                                  │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS:                                                   │
│ → Add more currency sinks                                   │
│ → Reduce faucets gradually                                  │
│ → Introduce prestige/reset systems                          │
│ → Create consumable high-end items                          │
└─────────────────────────────────────────────────────────────┘

Compliance

RegionRequirement
EULoot box odds disclosure
BelgiumNo loot boxes
ChinaOdds, spending limits
JapanKompu gacha banned
USCOPPA for under-13

Use this skill: When designing monetization, balancing economy, or implementing purchasing systems.

Gives 0 of the 12 instructions most pricing monetisation skills give

Counted across 366 of the 366 authors here whose files we hold, read 2026-08-06

  • verify webhook signaturesin 23 of 366, across 19 files
  • differentiate tiers using features, limits, or supportin 15 of 366, across 4 files
  • read product marketing context before asking questionsin 14 of 366, across 6 files
  • base price on perceived value, not costin 14 of 366, across 3 files
  • use Van Westendorp to find acceptable price rangein 14 of 366, across 3 files
  • use MaxDiff to identify highly valued featuresin 14 of 366, across 3 files
  • choose a value metric that scales with customer valuein 14 of 366, across 9 files
  • handle webhook events idempotentlyin 12 of 366, across 6 files
  • understand the upgrade context before recommendingin 11 of 366, across 4 files
  • align the pricing metric with delivered valuein 10 of 366, across 4 files
  • install stripe packagein 10 of 366, across 5 files
  • calculate unit economics metricsin 10 of 366, across 5 files

Said here and by no other author read

  • match monetization model to game type
  • offer cosmetic items only
  • provide clear pricing
  • offer earnable alternatives
  • validate purchase receipts server-side
  • design battle passes with free and premium tracks

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.