Get Started
BlueStack Ads SDK provides functionalities for monetizing your mobile application: from premium sales with rich media, video and innovative formats, it facilitates inserting native mobile ads as well all standard display formats.
Prerequisites
Before You Start, BlueStack Ads requires minimum :
- Android 5.0 (API level 21) or higher.
- CompileSdkVersion at least 31.
- Android Studio 4.0 or higher.
ExoPlayer Compatibility
BlueStack SDK uses AndroidX Media3 ExoPlayer for video ad playback. If your app also uses ExoPlayer, ensure compatibility:
- BlueStack SDK v6.0.0+ uses
androidx.media3:media3-exoplayer:1.9.2 - If you use ExoPlayer in your app, use a compatible version to avoid runtime conflicts
- For conflicts, align your ExoPlayer version with the SDK's Media3 version or use dependency resolution strategies in Gradle
If you encounter AbstractMethodError or similar runtime errors related to ExoPlayer, verify that all ExoPlayer/Media3 dependencies are aligned to compatible versions.
Configure your app
Installation using Gradle
1) In the settings.gradle of your project, you must declare there repositories :
dependencyResolutionManagement {
...
repositories {
...
google()
mavenCentral()
...
}
...
}
2) Add the following dependency to your app's build.gradle, and make sure the latest SDK is used:
Mandatory :
- Bluestack Mediation SDK
dependencies {
// Bluestack SDK
implementation 'com.azerion:bluestack-sdk-core:6.0.0'
}
Update AndroidManifest.xml
Add the following permissions to your AndroidManifest.xml file inside the manifest tag but outside the <application> tag, if not done already:
<!-- Optional: Allows the SDK to access approximate location data based on cell towers to improve targeting. -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- Optional: Allows the SDK to access precise location data via GPS to improve targeting. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- Optional: External storage is used for pre-caching features if available -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Initialize the BlueStack Ads SDK
Before loading ads, initialize the BlueStack Ads SDK by calling MobileAds.initialize().
Once the SDK completes initialization,
it will provide an InitializationStatus instance through the initialization callback.
This needs to be done only once.
- Java
- Kotlin
import com.azerion.bluestack.MobileAds;
import com.azerion.bluestack.initialization.InitializationListener;
import com.azerion.bluestack.initialization.SDKInitializationStatus;
class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
MobileAds.INSTANCE.initialize(this, "YOUR_APP_ID", initializationStatus -> {
initializationStatus.getMediationAdapterStatusMap().forEach((adNetworkName, adapterStatus) -> Log.d(TAG, "name: " + adapterStatus.getName() + "," + "state: " + adapterStatus.getState() + "," + "description: " + adapterStatus.getDescription()));
});
...
}
}
import com.azerion.bluestack.MobileAds
import com.azerion.bluestack.initialization.InitializationListener
import com.azerion.bluestack.initialization.SDKInitializationStatus
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate()
...
MobileAds.initialize(this, "YOUR_APP_ID", object : InitializationListener {
override fun onInitialized(status: SDKInitializationStatus) {
status.mediationAdapterStatusMap.forEach {(adNetworkName, adapterStatus) ->
Log.d(TAG, "name: ${adapterStatus.name}, state: ${adapterStatus.state}, description: ${adapterStatus.description}")
}
}
})
...
}
}
Note: If the BlueStack SDK fails to initialize, it will return an SDKInitializationStatus object containing an empty mediation adapter status map.