/mopub-android-sdk

Primary LanguageJavaOtherNOASSERTION

MoPub Android SDK

Thanks for taking a look at MoPub! We take pride in having an easy-to-use, flexible monetization solution that works across multiple platforms.

Sign up for an account at http://app.mopub.com/.

Need Help?

You can find integration documentation on our wiki and additional help documentation on our developer help site.

To file an issue with our team visit the MoPub Forum or email support@mopub.com.

Please Note: We no longer accept GitHub Issues.

New Pull Requests?

Thank you for submitting pull requests to the MoPub Android GitHub repository. Our team regularly monitors and investigates all submissions for inclusion in our official SDK releases. Please note that MoPub does not directly merge these pull requests at this time. Please reach out to your account team or support@mopub.com if you have further questions.

Disclosures

MoPub v4.16 SDK integrates technology from our partners Integral Ad Science, Inc. (“IAS”) and Moat, Inc. (“Moat”) in order to support viewability measurement and other proprietary reporting that IAS and Moat provide to their advertiser and publisher clients. You have the option to remove or disable this technology by following the opt-out instructions below.

If you do not remove or disable IAS's and/or Moat’s technology in accordance with these instructions, you agree that IAS's privacy policy and license and Moat’s privacy policy, terms, and license, respectively, apply to your integration of these partners' technologies into your application.

Download

The MoPub SDK is available via:

  1. JCenter AAR

    Download
    The MoPub SDK is available as an AAR via JCenter; to use it, add the following to your build.gradle.

    repositories {
        jcenter() // includes the MoPub SDK and AVID library
        maven { url "https://s3.amazonaws.com/moat-sdk-builds" }
    }
    
    dependencies {
        compile('com.mopub:mopub-sdk:4.17.0@aar') {
            transitive = true
        }
    }
    

    SDK Modularization

    With the modular SDK, you can choose to include specific formats to decrease overall SDK footprint in your app. To do so, include the line for any combination of components that you want in your build.gradle file as follows:

    repositories {
        // ... other project repositories
        jcenter() // includes the MoPub SDK and AVID library
        maven { url "https://s3.amazonaws.com/moat-sdk-builds" }
    }
    
    dependencies {
        // ... other project dependencies
    
        // For banners
        compile('com.mopub:mopub-sdk-banner:4.17.0@aar') {
            transitive = true
        }
        
        // For interstitials
        compile('com.mopub:mopub-sdk-interstitial:4.17.0@aar') {
            transitive = true
        }
    
        // For rewarded videos. This will automatically also include interstitials
        compile('com.mopub:mopub-sdk-rewardedvideo:4.17.0@aar') {
            transitive = true
        }
    
        // For native static (images).
        compile('com.mopub:mopub-sdk-native-static:4.17.0@aar') {
            transitive = true
        }
    
        // For native video. This will automatically also include native static
        compile('com.mopub:mopub-sdk-native-video:4.17.0@aar') {
            transitive = true
        }
    }

    To continue integration using the mopub-sdk AAR, please see the Getting Started guide.

  2. Zipped Source

    The MoPub SDK is also distributed as zipped source code that you can include in your application. MoPub provides two prepackaged archives of source code:

    MoPub Android SDK.zip
    Includes everything you need to serve MoPub ads. No third party ad networks are included.

    For additional integration instructions, please see the Getting Started guide.

  3. Cloned GitHub repository

    Alternatively, you can obtain the MoPub SDK source by cloning the git repository:

    git clone git://github.com/mopub/mopub-android-sdk.git

    For additional integration instructions, please see the Getting Started guide.

New in this Version

Please view the changelog for a complete list of additions, fixes, and enhancements in the latest release.

  • Rewarded Ads can now send up optional custom data through the server completion url. See MoPubRewardedVideos#showRewardedVideo(String, String).
  • Updated Facebook native adapter to ignore clicks on whitespace as per Facebook policy.

Requirements

  • Android 4.1 (API Version 16) and up (Updated in 4.12.0)
  • android-support-v4.jar, r23 (Updated in 4.4.0)
  • android-support-annotations.jar, r23 (Updated in 4.4.0)
  • android-support-v7-recyclerview.jar, r23 (Updated in 4.4.0)
  • MoPub Volley Library (mopub-volley-1.1.0.jar - available on JCenter) (Updated in 3.6.0)
  • Recommended Google Play Services 9.4.0

Upgrading from 4.15.0 and Prior

In 4.16.0, dependencies were added to viewability libraries provided by AVID and Moat. Apps upgrading from previous versions must add maven { url "https://s3.amazonaws.com/moat-sdk-builds" } to their build.gradle repositories block for these included dependencies to resolve.

Disabling Viewability Measurement

There are a few options for opting out of viewability measurement:

Strip out from JCenter Integration

Normally, to add the MoPub SDK to your app via JCenter, your build.gradle would contain:

dependencies {
    compile('com.mopub:mopub-sdk:4.17.0@aar') {
        transitive = true
    }
}

Update to the following to exclude one or both viewability vendors:

dependencies {
    compile('com.mopub:mopub-sdk:4.17.0@aar') {
        transitive = true
        exclude module: 'libAvid-mopub' // To exclude AVID
        exclude module: 'moat-mobile-app-kit' // To exclude Moat
    }
}
Strip out from GitHub integration

Navigate to the gradle.properties file in your home directory (e.g. ~/.gradle/gradle.properties) and include one or both of these lines to opt out of viewability measurement for AVID and/or Moat.

mopub.avidEnabled=false
mopub.moatEnabled=false
Disable via API

If you would like to opt out of viewability measurement but do not want to modify the MoPub SDK, a function is provided for your convenience. At any point, call MoPub.disableViewability(vendor);. This method can can be called with any of the enum values available in ExternalViewabilitySessionManager.ViewabilityVendor: AVID will disable AVID but leave Moat enabled, MOAT will disable Moat but leave AVID enabled, and ALL will disable all viewability measurement.

Working with Android 6.0 Runtime Permissions

If your app's target SDK is 23 or higher and the user's device is running Android 6.0 or higher, you are responsible for supporting runtime permissions, one of the changes introduced in Android 6.0 (API level 23). In addition to listing any dangerous permissions your app needs in the manifest, your app also has to explicitly request the dangerous permission(s) during runtime by calling method requestPermissions() in the ActivityCompat class.

Specifically for the MoPub SDK:

  • Dangerous permission ACCESS_COARSE_LOCATION is needed to pass network location data to MoPub.
  • Dangerous permission ACCESS_FINE_LOCATION is needed to pass GPS location data to MoPub.
    • Granting ACCESS_FINE_LOCATION also allows network location data to be passed to MoPub without the need to also grant ACCESS_COARSE_LOCATION.
  • Dangerous permission WRITE_EXTERNAL_STORAGE is optional and only required for MRAID 2.0 storePicture ads.
  • Note: The user can deny granting any dangerous permissions during runtime, so please make sure your app can handle this properly.
  • Note: The user can revoke any permissions granted previously by going to your app's Settings screen, so please make sure your app can handle this properly.

Additional resources:

License

We have launched a new license as of version 3.2.0. To view the full license, visit http://www.mopub.com/legal/sdk-license-agreement/.