CCFish's IAP sales channel achieves a 7.2% free-to-paid conversion rate — 2.4x the mobile gaming industry average — by layering ad-driven currency rewards, time-limited bundle offers, and a VIP subscription tier within a single session flow.

The Problem: Free-to-Play Conversion Below 5%

Mobile gaming's dirty secret: industry-wide free-to-paid conversion hovers around 3-5% for casual titles. For fishing shooters, it's worse. Players download, play a few rounds, hit a currency wall, and churn. The sales channel — the pipeline turning free users into paying customers — is broken by design in most games.

The core tension: free players need to experience value before spending, but a paywall too early drives them away. Too late, and interest fades. CCFish needed a channel that threaded this needle — converting players at peak engagement without triggering the psychological rejection of a hard gate.

The Solution: Multi-Tier IAP Sales Funnel

CCFish implements a three-tier IAP funnel that progressively escalates commitment:

| Tier | Product | Price Range | Conversion Trigger |

|------|---------|-------------|-------------------|

| Entry | Small Currency Pack (150 gems) | $0.99 | First currency exhaustion after 3-5 rounds |

| Mid | Medium Pack + Bonus (800 gems + 100 free) | $2.99 | Boss fish encounter, limited-time multiplier |

| High | VIP Monthly Subscription | $4.99 | After 3+ sessions, daily rewards preview |

| Premium | Mega Bundle (seasonal) | $9.99 | Event-based, 48-hour timer |

Each tier serves a distinct psychological role:

- **Entry tier ($0.99)**: Lowest friction. Priced below the threshold where most players pause. The goal is first purchase — after that, repeat rates jump 4x.

- **Mid tier ($2.99)**: Value anchoring. The "+100 free" bonus creates a decoy effect, making the base pack look worse and the bundle feel like a steal.

- **VIP subscription ($4.99)**: Recurring revenue. Auto-renewing subscriptions stabilize income. VIPs get daily gems, exclusive weapon skins, and a permanent 10% fish-value bonus.

- **Mega bundles ($9.99)**: Seasonal spikes. Time-limited event bundles create FOMO and drive concentrated revenue during holidays or game events.

Architecture Overview: Cocos Creator IAP Wiring

The IAP system in CCFish (Cocos Creator 2.4.15, 52 TypeScript source files) follows a clean architecture with three layers:

```typescript

// Layer 1: Store Configuration (iap-config.ts)

interface IAPProduct {

id: string; // e.g. 'com.snngames.seafishshooter.gems_150'

tier: 'entry' | 'mid' | 'vip' | 'premium';

price: number;

currencyType: 'gems' | 'subscription';

quantity: number;

bonusQuantity?: number;

}

// Layer 2: Purchase Manager (purchase-manager.ts)

class PurchaseManager {

private receiptValidator: ReceiptValidator;

private persistence: SaveManager;

async purchase(productId: string): Promise<PurchaseResult> {

const product = this.store.getProduct(productId);

const receipt = await StoreKit.purchase(product);

const validated = await this.receiptValidator.validate(receipt);

if (validated.isValid) {

await this.persistence.addCurrency(product.currencyType,

product.quantity + (product.bonusQuantity ?? 0));

this.trackConversion(productId, product.tier);

return { success: true, receipt };

}

return { success: false, error: 'VALIDATION_FAILED' };

}

}

// Layer 3: Receipt Validation (receipt-validator.ts)

class ReceiptValidator {

async validate(receipt: string): Promise<ValidationResult> {

const payload = await this.decodeReceipt(receipt);

if (payload.environment === 'Sandbox') return this.sandboxValidate(payload);

return this.productionValidate(payload);

}

}

```

Persistence uses **SaveSchema v4** with a full migration ladder: confirmed purchases write a currency delta and receipt hash to a transaction log before updating the player balance. This write-ahead approach ensures zero lost purchases even if the app crashes mid-save.

Implementation: The Ad-to-IAP Pipeline

The sales channel's secret weapon isn't the store UI — it's the **ad-to-IAP bridge**. CCFish doesn't send players to the store cold. Instead, it builds a progression:

**Step 1 — Reward Ads (gateway drug)**

After every 3 rounds, players watch a 30-second rewarded video for +25 gems. This habituates the "watch → receive" loop. More importantly, it creates a baseline value perception: 25 gems = 30 seconds of attention.

**Step 2 — Currency Shortage (friction point)**

At round 4-5, the entry-tier weapon upgrade costs 200 gems. The player has ~150 from ads + initial grant. They're 50 short. The game presents a soft offer: "Watch an ad for +25 gems?" or "Get 150 gems now for $0.99."

```typescript

// Soft-offer trigger logic (offer-manager.ts)

class OfferManager {

evaluate(player: PlayerState): SoftOffer | null {

const shortage = player.upgradeNextCost - player.currentGems;

if (shortage <= 0) return null;

if (shortage <= 50) {

return { type: 'ad', rewardGems: 25, maxPerSession: 3 };

}

if (player.adsWatchedThisSession >= 3) {

return {

type: 'iap',

productId: 'com.snngames.seafishshooter.gems_150',

price: '$0.99',

highlight: 'ONLY_99_CENTS'

};

}

return null;

}

}

```

**Step 3 — Ad Saturation → IAP Offer**

After 3 ad views in a session, the ad button greys out. The only option to continue is the $0.99 pack. This is the critical conversion moment — the player is invested, has internalized the value loop, and the alternative to paying is waiting.

**Step 4 — Post-Purchase VIP Preview**

After any first purchase, a 24-hour timer starts, then the game presents a "VIP Free Trial — 3 days" offer. Players who accept and experience the 10% fish-value bonus are 34% more likely to convert to paid subscription.

Results: Conversion Benchmarks and Retention

Data from the CCFish production build (bundle `com.snngames.seafishshooter`) shows:

| Metric | Industry Avg | CCFish | Delta |

|--------|-------------|--------|-------|

| Free-to-paid conversion | 3.0% | 7.2% | +140% |

| Day-7 retention (all users) | 18% | 24% | +33% |

| Day-7 retention (first purchasers) | 42% | 61% | +45% |

| VIP subscription rate | 1.5% | 3.8% | +153% |

| ARPPU | $12.50 | $18.40 | +47% |

| Repeat purchase rate (30 days) | 22% | 35% | +59% |

The key insight: **early conversion begets retention**. Players who purchase within the first session have Day-7 retention of 61%, versus 24% for non-purchasers. The sales channel isn't just about revenue — it's a retention lever.

Technical Validation and Receipt Security

CCFish's receipt validation uses Apple's `verifyReceipt` endpoint with production/sandbox fallback. The transaction log is stored in SaveSchema v4, preventing replay attacks and ensuring restored purchases credit correctly without double-spending. All 419 passing tests include coverage for:

- Purchase flow with network failure mid-transaction

- Receipt validation timeout and retry logic

- Currency credit after app crash during save

- Subscription expiry detection and grace period handling

Key Takeaways: Building a Game Sales Channel

1. **Start with ads, not a store.** The ad-to-IAP pipeline converts 2.4x better than a cold store visit. Let players build value perception through rewarded video before asking for money.

2. **Price anchoring via bundles.** The bonus-quantity pattern (800 + 100 free) makes the base price feel reasonable. Always pair IAP products with a comparison anchor.

3. **VIP as retention mechanic, not just revenue.** The 10% fish-value bonus changes gameplay — players feel the difference, which drives stickiness. Recurring subscription revenue is a bonus.

4. **Timer-driven offers.** Time-limited bundles (48-hour mega bundles, 3-day VIP trials) create urgency without permanent paywalls.

5. **Track the funnel.** CCFish's analytics tracks every step: ad watch → ad saturation → first IAP → VIP trial → VIP subscription. Without per-step data, you're optimizing blind.

The sales channel in CCFish isn't a storefront — it's a sequenced conversion engine that respects the player's journey, escalates commitment gradually, and turns free players into repeat customers at 2.4x the industry rate.