Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 37 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
InMobi SDK for Android
======================

Modified: 16 February, 2023
Modified: 23 October, 2025

SDK Version: 10.5.4
SDK Version: 11.0.0

Thanks for monetizing with InMobi!
If you haven't already, [sign up](https://www.inmobi.com/user/index?locale=en_us#signup) for an account to start monetizing your app!
Expand All @@ -20,7 +20,7 @@ repositories {
mavenCentral()
}
dependencies {
implementation 'com.inmobi.monetization:inmobi-ads-kotlin:10.5.3'
implementation 'com.inmobi.monetization:inmobi-ads-kotlin:11.0.0'
}
```

Expand All @@ -31,16 +31,42 @@ To download the latest SDK as a AAR, please visit [http://inmobi.com/sdk](https:
**To continue integrating with the InMobi SDK, please see the [Integration Guidelines](https://support.inmobi.com/monetize/android-guidelines/) for Android.**

## New in this version
• Gradle 7.0 support
• Bug fixes
• Upgraded support for native ads
• Bug Fixes and Enhancements
• APIs Removed
InMobiNative
- public String getAdIconUrl()
- public String getAdLandingPageUrl()
- public boolean isAppDownload()
- public JSONObject getCustomAdContent()
- public View getPrimaryViewOfWidth(Context context, View convertView, ViewGroup parent, int viewWidthInPixels)
- public void reportAdClickAndOpenLandingPage()
NativeAdEventListener
- public void onAdReceived(@NonNull InMobiNative ad)
- public void onAdFullScreenWillDisplay(@NonNull InMobiNative ad)
- public void onAdImpressed(@NonNull InMobiNative ad)
- public void onAdStatusChanged(@NonNull InMobiNative nativeAd)

• APIs Added
New Class Added : InMobiNativeImage
New Class Added : InMobiNativeViewData
New Class Added : MediaView
InMobiNative
- public InMobiNativeImage getAdIcon()
- public String getAdvertiserName()
- public View getAdChoiceIcon()
- public void registerViewForTracking(InMobiNativeViewData viewData)
- public void unTrackViews()
- public MediaView getMediaView()
- public boolean isVideo()
- public String getCreativeId()
- public JSONObject getAdContent()

** Refer to [Release Notes](https://support.inmobi.com/monetize/sdk-documentation/android-guidelines/changelogs-android) for Older Versions.**

## Requirements
- Android 4.0.1 (API level 15) and higher
- androidx.browser
- androidx.appcompat
- androidx.recyclerview
- Picasso Library (picasso-2.8.jar)
- **Recommended** Google Play Services 18.0.1
- Android 4.4 (API level 19) and higher
- androidx.appcompat (Not a dependency of SDK. Used only in Sample App)

## License
To view the license for the InMobi SDK, see [here](https://github.com/InMobi/sdk-sample-code-android/blob/master/sdk/licenses/License.txt). To view the terms of service, visit [https://inmobi.com/terms-of-service](http://inmobi.com/terms-of-service/).
Expand Down
11 changes: 5 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,22 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
classpath 'com.android.tools.build:gradle:8.6.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}


ext {
androidMinSdkVersion = 15
androidTargetSdkVersion = 31
androidCompileSdkVersion = 31
androidMinSdkVersion = 19
androidTargetSdkVersion = 36
androidCompileSdkVersion = 36

appVersionCode = 1
appVersionName = "1.0.0"

inmobiSdkVersion = "10.5.4"
fresco = "0.12.0"
inmobiSdkVersion = "11.0.0"
picasso = "2.8"
browser = "1.3.0"
recyclerview = "1.1.0"
Expand Down
8 changes: 6 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,15 @@
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.jvmargs=-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
android.defaults.buildfeatures.buildconfig=true
android.enableJetifier=true
android.useAndroidX=true
android.nonFinalResIds=false
android.nonTransitiveRClass=false
android.useAndroidX=true
ACCOUNT_ID=8ba05e170e914971a0b45d977809a6cf
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
30 changes: 0 additions & 30 deletions samples/Fresco-License.txt

This file was deleted.

34 changes: 11 additions & 23 deletions samples/bannerSample/build.gradle
Original file line number Diff line number Diff line change
@@ -1,54 +1,42 @@
apply plugin: 'com.android.application'

android {
namespace 'com.inmobi.banner.sample'
compileSdkVersion androidCompileSdkVersion

defaultConfig {
applicationId 'com.inmobi.banner.sample'
minSdkVersion androidMinSdkVersion
targetSdkVersion androidTargetSdkVersion
versionCode appVersionCode
versionName appVersionName
multiDexEnabled true
buildConfigField "String", "ACCOUNT_ID", "\"$ACCOUNT_ID\""
}
buildTypes {
release {
minifyEnabled false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationIdSuffix ".release"
}

debug {
minifyEnabled false
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
lintOptions {
abortOnError false
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
dexOptions {
javaMaxHeapSize "4g"
}
lint {
abortOnError false
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar'])
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.annotation:annotation:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.browser:browser:1.0.0'
implementation 'androidx.multidex:multidex:2.0.0'


// implementation fileTree(dir: 'libs', include: ['*.aar'])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation "com.inmobi.monetization:inmobi-ads-kotlin:$inmobiSdkVersion"
implementation "com.google.android.gms:play-services-ads-identifier:$playservicesadsidentifier"
implementation "com.google.android.gms:play-services-location:$playserviceslocation"
implementation "com.facebook.fresco:fresco:$fresco"
implementation "com.squareup.picasso:picasso:$picasso"
implementation "androidx.browser:browser:$browser"
implementation "com.google.android.gms:play-services-appset:$playservicesappset"
implementation "com.google.android.gms:play-services-tasks:$playservicestask"

}
26 changes: 2 additions & 24 deletions samples/bannerSample/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,5 @@
# public *;
#}

-keepattributes SourceFile,LineNumberTable,InnerClasses
-keep class com.inmobi.** { *; }
-dontwarn com.inmobi.**
-keep class com.google.android.gms.common.api.GoogleApiClient { public *; }
-keep class com.google.android.gms.common.api.GoogleApiClient$* {public *;}
-keep class com.google.android.gms.location.LocationServices {public *;}
-keep class com.google.android.gms.location.FusedLocationProviderApi {public *;}
-keep class com.google.android.gms.location.ActivityRecognition {public *;}
-keep class com.google.android.gms.location.ActivityRecognitionApi {public *;}
-keep class com.google.android.gms.location.ActivityRecognitionResult {public *;}
-keep class com.google.android.gms.location.DetectedActivity {public *;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient{
public *;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info{
public *;
}
-dontwarn com.google.android.gms.**
# skip the Picasso library classes
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.picasso.**
# skip Moat classes
-keep class com.moat.** {*;}
-dontwarn com.moat.**
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.OpenSSLProvider
17 changes: 10 additions & 7 deletions samples/bannerSample/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.inmobi.banner.sample">
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Expand All @@ -12,9 +11,11 @@
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-sdk tools:overrideLibrary="androidx.browser"/>
<application android:allowBackup="true" android:icon="@drawable/icon"
android:label="@string/app_name" android:theme="@style/AppTheme"
android:name="androidx.multidex.MultiDexApplication"
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:networkSecurityConfig="@xml/network_security_config">

<activity
Expand All @@ -29,13 +30,15 @@

<activity
android:name=".BannerAdsActivity"
android:label="@string/app_name">
android:label="@string/app_name"
android:exported="true">
</activity>

<activity
android:name=".BannerXmlActivity"
android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize|screenLayout"
android:label="@string/app_name">
android:label="@string/app_name"
android:exported="true">
</activity>

</application>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package com.inmobi.banner;

public interface PlacementId {
long YOUR_PLACEMENT_ID = 1473189489298L;
long YOUR_PLACEMENT_ID = 1651462467602L;
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
import android.widget.ListView;
import android.widget.RelativeLayout;

import com.facebook.drawee.backends.pipeline.Fresco;
import com.inmobi.ads.AdMetaInfo;
import com.inmobi.ads.InMobiAdRequestStatus;
import com.inmobi.ads.InMobiBanner;
import com.inmobi.ads.listeners.BannerAdEventListener;
import com.inmobi.banner.PlacementId;
import com.inmobi.sdk.InMobiSdk;
import com.inmobi.sdk.SdkInitializationListener;
import com.inmobi.banner.utility.Constants;
import com.inmobi.banner.utility.DataFetcher;
import com.inmobi.banner.utility.NewsSnippet;
Expand Down Expand Up @@ -62,12 +63,23 @@ public void onArticleSelected(int position) {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fresco.initialize(this);
setContentView(R.layout.activity_banner_ads);

setupListView();
getHeadlines();
setupBannerAd();

// Initialize InMobi SDK
InMobiSdk.init(this, BuildConfig.ACCOUNT_ID, null, new SdkInitializationListener() {
@Override
public void onInitializationComplete(@Nullable Error error) {
if (error == null) {
Log.d(TAG, "InMobi SDK Initialization Success");
setupBannerAd();
} else {
Log.e(TAG, "InMobi SDK Initialization failed: " + error.getMessage());
}
}
});
}

private void setupBannerAd() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.inmobi.banner.sample;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.util.Log;
import android.view.View;
Expand All @@ -16,7 +16,7 @@
import org.json.JSONException;
import org.json.JSONObject;

public class BannerBase extends AppCompatActivity {
public class BannerBase extends Activity {

private static final String TAG = BannerBase.class.getName();
private Button normalIntegration;
Expand All @@ -33,7 +33,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
e.printStackTrace();
}

InMobiSdk.init(this, "1234567890qwerty0987654321qwerty12345", consent, new SdkInitializationListener() {
InMobiSdk.init(this, BuildConfig.ACCOUNT_ID, consent, new SdkInitializationListener() {
@Override
public void onInitializationComplete(@Nullable Error error) {
if (error == null) {
Expand Down
Loading