@web-engine-dev/monetization
Creator economy and monetization system for web-engine-dev.
Features
- In-App Purchases: Virtual goods and currency
- Subscriptions: Recurring payments
- Ad Integration: Rewarded ads
- Revenue Sharing: Creator payouts
- Virtual Currency: Coins, gems, etc.
- Bundles: Package deals
Installation
bash
npm install @web-engine-dev/monetization
# or
pnpm add @web-engine-dev/monetizationQuick Start
typescript
import { Monetization, PurchaseManager } from '@web-engine-dev/monetization';
// Initialize
const monetization = new Monetization({
apiKey: 'your-api-key',
gameId: 'my-game',
});
// Get products
const products = await monetization.getProducts();
// Make purchase
const result = await monetization.purchase('premium_pack');
if (result.success) {
grantItems(result.items);
}
// Show rewarded ad
const reward = await monetization.showRewardedAd();
if (reward.completed) {
grantCoins(reward.amount);
}API Overview
Products
typescript
// Get all products
const products = await monetization.getProducts();
// Get by category
const cosmetics = await monetization.getProducts({
category: 'cosmetics',
});
// Product info
const product = await monetization.getProduct('premium_pack');
console.log(product.name);
console.log(product.price);
console.log(product.description);
console.log(product.items);Purchases
typescript
// Purchase product
const result = await monetization.purchase(productId);
if (result.success) {
console.log('Purchased:', result.items);
} else {
console.log('Failed:', result.error);
}
// Purchase history
const history = await monetization.getPurchaseHistory();Virtual Currency
typescript
// Get balance
const balance = await monetization.getBalance('coins');
// Spend currency
await monetization.spend('coins', 100, 'bought_sword');
// Grant currency
await monetization.grant('coins', 50, 'daily_bonus');Subscriptions
typescript
// Get subscription status
const sub = await monetization.getSubscription();
if (sub.isActive) {
console.log('Premium until:', sub.expiresAt);
}
// Subscribe
await monetization.subscribe('monthly_premium');
// Cancel
await monetization.cancelSubscription();Ads
typescript
// Check if ad available
const available = await monetization.isRewardedAdReady();
// Show rewarded ad
const result = await monetization.showRewardedAd();
if (result.completed) {
grantReward(result.rewardAmount);
}