
If you are reading this post, chances are you have developed an Android app/game and want to show ads to make money. First of all, congratulations on finishing your app. I’ll show you how to monetize your app with AppLovin MAX mediation.
What is an Ad Mediation Platform?
There are many ad networks for Android. If you use a single ad network, you won’t be making much money. If you add all of them to your app, you cannot manage them.
Is there any solution for this?
Yes. Ad Mediation.
Ad mediation is a platform that allows you to work with multiple ad networks by integrating one SDK. It helps you increase your eCPM and maximize your overall earnings.
MAX is one such ad mediation platform. It allows you to connect multiple ad networks to your app and show their ads. It supports banner, native, interstitial, MRECs, and rewarded video ads.
We are going to implement MAX ads in 7 simple steps.
- Submit Apps for Approval
- Add the MAX SDK
- Add a Test Device
- Create an Ad unit
- Add Meditation Networks (like Meta, AdColony, Vungle, etc…)
- Test the ads
- Receive payments
1. Submit Apps for Approval:
The first step is to submit your apps for approval. Go to AppLovin sign up page and fill up your details. You will get an email like this:

You need to send a list of your applications with App Store and/or Play Store URLs to [email protected]. You should send the email from the email address listed on your Google Play Store page. Here is information about the approval process.
You can use the following format to send the app links.
Hello, AppLovin Team, My name is YOUR_NAME_HERE. Here are the apps I would like to monetize with MAX. APP NAME APP_PLAY_STORE_LINK
Don’t worry. As long as your apps are not malicious, they will approve your apps. If you have multiple apps, you don’t need to send all of them. You can send one app and add the remaining apps later.
After verification, you will get an email saying your account has been approved. Now, you can add the SDKs in your Android app.
2. Add the AppLovin MAX SDK:
In general, when you sign up for an ad network, you will submit your app and implement their SDK in your project. But, AppLovin follows a different process. First, you need to implement AppLovin SDK in your app, then your app will be shown in your AppLovin dashboard. Let us do that.
Login to your AppLovin account and open the Android docs. You can always access the documentation by clicking on the “Mediation docs” icon on the top right corner of your account dashboard.

You have to add your unique SDK key in the manifest file. You will find it in the docs. It looks like this:

Copy that and paste it into your AndroidManifest.xml file, inside the <application> element. We also need the internet permission. So, add it as well.
<uses-permission android:name="android.permission.INTERNET" />
Next, add the following dependencies in the app-level build.gradle file:
// AppLovin SDK
implementation 'com.applovin:applovin-sdk:11.4.4'
// Google ids for ads
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation 'com.google.android.gms:play-services-base:18.1.0'
Next, initialize the SDK by calling the initializeSdk() method. Here is the code:
kotlin:
private fun initializeAdNetwork() {
AppLovinSdk.getInstance(getApplicationContext()).mediationProvider = "max"
AppLovinSdk.getInstance(getApplicationContext()).initializeSdk { configuration: AppLovinSdkConfiguration ->
// AppLovin SDK is initialized, start loading ads
}
}
Java:
private void initializeAdNetwork() {
// Make sure to set the mediation provider value to "max" to ensure proper functionality
AppLovinSdk.getInstance( getApplicationContext() ).setMediationProvider( "max" );
AppLovinSdk.initializeSdk( getApplicationContext(), new AppLovinSdk.SdkInitializationListener() {
@Override
public void onSdkInitialized(final AppLovinSdkConfiguration configuration)
{
// AppLovin SDK is initialized, start loading ads
}
} );
}
Call the above method as soon as possible after your app starts, for example in the onCreate() method of your launch Activity.
Run the app. Next, open your AppLovin dashboard and go to App Discovery > Applications section.

You will see your app’s package here. If you don’t see that, you may have to wait for 30 to 60 minutes. Once your app is listed, click on it and change the settings like name, video ads filter, etc…
3. Add Test Device:
If you are using your mobile phone for debugging, I highly suggest you add it to the test devices. Open your AppLovin dashboard and go to MAX > Test Mode. Next, click on the “Add Test Device” button.

Type a name in the Name field. For GAID, open the Settings app on your mobile. Go to Google > Ads. You will find your advertising ID. Type that here.

In the “Test Network” drop-down menu, select the network you want to receive ads from. If you haven’t added any mediation network, select AppLovin. Next, click on the “Save” button.
Now, let us create ad units.
4. Create an Ad unit:
AppLovin supports multiple ad units. Look at the following guides.
Native Ads (Templates) Integration
Native Ads (Manual) Integration
Note: If the ads are not being shown, open the Logcat. It displays the information about your app.

If you don’t see the ad units you have created, wait for 1 to 2 hours and run the app.
5. Add AppLovin MAX Mediation Networks:
Go to the mediation adapters page and select all the networks that you want to add.

You get the dependencies based on the networks you selected. Add them to the app level build.gradle file. Also, include the corresponding repositories.
Some networks have specific requirements. For example, AdColony, Meta Audience Network, and Smaato need a network configuration file to function correctly. Some of them need privacy options. You can find the details on the same page.
The next step is to connect mediation networks’ ad units with the AppLovin ad units. Here is a Meta Audience Network guide. For other networks, follow the guide.

6. Test the Ads:
MAX provides the “Test Mode” feature to verify that you have successfully integrated specific ad networks from those that MAX mediates.
Go to MAX > Test Mode on the left panel and click on your test device. Select a network from the “Test Network” drop-down list. Wait for 10 to 30 minutes. If you run the app, you will see the test ads from the network you selected.
MAX also provides a mediation debugger to test your overall implementation.
Note: If you are using pro guard, add the following rules in the proguard-rules.pro file.
-keep class com.google.android.gms.ads.identifier.** { *; }
For mediation networks, you don’t need to add any rules. AppLovin MAX SDK and adapters come bundled with the required ProGuard rules.
7. Receive Payments from AppLovin:
To receive payments, go to Account > Payment > Info on the left panel. Here, you can add your payment details.
Bonus: AppLovin MAX app-ads.txt
It is highly recommended to add app-ads.txt to your website. It helps to increase your ad revenue and prevent ad fraud. You can read more about it here and here.
If you don’t have a website, create a free blog with the Blogger platform. It provides an option to add app-ads txt file.
How to add app ads txt file?
First, log in to your play console account and open the Developer Page. Add your website here.

Next, open your app, and go to Store Settings. Enter your website here too.

Now, login to your AppLovin account and go to Account > Basic Info section. In the domains section, enter your website.

Next, create app-ads.txt file on your root domain. If you go to https://www.your-website.com/app-ads.tx, you should see the file.
In your AppLovin account, go to Account > App-ads.txt Info section and scroll down. Copy the text and paste it into your add-ads.txt file.

If you are using blogger, go to Settings > Monetization tab. paste the text here.

This is about how to integrate MAX ads in your Android app. Hopefully, you are seeing the ads without any errors. If you have any doubts, comment below.
where I paste this code?
private fun initializeAdNetwork() {
AppLovinSdk.getInstance(this).mediationProvider = “max”
AppLovinSdk.getInstance(this).initializeSdk { configuration: AppLovinSdkConfiguration ->
// AppLovin SDK is initialized, start loading ads
}
}
In the launcher activity (the first activity that gets opened). Call the initializeAdNetwork() inside the onCreate() method. All the ad networks will be initialized. Call it only once.
please add it to this activity.
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.WindowManager;
public class SplashScreen extends Activity {
// Splash screen timer
private static int SPLASH_TIME_OUT = 4000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with a timer. This will be useful when you
* want to show case your app logo / company
*/
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app main activity
Intent i = new Intent(SplashScreen.this, MainActivity.class);
startActivity(i);
// close this activity
finish();
}
}, SPLASH_TIME_OUT);
}
}
Try this:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.WindowManager;
import com.applovin.sdk.AppLovinSdk;
import com.applovin.sdk.AppLovinSdkConfiguration;
public class SplashScreen extends Activity {
// Splash screen timer
private static int SPLASH_TIME_OUT = 4000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initializeAdNetwork();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with a timer. This will be useful when you
* want to show case your app logo / company
*/
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app main activity
Intent i = new Intent(SplashScreen.this, MainActivity.class);
startActivity(i);
// close this activity
finish();
}
}, SPLASH_TIME_OUT);
}
private void initializeAdNetwork() {
// Make sure to set the mediation provider value to “max” to ensure proper functionality
AppLovinSdk.getInstance( getApplicationContext() ).setMediationProvider( “max” );
AppLovinSdk.initializeSdk( getApplicationContext(), new AppLovinSdk.SdkInitializationListener() {
@Override
public void onSdkInitialized(final AppLovinSdkConfiguration configuration)
{
// AppLovin SDK is initialized, start loading ads
}
} );
}
}