Android Standalone Ad
Learn how to create additional content monetization opportunities in your Android app
Standalone Ads enable you to customize ad opportunities and augment the revenue potential of your app:
- Create new high-profile ad opportunities of any dimensions
- Display video and display ads
- Enforce brand safety
Prerequisites
- Android Studio
- Minimum OS Version: API Level 21
- Gradle Version: 8.1
- Android Gradle Plugin: 4.1.3
- Google Mobile Ads App ID
Create an Application
class
Application
classUse the following steps to create a class inheriting from the Application
class for the later initialization of the SDK:
-
In the src/main/java directory, create a new file called App.kt.
This file can be given any name. If you choose a different name, be sure to make the appropriate adjustments in the steps throughout this article.
-
In App.kt, define the
App
class by extending theApplication
class. TheApplication
class is the base class for maintaining the global application state.class App : Application() {}
-
In the
App
class, add any needed setup code toonCreate()
.class App : Application() { override fun onCreate() { super.onCreate() // SDK Initialization will be here } }
-
In AndroidManifest.xml, add the
android:name=".App"
attribute to direct Android to use your customApp
class as the mainApplication
class.<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <application android:name=".App" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true"> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Add the internet permission
To allow the app to use the internet connection of the device, the INTERNET
permission must be enabled.
Use the following steps to enable this permission:
- In AndroidManifest.xml, add the
INTERNET
permission inside the<manifest>
element.1. <uses-permission android:name="android.permission.INTERNET" />
- Sync the project.
Add the dependencies
Use the following steps to add the SpotIM SDK to your project
- In the main build.gradle or settings.gradle, add the following Maven repositories using either Groovy or Kotlin.
repositories { ... mavenCentral() }
repositories { ... mavenCentral() }
- In the app's build.gradle, declare the
io.github.spotim:spotim-sdk-iau:<<AndroidStandaloneAdVersion>>
dependency in thedependencies
block.implementation("io.github.spotim:spotim-sdk-iau:<<AndroidStandaloneAdVersion>>")
- Sync the project to download the new dependency.
Initialize the SDK
Use the following steps to initialize the SDK:
-
In the
Application
class, initialize the SpotIM SDK withinonCreate()
.Since
onCreate()
is the first method called by the application, the SpotIM SDK will be initialized when the application begins.class App: Application() { override fun onCreate() { super.onCreate() // SDK Initialization SpotImAds.init(this, spotId) } }
-
Set the spot ID.
-
Build the project.
-
Run the project.
Add Google Ad Manager
Use the following steps to add Google Ad Manager:
-
In AndroidManifest.xml, add the Google Mobile Ad app ID inside the
<application>
element.<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="YOUR_APP_ID"/>
-
(Optional) To improve the ad load performance, add the following optimization elements.
<meta-data android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION" android:value="true"/> <meta-data android:name="com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING" android:value="true"/>
Display an ad
Use the following steps to display an ad:
-
Add a
SpotImAdPlacement
to the layout of the app.<com.github.spotim.placement.SpotImAdPlacement android:id="@+id/ad_placement" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
-
Assign slots to the ad placement using either the programmatic or declarative approach:
Programmatic Approach
In the relevant
Activity
orFragment
class, usesetSlot()
to assign slots to the ad placement.
The
setSlot
method should be added after the layout has been inflated:- For an
Activity
, inonCreate()
- For a
Fragment
, inonViewCreated()
The first
setSlot()
argument is the row of the ad slot. The second argument is the column of the ad slot.
val placement = view.findViewById<SpotImAdPlacement>(R.id.ad_placement) placement.setSlot(1, 1)
Declarative Approach
In the XML layout, the slot be set.
<com.github.spotim.placement.SpotImAdPlacement ... app:slot_row="1" app:slot_column="1" />
- For an
Updated 4 months ago