The MVP Android Developer Hub

Welcome to the MVP Android developer hub. You'll find comprehensive guides and documentation to help you start working with MVP Android as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Android SDK Integration

Current SDK Version: 3.0.0

Introduction

This guide is intended for developers who are integrating the with an Android app. After you have integrated the SDK, you must choose the relevant ad format and follow the steps for implementing that format.

Prerequisites

  • Android 4.1 (API Level 16)+
  • Google Play Services 11.4.0+

Information

All Fyber SDKs and supported mediated networks work in conjunction with Android's 64-bit architecture.

Step 1: Integration

Fyber supports both Gradle dependencies or manual download to integrate our SDK:

Gradle

Add Fyber's maven repository and dependencies to your gradle build script:

  1. Add the following to your app’s project level build.gradle file inside the repositories section:

In project level build.gradle there are usually two repositories sections - one for buildscript and one for allprojects. Add the entry in allprojects.

allprojects {
    repositories {
        maven {
            url  "https://fyber.bintray.com/maven" 
        }
    }
    ...
}
  1. Add the following to your app’s app level build.gradle file inside the dependencies section:
dependencies {
    ...
    implementation 'com.fyber:fairbid-sdk:3.0.0'
    ...
}
  1. Starting from FairBid SDK 3.0.0, if you support Android SDK below 26, you must add the following snippet to the Android section:
android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    ...
}

Historically, Android projects have been using Java 1.7 since it was the surest way to ensure compatibility across Android versions.

Android Studio has been supporting partial compatibility with Java 1.8 since version 3.0.0. As some of our partners begin moving to 1.8, we follow suit.

It simply allows our team (and our partners) to leverage some new features of the Java language with no implications on runtime/API compatibility.

However, it enforces the same type of declaration in the projects integrating FairBid SDK.

Manual Download

  1. Download the
  2. Extract inner zip file
  3. Import the aar packages into your project.

Step 2: Adding Google Play Services

The Google Play Services SDK must be added to your project. Follow Google's documentation on integrating the Google Play Services SDK into your app.

Only the Ads and Location APIs are included. If you are using a Gradle build system with Android Studio adding the following to build.gradle is sufficient:

  1. Add the following to your app’s build.gradle:
implementation 'com.google.android.gms:play-services-ads:17.1.1' //11.x and onwards is supported
//Optionally, add the location services - 
implementation 'com.google.android.gms:play-services-location:11.+'
  1. Modify your Android Manifest
  2. Add the following to your app’s manifest.xml within the <application> tag:
<!-- Google Play Services -->
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

Google Play Services Meta-Data

This tag is not allowed outside the application tag but will not raise any critical warning if you put it outside.

Step 3: Modifying Your Manifest.xml

  1. Add the following attribute to the <application> tag to enable hardware acceleration:
<application android:hardwareAccelerated="true" ...>

Optional Permissions

The following permissions are not required for our SDK or 3rd-party SDKs to function, but including them in your AndroidManifest.xml may result in improved eCPM and user experience:

<!-- Optionally used by FairBid -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Step 4: Adding 3rd Party SDKs

In addition to integrating the , publishers who are using , must integrate chosen 3rd-party networks' SDKs into their app.

  1. Set up your app in the network's dashboard and in the . A step-by-step guide can be found here.
  2. Download the relevant network's SDK. Supported networks and their SDKs can be found here.
  3. Add additional manifest modifications

Third Party Manifest Modifcations

You must add additional additional manifest modifications for each third party network. These entries are found by selecting your third party adapters here.

Automatic Detection and Initialization

The automatically detects and initializes SDKs from 3rd-party networks.

Targeting Android P

When targeting Android P and using video ads, you must add an exception rule to 'localhost' found in your apps Network Security Configuration.

  1. Make the Network Security Configuration xml with the code below:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
   <base-config cleartextTrafficPermitted="true">
       <trust-anchors>
           <certificates src="system" />
       </trust-anchors>
   </base-config>
   <domain-config cleartextTrafficPermitted="true">
       <domain includeSubdomains="true">127.0.0.1</domain>
   </domain-config>
</network-security-config>
  1. Modify your manifest of your app to point to this file.
    The following code is an example of how to create this entry:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                    ... >
        ...
    </application>
</manifest>

More information can be found here.

Building for AndroidX

If you, or any of your integrated mediation networks use AndroidX libraries, you can update your build to ensure compatibility. To use androidx-namespaced libraries in a new project, you must set the compile SDK to Android 9.0 (API level 28) or higher.

If you have a native integration, add the following parameters to your gradle.properties file:

android.useAndroidX=true
android.enableJetifier=true

If you have a Unity integration, the way to add gradle properties to the build differs from the native build. This is because your mainTemplate.gradle does not really belong to a gradle project in the place it is located.

Therefore, you should provide the previous properties by adding the following to your mainTemplate.gradle.

project.ext.set('android.useAndroidX', true)
project.ext.set('android.enableJetifier', true)

It is important to write this before you apply the following plugin:

apply plugin: 'com.android.application'

More information about AndroidX here.

Updated 7 days ago

Android SDK Integration


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.