Lesson 14: Marketing & User Acquisition
Your mobile puzzle game is live in the app stores, but that's just the beginning. Without effective marketing and user acquisition, even the best games can struggle to find players. This lesson teaches you how to build a comprehensive marketing strategy, implement viral mechanics, and acquire users cost-effectively to grow your game's player base.
What You'll Learn
- Develop a comprehensive user acquisition strategy
- Implement social sharing and viral mechanics
- Create effective marketing campaigns
- Use analytics to optimize user acquisition
- Build organic growth through community engagement
- Measure and improve marketing ROI
Prerequisites
- Unity 2022.3 LTS or newer
- Completed Lesson 13: App Store Submission
- Your mobile puzzle game published in app stores
- Basic understanding of marketing concepts
- Access to social media platforms
Why Marketing Matters
Publishing your game is only half the battle. With millions of apps competing for attention, effective marketing determines whether your game succeeds or gets lost in the crowd. A well-executed marketing strategy can turn a great game into a successful business.
Key Statistics:
- Over 90% of mobile games fail to reach 1,000 downloads
- Games with strong marketing see 10x higher user acquisition rates
- Organic growth through viral mechanics can reduce acquisition costs by 80%
- Community-driven games have 3x higher retention rates
The Reality: Great games don't market themselves. You need a strategic approach to user acquisition that combines paid advertising, organic growth, and community building.
Building Your User Acquisition Strategy
Understanding User Acquisition Channels
Paid Channels:
- Social Media Ads: Facebook, Instagram, TikTok, Twitter
- Search Ads: Google Ads, Apple Search Ads
- Influencer Marketing: YouTube, Twitch, TikTok creators
- Cross-Promotion: Partnering with other game developers
Organic Channels:
- App Store Optimization (ASO): Already covered in Lesson 11
- Social Media Presence: Regular content and engagement
- Viral Mechanics: Built-in sharing features
- Community Building: Discord, Reddit, forums
- Content Marketing: Blog posts, tutorials, behind-the-scenes
Hybrid Channels:
- PR and Press: Game journalism, reviews, features
- Events and Conferences: Game jams, industry events
- Partnerships: Collaborations with brands or creators
Setting Acquisition Goals
Define Your KPIs:
- Target Users: How many players do you want in month 1, 3, 6?
- Cost Per Install (CPI): Maximum you'll pay per user
- Lifetime Value (LTV): Expected revenue per user
- Return on Ad Spend (ROAS): Revenue generated per dollar spent
Example Goals:
Month 1: 1,000 downloads, CPI < $0.50
Month 3: 10,000 downloads, CPI < $0.75
Month 6: 50,000 downloads, CPI < $1.00
Target LTV: $2.50 per user
Target ROAS: 3:1 (spend $1, earn $3)
Implementing Social Sharing
Built-in Sharing Features
Social sharing turns players into marketers. When players share their achievements, high scores, or funny moments, they're promoting your game for free.
Unity Social Sharing Implementation:
using UnityEngine;
using System.Collections;
public class SocialSharing : MonoBehaviour
{
public void ShareScore(int score, int level)
{
string shareText = $"I just scored {score} points on level {level} in {Application.productName}! Can you beat my score?";
string shareUrl = "https://yourgame.com/download";
#if UNITY_ANDROID
ShareAndroid(shareText, shareUrl);
#elif UNITY_IOS
ShareIOS(shareText, shareUrl);
#else
ShareGeneric(shareText, shareUrl);
#endif
}
public void ShareAchievement(string achievementName)
{
string shareText = $"I just unlocked '{achievementName}' in {Application.productName}!";
string shareUrl = "https://yourgame.com/download";
ShareScore(0, 0); // Reuse sharing logic
}
#if UNITY_ANDROID
private void ShareAndroid(string text, string url)
{
AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND"));
intentObject.Call<AndroidJavaObject>("setType", "text/plain");
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), text + " " + url);
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject chooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, "Share via");
currentActivity.Call("startActivity", chooser);
}
#endif
#if UNITY_IOS
private void ShareIOS(string text, string url)
{
// iOS sharing uses native sharing sheet
// Requires native plugin or third-party asset
}
#endif
private void ShareGeneric(string text, string url)
{
// Fallback for editor/other platforms
GUIUtility.systemCopyBuffer = text + " " + url;
Debug.Log("Share text copied to clipboard: " + text + " " + url);
}
}
Strategic Sharing Triggers
When to Prompt Sharing:
- After achieving high scores
- When unlocking achievements
- After completing difficult levels
- When players reach milestones
- After watching rewarded ads (optional)
Best Practices:
- Make sharing optional, never forced
- Offer rewards for sharing (extra lives, hints, etc.)
- Make share text customizable
- Include compelling visuals (screenshots, GIFs)
- Track sharing analytics
Viral Mechanics Implementation
Referral Systems
Referral programs incentivize players to invite friends, creating organic growth.
Unity Referral System:
using UnityEngine;
using System.Collections.Generic;
public class ReferralSystem : MonoBehaviour
{
private string playerReferralCode;
private Dictionary<string, int> referralRewards = new Dictionary<string, int>();
void Start()
{
// Generate or load player's referral code
playerReferralCode = PlayerPrefs.GetString("ReferralCode", GenerateReferralCode());
PlayerPrefs.SetString("ReferralCode", playerReferralCode);
}
public void OnFriendInstalled(string friendReferralCode)
{
// Friend installed game using player's code
if (friendReferralCode == playerReferralCode)
{
// Reward the referrer
GiveReferralReward();
// Track analytics
AnalyticsManager.Instance.TrackEvent("referral_success", new Dictionary<string, object>
{
{ "referral_code", playerReferralCode }
});
}
}
public void ShareReferralLink()
{
string referralLink = $"https://yourgame.com/download?ref={playerReferralCode}";
string shareText = $"Play {Application.productName} with me! Use my code: {playerReferralCode}";
SocialSharing.Instance.ShareGeneric(shareText, referralLink);
}
private void GiveReferralReward()
{
// Give rewards (coins, lives, premium currency, etc.)
int coinsReward = 100;
CurrencyManager.Instance.AddCoins(coinsReward);
// Show reward notification
UIManager.Instance.ShowNotification($"You earned {coinsReward} coins for referring a friend!");
}
private string GenerateReferralCode()
{
// Generate unique referral code (e.g., "ABC123")
return System.Guid.NewGuid().ToString().Substring(0, 6).ToUpper();
}
}
Social Challenges
Create challenges that encourage players to compete with friends.
Challenge System:
public class SocialChallenge : MonoBehaviour
{
public void CreateDailyChallenge()
{
// Create daily challenge that players can share
ChallengeData challenge = new ChallengeData
{
challengeName = "Daily Puzzle Challenge",
targetScore = 1000,
timeLimit = 300, // 5 minutes
reward = 50 // coins
};
// Share challenge with friends
ShareChallenge(challenge);
}
public void ShareChallenge(ChallengeData challenge)
{
string shareText = $"Can you beat my {challenge.challengeName}? Score {challenge.targetScore} in {challenge.timeLimit} seconds!";
SocialSharing.Instance.ShareGeneric(shareText, "https://yourgame.com/challenge");
}
}
Marketing Campaign Implementation
Social Media Marketing
Content Strategy:
- Behind-the-Scenes: Development process, design decisions
- Gameplay Clips: Short, engaging gameplay videos
- Tips and Tricks: Help players improve
- Community Highlights: Feature player achievements
- Updates and News: New features, events, patches
Platform-Specific Tips:
Instagram:
- Post daily stories with gameplay clips
- Use relevant hashtags (#mobilegames #puzzlegame #indiegame)
- Engage with comments and DMs
- Collaborate with micro-influencers
TikTok:
- Create short, viral gameplay clips
- Use trending sounds and challenges
- Show funny moments or fails
- Post consistently (1-2 times daily)
Twitter:
- Share development updates
- Engage with game dev community
- Participate in game dev hashtags (#gamedev #indiedev)
- Share GIFs and short videos
Facebook:
- Create a game page
- Post longer-form content
- Run Facebook groups for your community
- Use Facebook Ads for targeted campaigns
Influencer Marketing
Finding Influencers:
- Search for mobile game reviewers
- Look for puzzle game content creators
- Check engagement rates (not just follower count)
- Find micro-influencers (10K-100K followers) for better ROI
Outreach Template:
Hi [Creator Name],
I love your mobile game content! I've developed [Game Name],
a puzzle game that I think your audience would enjoy.
Would you be interested in a review or gameplay video?
I can provide:
- Free game code
- Early access
- Custom assets for your video
- Revenue share (if applicable)
Let me know if you're interested!
Best,
[Your Name]
Paid Advertising
Facebook/Instagram Ads:
- Target puzzle game enthusiasts
- Use video ads showing gameplay
- A/B test different creatives
- Start with small budgets ($10-50/day)
- Optimize for app installs
Google Ads:
- Use search ads for puzzle game keywords
- Create display ads with gameplay screenshots
- Target mobile app users
- Set CPI targets based on your LTV
Apple Search Ads:
- Bid on relevant keywords
- Use your app's name and related terms
- Monitor and adjust bids daily
- Focus on high-intent searches
Analytics and Optimization
Tracking User Acquisition
Key Metrics to Track:
- Install Sources: Where users come from
- Cost Per Install (CPI): Cost to acquire each user
- Conversion Rate: Percentage who install after seeing ad
- Retention Rate: Users who return after install
- Lifetime Value (LTV): Total revenue per user
Unity Analytics Integration:
using UnityEngine;
using UnityEngine.Analytics;
public class AcquisitionAnalytics : MonoBehaviour
{
public void TrackInstallSource(string source)
{
Analytics.CustomEvent("user_acquisition", new Dictionary<string, object>
{
{ "source", source }, // "facebook_ad", "organic", "referral", etc.
{ "timestamp", System.DateTime.Now.ToString() }
});
}
public void TrackCampaignPerformance(string campaignName, float cost, int installs)
{
float cpi = cost / installs;
Analytics.CustomEvent("campaign_performance", new Dictionary<string, object>
{
{ "campaign", campaignName },
{ "cost", cost },
{ "installs", installs },
{ "cpi", cpi }
});
}
}
Optimizing Campaigns
A/B Testing:
- Test different ad creatives
- Try different messaging
- Experiment with targeting
- Measure which performs best
Optimization Checklist:
- [ ] Track all acquisition sources
- [ ] Calculate CPI for each channel
- [ ] Compare LTV to CPI (should be > 3:1)
- [ ] Identify best-performing creatives
- [ ] Double down on successful campaigns
- [ ] Pause underperforming ads
- [ ] Test new channels regularly
Community Building
Building Your Community
Platforms to Consider:
- Discord: Real-time community chat
- Reddit: Subreddit for your game
- Facebook Groups: Community discussions
- Twitter: Regular updates and engagement
- YouTube: Tutorials and gameplay videos
Community Engagement Strategies:
- Respond to all comments and messages
- Share player achievements and highlights
- Run community events and contests
- Ask for feedback and implement suggestions
- Create exclusive content for community members
Discord Server Setup
Essential Channels:
-
announcements: Game updates and news
-
general: Casual chat
-
feedback: Player suggestions
-
showcase: Player achievements
-
help: Support and troubleshooting
Engagement Ideas:
- Weekly challenges with prizes
- Developer Q&A sessions
- Beta testing opportunities
- Exclusive content for members
- Community voting on features
Mini Challenge: Create Your Marketing Plan
Task: Develop a 30-day marketing plan for your mobile puzzle game.
Steps:
-
Week 1: Foundation
- Set up social media accounts
- Create content calendar
- Implement sharing features
- Set up analytics tracking
-
Week 2: Content Creation
- Create 10 gameplay clips
- Write 5 social media posts
- Design 3 ad creatives
- Prepare influencer outreach list
-
Week 3: Launch Campaign
- Launch social media presence
- Start paid advertising (small budget)
- Reach out to 10 influencers
- Begin community building
-
Week 4: Optimization
- Analyze campaign performance
- Optimize best-performing ads
- Engage with community daily
- Plan next month's strategy
Deliverables:
- Marketing plan document
- Content calendar
- List of target influencers
- Ad creative mockups
- Analytics dashboard setup
Pro Tips
Tip 1: Start Small, Scale Smart
- Begin with organic growth (free)
- Test paid ads with small budgets
- Double down on what works
- Don't overspend early
Tip 2: Focus on Retention
- Acquiring users is expensive
- Retaining users is cheaper
- Focus on making great content
- Engage with your community
Tip 3: Track Everything
- You can't improve what you don't measure
- Use analytics for all channels
- Regular reporting and analysis
- Make data-driven decisions
Tip 4: Be Authentic
- Players can tell when marketing is fake
- Show genuine passion for your game
- Engage authentically with community
- Build real relationships
Tip 5: Iterate and Improve
- Marketing is an ongoing process
- Test new strategies regularly
- Learn from failures
- Celebrate successes
Common Mistakes to Avoid
Mistake 1: Ignoring Organic Growth
- Don't rely only on paid ads
- Build community and content
- Leverage viral mechanics
- Word-of-mouth is powerful
Mistake 2: Poor Ad Targeting
- Don't target too broadly
- Use specific demographics
- Test different audiences
- Refine based on data
Mistake 3: Neglecting Community
- Don't ignore player feedback
- Engage with your community
- Build relationships
- Community is your best marketing
Mistake 4: Inconsistent Messaging
- Maintain brand consistency
- Use consistent visuals
- Keep messaging clear
- Build recognizable brand
Mistake 5: Giving Up Too Early
- Marketing takes time
- Results don't come overnight
- Stay consistent
- Keep improving
Troubleshooting
Problem: Low Install Rates
- Solution: Improve ad creatives, test different messaging, refine targeting
Problem: High CPI
- Solution: Focus on organic growth, improve game quality, optimize ad campaigns
Problem: Low Retention
- Solution: Improve onboarding, add engaging content, fix bugs quickly
Problem: No Viral Growth
- Solution: Add sharing incentives, improve sharing UX, create shareable moments
Problem: Community Not Growing
- Solution: Post consistently, engage actively, offer value, be authentic
Next Steps
You've learned how to build a comprehensive marketing strategy and acquire users effectively. In the next lesson, Post-Launch Updates & Content, you'll learn how to keep players engaged with regular updates, new content, and live operations.
Practice Exercise:
- Implement social sharing in your game
- Create a 30-day marketing plan
- Set up analytics tracking
- Launch your first marketing campaign
- Build your community on one platform
Related Resources:
Marketing is an ongoing journey. Start with one channel, master it, then expand. Your community and players are your best marketers - treat them well and they'll help you grow!