2.6.5 Android SDK Integration Guide

Integrate SDK 

You can use our demo app as a reference project.

Starting from SDK 2.6.0 we don’t separate versions to MaxDex and NoDex, instead of them we provide a single version that can be easily integrated via Gradle

Minimum requirements:

Android API level 14 (Android OS 4.0), but you can integrate the Appodeal SDK in apps with lower minSdkVersion. On the devices that don't support Android 4.0+, our SDK will just be disabled

Mediation A/B testing

If you want to compare Appodeal's performance to another mediation, please follow this Mediation A/B testing guide

1. Import SDK

Add the Appodeal maven repository

Apps can import the Appodeal SDK with a Gradle dependency that points to the Appodeal's Maven repository. In order to use that repository, you need to reference it in the app's project-level build.gradle file. Open yours and look for an allprojects section:

Example project-level build.gradle (excerpt)

allprojects {
    repositories {
        // ... other project repositories
        maven {
            url "https://artifactory.appodeal.com/appodeal"

Add maven dependencies

Next, open the app-level build.gradle file for your app, and look for the dependencies section:

Example app-level build.gradle (excerpt)

dependencies {
    // ... other project dependencies

    implementation 'com.appodeal.ads:sdk:2.6.5.+'

If you're using AndroidX in your app, make sure you have enabled Jetifier

Some networks are using Java 8 features (e.g - Smaato), so please make sure your Android Gradle plugin version greater or equal 3.2.0 and add next compile options to your app-level build.gradle:

Example app-level build.gradle (excerpt)

android {
    // ... other options
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8

Once that's done, save the file and perform the Gradle sync.

Configure AndroidManifest.xml

  • Add the required permissions to your AndroidManifest.xml file under the manifest tag:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

  • Add the optional permissions to your AndroidManifest.xml file under the manifest tag to improve ad targeting:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!--optional-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!--optional-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--optional-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!--optional-->
<uses-permission android:name="android.permission.VIBRATE" /><!--optional-->

2. Network security configuration

Android 9.0 (API 28) blocks cleartext (non-HTTPS) traffic by default, which can prevent ads from serving correctly. Read more on this here.

1. Add the Network Security Configuration file to your AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
2. In your network_security_config.xml file, add base-config that sets cleartextTrafficPermitted to true:
<?xml version="1.0" encoding="utf-8"?>
    <base-config cleartextTrafficPermitted="true">
            <certificates src="system" />
            <certificates src="user" />
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true"></domain>

3. Add meta-data (if you use AdMob adapter)

Make sure to add Privacy Policy to your app on Google Play that links to Appodeal's Privacy Policy to avoid violating Google Play Developer Distribution Agreement.

All necessary dependencies are already included in the AdMob adapter.

If you use Play Services version 17 and higher, add <meta-data> tag to the AndroidManifest file. 

        <!-- Add your AdMob App ID -->

4. Initialize SDK

To initialize SDK add the line below to onCreate method of your main activity:

public class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {

        Appodeal.initialize(this, "YOUR_APPODEAL_APP_KEY", adTypes, consentValue);

consentValue is boolean, with 'false' meaning that the user declines to give the consent. Read our guide on collecting consent here.

Make sure to replace "YOUR_APPODEAL_APP_KEY" with the actual app key.

Use the type codes below to set the preferred ad format:

  • Appodeal.INTERSTITIAL for interstitial;
  • Appodeal.REWARDED_VIDEO for rewarded videos;
  • Appodeal.NON_SKIPPABLE_VIDEO for non-skippable videos;
  • Appodeal.NATIVE for native ads;
  • Appodeal.BANNER for banners;
  • Appodeal.MREC for 300*250 banners.

Please note:

Ad types can be combined using "|" operator. For example, Appodeal.INTERSTITIAL | Appodeal.REWARDED_VIDEO.

Appodeal.NON_SKIPPABLE_VIDEO - the alias of Appodeal.REWARDED_VIDEO. Both of them shouldn't be used together.

If you are not sure, which ad formats would suit you the best, check out our FAQ.

General Data Protection Regulation (GDPR) compliance

Publishers need to update their apps to collect the user consent prior to initializing our SDK (Read our guide on collecting consent here).

Publishers need to pass the boolean consent flag(with 'false' meaning that the user declined to give the consent) to the Appodeal.initialize() method of our SDK.

Appodeal.initialize(this, "YOUR_APPODEAL_APP_KEY", adTypes, consentValue);

It’s done!

You are ready to use Appodeal and implement ad types. If you have any questions, check out our FAQ or contact the support team.

Third-Party SDKs


By default we include all required third-party networks without any additional dependencies. If you would like to add or remove any of them, you can use our Mediation Wizard tool: