Mobile Advertising Integration
Learn how to incorporate various ad formats (banner, interstitial, rewarded video) and manage ad networks for revenue generation.
Mobile Advertising Integration is a free Indie Hacker Mobile Apps lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Indie Hacker Mobile Apps learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Monetize Your App with Ads
Welcome to integrating mobile advertising! For many indie hackers, ads are a key way to generate revenue from their apps, especially for free-to-download titles.
This lesson will introduce you to different ad formats and how they can be integrated into your mobile application to create a sustainable income stream.
Understanding Ad Networks
To show ads, you'll work with an Ad Network. These platforms connect app publishers (you!) with advertisers. Popular choices include Google AdMob, Facebook Audience Network, and Unity Ads.
- SDK: You integrate the network's Software Development Kit into your app.
- eCPM: Effective Cost Per Mille (thousand impressions), a key metric for how much you earn.
- Fill Rate: How often the ad network successfully provides an ad for your request.
Banner Ads: Always Visible
Banner ads are small rectangular ads that usually appear at the top or bottom of your app screen. They are the least intrusive ad format, providing a steady but generally lower revenue stream.
- Pros: Constant presence, minimal disruption.
- Cons: Lower eCPM, users can develop 'banner blindness'.
Integrating Banner Ads
Integrating a banner ad typically involves initializing the ad network's SDK, creating an ad view, and adding it to your app's layout. The SDK handles loading and displaying the ad.
Here's a conceptual look:
// 1. Initialize Ad SDK
AdSDK.initialize(context, "YOUR_APP_ID");
// 2. Create a Banner Ad View
BannerAdView bannerView = new BannerAdView(context);
bannerView.setAdUnitId("YOUR_BANNER_AD_UNIT_ID");
bannerView.setAdSize(AdSize.BANNER);
// 3. Add to your app's layout (e.g., at the bottom)
LinearLayout layout = findViewById(R.id.ad_container);
layout.addView(bannerView);
// 4. Load the ad
AdRequest adRequest = new AdRequest.Builder().build();
bannerView.loadAd(adRequest);Interstitial Ads: Full Screen Breaks
Interstitial ads are full-screen ads that cover the entire interface of your app. They appear at natural transition points, like after completing a level in a game or between content sections.
- Pros: Higher eCPM than banners, high visibility.
- Cons: Can be disruptive if poorly placed, requires careful timing.
Integrating Interstitial Ads
Interstitial ads are loaded in the background and then shown at a specific moment. You need to handle callbacks for when the ad is loaded, shown, and dismissed by the user.
Conceptual integration:
// 1. Initialize Ad SDK (if not already)
// 2. Load the Interstitial Ad
InterstitialAd interstitialAd = new InterstitialAd(context, "YOUR_INTERSTITIAL_AD_UNIT_ID");
interstitialAd.loadAd(new AdRequest.Builder().build());
// 3. Define ad event callbacks (e.g., ad loaded, ad dismissed)
interstitialAd.setAdListener(new InterstitialAdListener() {
@Override
public void onAdLoaded() { /* Ad is ready to show */ }
@Override
public void onAdDismissed() { /* User closed ad, resume app */ }
// ... other methods
});
// 4. Show the ad at a natural break point
if (interstitialAd.isLoaded()) {
interstitialAd.show();
} else {
// Ad not ready, continue app flow
}Rewarded Video Ads: Opt-In Value
Rewarded video ads are full-screen video ads that users choose to watch in exchange for an in-app reward (e.g., extra lives, virtual currency, premium features). These are highly effective for engagement and revenue.
- Pros: Highest eCPM, user-friendly (opt-in), drives engagement.
- Cons: Requires careful reward balancing, users expect value.
Integrating Rewarded Video Ads
Rewarded videos require presenting an option to the user, then showing the ad and delivering the reward upon completion. Callbacks are crucial for handling the reward logic.
Conceptual integration:
// 1. Initialize Ad SDK (if not already)
// 2. Load the Rewarded Ad
RewardedAd rewardedAd = new RewardedAd(context, "YOUR_REWARDED_AD_UNIT_ID");
rewardedAd.loadAd(new AdRequest.Builder().build());
// 3. Present option to user (e.g., "Watch ad for 100 coins")
// On user confirmation:
// 4. Define ad event callbacks (e.g., ad completed, user rewarded)
rewardedAd.setAdListener(new RewardedAdListener() {
@Override
public void onRewarded(RewardItem rewardItem) {
// User earned reward, grant 100 coins
grantRewardToUser(rewardItem.getAmount());
}
@Override
public void onAdClosed() { /* User closed ad */ }
// ... other methods
});
// 5. Show the ad if loaded
if (rewardedAd.isLoaded()) {
rewardedAd.show();
} else {
// Ad not ready, inform user
}Ad Placement Best Practices
Effective ad integration balances revenue with user experience. Poorly placed ads can annoy users and lead to uninstalls. Here are some tips:
- Natural Breaks: Show interstitial ads during logical pauses.
- Opt-In for Rewarded: Always let users choose to watch rewarded videos.
- Frequency Capping: Don't bombard users with too many ads in a short period.
- Test & Iterate: Monitor user feedback and analytics to optimize placement.
Ad Format Quiz
Which of the following statements about mobile ad formats are TRUE?
Recap & Next Steps
You've learned about the three main types of mobile ad formats: banner, interstitial, and rewarded video. We explored how ad networks work and conceptual steps for integrating each ad type.
Remember to prioritize user experience through smart placement and frequency capping. In your next steps, choose an ad network, integrate its SDK, and experiment with different ad placements to find what works best for your app!
Frequently asked questions
Is the “Mobile Advertising Integration” lesson free?
Yes — the full text of “Mobile Advertising Integration” is free to read here on the web, and the Indie Hacker Mobile Apps course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Indie Hacker Mobile Apps course, upgrade to CoddyKit PRO.
What will I learn in “Mobile Advertising Integration”?
Learn how to incorporate various ad formats (banner, interstitial, rewarded video) and manage ad networks for revenue generation. You practise Indie Hacker Mobile Apps with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Indie Hacker Mobile Apps?
No prior experience is required. Indie Hacker Mobile Apps on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Mobile Advertising Integration” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Indie Hacker Mobile Apps lesson?
Yes. Every Indie Hacker Mobile Apps lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- In-App Purchases & Subscriptions
- Mobile Advertising Integration
- Pricing Models & Experiments
- Reducing Churn and Maximizing Lifetime Value