The Hidden Sales Channel in Your Existing Player Base
Most mobile game developers invest heavily in user acquisition -- Facebook Ads, Apple Search Ads, influencer campaigns -- while ignoring the most cost-effective sales channel they already own: their own player base. CCFish has built a cross-promotion network using Cloudflare Workers that converts existing players into distributors of new game content, driving a 31% lift in secondary game installs without any paid UA spend.
The core insight is straightforward: a player who enjoys CCFish is statistically 4x more likely to install another game from the same developer than a cold user from a Facebook ad. The challenge is building a cross-promotion system that feels native, respects player experience, and does not degrade retention on the primary game.
The Architecture of CCFish Cross-Promotion Engine
CCFish cross-promotion system runs entirely on Cloudflare Workers, with D1 storing campaign logic and player segment data:
```
Player catches a rare fish -> Game client sends event to Worker
Worker checks D1 for cross-promotion eligibility (player 7+ days)
Worker queries campaign queue -> Selects best-matching game offer
Worker returns offer data -> Client shows native-style interstitial card
If install -> Worker updates D1 analytics (impression-to-install funnel)
```
This server-side approach eliminates SDK integration for each promoted game. Adding a new game to the network is a D1 insert, not an app store resubmission. The Worker also handles rate limiting -- no player sees more than 3 cross-promotion offers per session, preventing fatigue.
Targeting Logic: Why Not All Players See the Same Offer
A naive cross-promotion system shows the same offer to everyone. CCFish segments players into four tiers:
| Segment | Criteria | Offer Type | Expected Conversion |
|---------|----------|------------|-------------------|
| New Player | <7 days playtime | No cross-promotion (retention risk) | 0% (sheltered) |
| Casual Active | 7-30 days, 3+ sessions/week | Similar mechanics game | 4-6% |
| Engaged Spender | 30+ days, has purchased | Premium game offer + exclusive skin | 12-15% |
| Churn Risk | 30+ days, declining session count | Re-engagement offer (new content teaser) | 8-10% |
The segmentation logic runs on the Worker at request time, using a lightweight D1 query that completes in under 15ms. No pre-computed cohorts, no batch processing, no stale segment assignments. Each segment has its own creative rotation stored in D1 campaign_config.
A/B Testing the Cross-Promotion Placement
CCFish tests three cross-promotion placements using its Cloudflare Workers feature flag system:
Placement A: Post-Fish Interstitial (control). After a player catches a rare fish, a native-style card appears showing another game. Conversion rate: 3.2%. The downside: it interrupts the moment of achievement, which can reduce the dopamine hit.
Placement B: Daily Reward Bonus Card. When collecting daily rewards, an optional bonus card offers extra currency if the player checks out another game. Conversion rate: 7.8%. This placement works because the player is already in a reward-receiving mindset, making them more receptive to an offer framed as an extension of the reward system.
Placement C: Season Pass Unlock Reward. Completing a season pass milestone unlocks a cross-promotion offer as a bonus reward. Conversion rate: 11.4%. The sunk cost of the season pass investment makes players more receptive. They have already committed to the game ecosystem, so a related offer feels like a natural extension.
The Worker tracks every impression and install event, feeding a D1-based analytics pipeline that updates conversion rates in near-real time. Campaign managers can shift budget between placements within minutes, not days -- responding to performance data faster than any SDK-based system.
Revenue Impact: The Cross-Promotion Multiplier
When CCFish cross-promotes to its own player base, the economics are transformative:
- **Cost per install:** $0.08 (vs. $2.50-4.00 for Facebook/Google UA)
- **Day 7 retention of cross-promoted users:** 38% (vs. 22% for paid UA)
- **Secondary game IAP conversion:** 4.2% within 14 days of install
- **Primary game retention impact:** +2% (no cannibalization detected)
The cross-promotion network creates a self-sustaining acquisition loop: CCFish existing players become the distribution channel for new game launches, reducing reliance on paid UA and creating a moat that competitors without an established player base cannot replicate.
Technical Implementation Details
The Worker endpoint is deployed globally on Cloudflare edge locations, ensuring sub-50ms response time for players worldwide. D1 stores campaign configurations with multi-region replication, and KV provides atomic deduplication locks to prevent double-showing the same offer. The system processes approximately 500,000 cross-promotion requests per day across three games, with a 99.95% uptime SLA.
The entire stack costs approximately $35/month in Cloudflare usage -- Workers execution time, D1 read operations, and KV storage. Compared to the $12,000/month saved on UA costs, this represents a 340x ROI on infrastructure spend.
Key Takeaways
- Server-side cross-promotion on Cloudflare Workers eliminates SDK dependencies and enables sub-minute campaign adjustments
- Player segmentation is critical: showing cross-promotion to new players hurts retention
- Placement optimization matters more than creative -- the right moment converts 3x better than the best creative
- Cross-promotion economics ($0.08 CPA) outperform paid UA ($2.50-4.00) by 30-50x on cost efficiency
- D1-based analytics enable real-time campaign optimization without batch processing infrastructure
- Total infrastructure cost: $35/month vs. $12,000/month UA savings = 340x ROI