Manual Integration

Please download our latest SDK.

1. Installation

Tapdaq SDK supports Android API levels 9+. Facebook Audience Network Adapter supports 11+ AdColony Adapter Supports 14+.

A. Add dependencies

Drag the unzipped tapdaq.aar or tapdaq.jar into your project's lib folder.

Update your project's build.gradle file to look like this:

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    // You can include all .jar files
    implementation fileTree(include: ['*.jar'], dir: 'libs') // Tapdaq SDK

    // .. or include the individual tapdaq.jar file
    implementation files('libs/tapdaq.jar') // Tapdaq SDK

    // .. or if you prefer to use the .aar, include .aar files
    implementation(name:'tapdaq', ext:'aar') // Tapdaq SDK

    implementation 'com.google.android.gms:play-services-ads-identifier:15.0.1' // Required by Tapdaq
    implementation 'com.google.code.gson:gson:2.8.2' // Required by Tapdaq SDK
}

Note: If you are using ProGuard in your app, see our Advanced page for details.

B. Update permissions

Allow the following permissions and activities in your AndroidManifest.xml file, like so:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company.name">

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

    <application>
        <!-- Debug Views -->
        <activity android:name="com.tapdaq.sdk.TMTestActivity"  android:configChanges="orientation|screenSize" />
        <activity android:name="com.tapdaq.sdk.TMTestNativeActivity" android:configChanges="orientation|screenSize"/>

        <!-- Cross Promo -->
        <activity android:name="com.tapdaq.adapters.tapdaq.TMInterstitialActivity" android:configChanges="orientation|screenSize"/>
        <activity android:name="com.tapdaq.adapters.tapdaq.TMVideoInterstitialActivity" android:configChanges="orientation|screenSize"/>

        <!-- More Apps -->
        <activity android:name="com.tapdaq.adapters.tapdaq.TMMoreAppsActivity"/>
    </application>
</manifest>

Note: We also recommend further permissions to make our SDK more efficient in your application, see our Advanced page for more details.

C. Add ad networks

Update the repositories in your app's build.gradle file to enable the following networks:

repositories {
    // Required for AdColony
    maven { url  "https://adcolony.bintray.com/AdColony" }
   
    // Required for IronSource
    maven { url "https://dl.bintray.com/ironsource-mobile/android-sdk" }
    
    // Required for MoPub
    jcenter() // includes the MoPub SDK and AVID library
    maven { url "https://s3.amazonaws.com/moat-sdk-builds" }
    
    //Required for Tapjoy
    maven {
        name "Tapjoy's maven repo"
        url "https://tapjoy.bintray.com/maven"
    }
        
    //YouAppi
    maven { url "http://repository.youappi.com/repository/release" }
}

Update the repositories in your root projects build.gradle file to enable the following networks:

allprojects {
    repositories {
        // Required for HyprMX
        maven { url "https://raw.githubusercontent.com/HyprMXMobile/Android-SDKs/master" }
  
        // Required for Vungle
        maven { url "https://jitpack.io" }
    }
}

Update the dependencies in your root apps build.gradle file to enable the following networks:

dependencies {
    // Required for AdMob
    implementation 'com.google.android.gms:play-services-ads:15.0.1'
    // Required for Facebook Audience Network
    implementation 'com.facebook.android:audience-network-sdk:5.0.1'
    // Required for AdColony
    implementation 'com.adcolony:sdk:3.3.5'
    // Required for AppLovin
    implementation 'com.applovin:applovin-sdk:8.1.4'
    // Required for HyprMX
    implementation 'com.hyprmx.android:HyprMX-SDK:4.3'
    // Required for IronSource
    implementation 'com.ironsource.sdk:mediationsdk:[email protected]'
    // Required for InMobi
    implementation 'com.inmobi.monetization:inmobi-ads:7.2.1'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    
    //Required for Kiip
    implementation 'me.kiip.sdk:kiip:3.0.1'
    
    //Required for MoPub
    implementation('com.mopub:mopub-sdk:[email protected]') {
        transitive = true
    }

    // For banners
    implementation('com.mopub:mopub-sdk-banner:[email protected]') {
        transitive = true
    }

    // For interstitials
    implementation('com.mopub:mopub-sdk-interstitial:[email protected]') {
        transitive = true
    }

    // For rewarded videos. This will automatically also include interstitials
    implementation('com.mopub:mopub-sdk-rewardedvideo:[email protected]') {
        transitive = true
    }
    //End MoPub
    
    //Required for TapJoy
    implementation 'com.tapjoy:tapjoy-android-sdk:[email protected]'
    
    //Required for Vungle
    implementation 'com.github.vungle:vungle-android-sdk:6.3.17'
    
    //Required for YouAppi
    implementation "com.youappi.sdk:youappi-sdk-android-moat:4.3.6"
    
    //Required for ZPlay
    implementation 'com.playableads:playableads:2.1.1'
}

For each network you want to enable, please add the following inside the container in your AndroidManifest.xml file:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tapdaq.sample">

    <!-- Tapdaq -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    <!-- Tapdaq Optional -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

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

    <!-- IronSource -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    <!-- Kiip -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <!-- Kiip Optional Permissions -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    
    <!-- MoPub -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    <!-- Receptiv -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    <!-- YouAppi Required for older devices -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        
    <application>
   

    <!-- AdColony Adapter -->
    <activity android:name="com.adcolony.sdk.AdColonyInterstitialActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:hardwareAccelerated="true"/>

    <activity android:name="com.adcolony.sdk.AdColonyAdViewActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:hardwareAccelerated="true"/>

    <!-- Applovin Adapter -->
    <activity android:name="com.applovin.adview.AppLovinInterstitialActivity" />
    <activity android:name="com.applovin.adview.AppLovinConfirmationActivity" />
    
    <!-- Chartboost Adapter -->
    <activity
        android:name="com.chartboost.sdk.CBImpressionActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:excludeFromRecents="true"
        android:hardwareAccelerated="true"
        android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
        
    <!-- HyprMX Adapter -->
    <activity android:name="com.tapdaq.adapters.TMHyprMXActivity"/>
    <activity
        android:name="com.hyprmx.android.sdk.activity.HyprMXOfferViewerActivity"
        android:hardwareAccelerated="true"
        android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
        android:label="HyprMX SDK"
        android:launchMode="singleTop"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
    <activity
        android:name="com.hyprmx.android.sdk.activity.HyprMXRequiredInformationActivity"
        android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
    <activity
        android:name="com.hyprmx.android.sdk.activity.HyprMXNoOffersActivity"
        android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
    <activity
        android:name="com.hyprmx.android.sdk.videoplayer.HyprMXVideoPlayerActivity"
        android:hardwareAccelerated="true"
        android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
  
    <!-- InMobi Adapter -->
    <activity
        android:name="com.inmobi.rendering.InMobiAdActivity"
        android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize|screenLayout"
        android:hardwareAccelerated="true"
        android:resizeableActivity="false"
        android:theme="@android:style/Theme.NoTitleBar"
        tools:ignore="UnusedAttribute" />
        
    <!-- IronSource Adapter -->
    <activity
        android:name="com.ironsource.sdk.controller.ControllerActivity"
        android:configChanges="orientation|screenSize"
        android:hardwareAccelerated="true" />
    <activity
        android:name="com.ironsource.sdk.controller.InterstitialActivity"
        android:configChanges="orientation|screenSize"
        android:hardwareAccelerated="true"
        android:theme="@android:style/Theme.Translucent" />
    <activity
        android:name="com.ironsource.sdk.controller.OpenUrlActivity"
        android:configChanges="orientation|screenSize"
        android:hardwareAccelerated="true"
        android:theme="@android:style/Theme.Translucent" />

    <!-- MoPub Adapter -->
    <activity android:name="com.mopub.mobileads.MoPubActivity" android:configChanges="keyboardHidden|orientation|screenSize"/>
    <activity android:name="com.mopub.mobileads.MraidActivity" android:configChanges="keyboardHidden|orientation|screenSize"/>
    <activity android:name="com.mopub.common.MoPubBrowser" android:configChanges="keyboardHidden|orientation|screenSize"/>
    <activity android:name="com.mopub.mobileads.MraidVideoPlayerActivity" android:configChanges="keyboardHidden|orientation|screenSize"/>
    <activity android:name="com.mopub.mobileads.RewardedMraidActivity" android:configChanges="keyboardHidden|orientation|screenSize"/>

    <!-- Receptiv Adapter -->
   <activity
       android:name="com.mediabrix.android.core.AdViewActivity"
       android:configChanges="orientation|screenSize|keyboard"
       android:hardwareAccelerated="true"
       android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" >
    </activity>
    <activity
       android:name="com.mediabrix.android.core.ClickOutActivity"
       android:configChanges="orientation|screenSize|keyboard"
       android:hardwareAccelerated="true"
       android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" >
    </activity>
    
    <!-- Tapjoy Adapter -->
    <activity
        android:name="com.tapjoy.TJAdUnitActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
        android:hardwareAccelerated="true" />
    <activity
        android:name="com.tapjoy.mraid.view.ActionHandler"
        android:configChanges="orientation|keyboardHidden|screenSize" />
    <activity
        android:name="com.tapjoy.mraid.view.Browser"
        android:configChanges="orientation|keyboardHidden|screenSize" />

    <activity
        android:name="com.tapjoy.TJContentActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />

    <!-- UnityAds Adapter -->
    <activity android:name="com.unity3d.ads.adunit.AdUnitActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
    <activity android:name="com.unity3d.ads.adunit.AdUnitSoftwareActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
            
    <!-- YouAppi Adapter -->
    <activity android:name="com.youappi.sdk.AdActivity"
        android:configChanges="screenSize|orientation"/>
    </application>
</manifest>

2. Add Adapters

Within the SDK zip folder, there are "Adapters" and "Adapter_Libs", add the .jar files from each folder to your project libs folder for the networks that you would like to use.

Need help?

If you are having any problems integrating, feel free to contact us on [email protected] and we will be more than happy to help.