### Initialize LevelPlay SDK (Java)
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Initialize the LevelPlay SDK using the appKey and an optional user ID. Implement the LevelPlayInitListener to handle initialization success or failure.
```java
LevelPlayInitRequest initRequest = new LevelPlayInitRequest.Builder(appKey)
.withUserId("UserID")
.build();
LevelPlayInitListener initListener = new LevelPlayInitListener() {
@Override
public void onInitFailed(@NonNull LevelPlayInitError error) {
//Recommended to initialize again
}
@Override
public void onInitSuccess(LevelPlayConfiguration configuration) {
//Create ad objects and load ads
}
};
LevelPlay.init(context, initRequest, initListener);
```
--------------------------------
### Initialize LevelPlay SDK (Kotlin)
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Initialize the LevelPlay SDK using the appKey and an optional user ID. Implement the LevelPlayInitListener to handle initialization success or failure.
```kotlin
val initRequest = LevelPlayInitRequest.Builder("AppKey")
.withUserId("UserId")
.build()
LevelPlay.init(context, initRequest, object : LevelPlayInitListener {
override fun onInitFailed(error: LevelPlayInitError) {
//Recommended to initialize again
}
override fun onInitSuccess(configuration: LevelPlayConfiguration) {
//Create ad objects and load ads
}
})
```
--------------------------------
### Add SDK via Manual Download (AAR)
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Specify the AAR file as an implementation dependency in your build.gradle file when integrating manually.
```text
implementation(name: 'mediation-sdk-9.5.0', ext:'aar')
```
--------------------------------
### Launch LevelPlay Integration Test Suite
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Launch the integration test suite after mediation initialization is complete. An application context is required for this method.
```java
LevelPlay.launchTestSuite(context);
```
--------------------------------
### Add Internet and Network State Permissions
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Include these essential permissions in your AndroidManifest.xml file to allow the SDK to access network resources.
```xml
```
--------------------------------
### Add SDK Activities and Provider to AndroidManifest
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Declare necessary activities and the lifecycle provider in your AndroidManifest.xml for the SDK to function correctly.
```xml
```
--------------------------------
### ProGuard Rules for LevelPlay SDK
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Add these rules to your ProGuard configuration file to prevent issues when shrinking and obfuscating your code.
```proguard
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#noinspection ShrinkerUnresolvedReference
#unity
-keep class com.google.android.gms.ads.** {public *;}
-keep class com.google.android.gms.appset.** { *; }
-keep class com.google.android.gms.tasks.** { *; }
#adapters
-keep class com.ironsource.adapters.** { *; }
#sdk
-dontwarn com.ironsource.**
-dontwarn com.ironsource.adapters.**
-keepclassmembers class com.ironsource.** { public *; }
-keep public class com.ironsource.**
-keep class com.ironsource.adapters.** { *;
}
#omid
-dontwarn com.iab.omid.**
-keep class com.iab.omid.** {*;}
#javascript
-keepattributes JavascriptInterface
-keepclassmembers class * { @android.webkit.JavascriptInterface ; }
#For AmazonAps integration
-keep class com.amazon.device.ads.DtbThreadService {
static *;
}
-keep public interface com.amazon.device.ads** {*; }
#For AppLovin integration
-keepclassmembers class com.applovin.sdk.AppLovinSdk {
static *;
}
-keep public interface com.applovin.sdk** {*; }
-keep public interface com.applovin.adview** {*; }
-keep public interface com.applovin.mediation** {*; }
-keep public interface com.applovin.communicator** {*; }
#For Bytedance integration
-keep public interface com.bytedance.sdk.openadsdk** {*; }
#For Facebook integration
-keepclassmembers class com.facebook.ads.internal.AdSdkVersion {
static *;
}
-keepclassmembers class com.facebook.ads.internal.settings.AdSdkVersion {
static *;
}
-keepclassmembers class com.facebook.ads.BuildConfig {
static *;
}
-keep public interface com.facebook.ads** {*; }
#For Fairbid
-keep public interface com.fyber.fairbid.ads.interstitial** {*; }
```
--------------------------------
### Enable LevelPlay Integration Test Suite
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Call this method before initializing mediation to enable the integration test suite. This prepares your app for testing.
```java
LevelPlay.setMetaData("is_test_suite", "enable");
```
--------------------------------
### Add Maven Repository via Gradle
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Add the mavenCentral() repository to your app's build.gradle file. This is required for Gradle to download the SDK.
```java
repositories {
mavenCentral()
}
```
--------------------------------
### Add Play Services Dependencies
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Include these dependencies in your app's build.gradle file to enable retrieval of GAID and App Set ID information.
```java
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.android.gms:play-services-appset:16.0.0'
implementation 'com.google.android.gms:play-services-ads-identifier:18.1.0'
implementation 'com.google.android.gms:play-services-basement:18.1.0'
}
```
--------------------------------
### Add LevelPlay SDK Dependency via Gradle
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
Include the LevelPlay SDK as an implementation dependency in your app's build.gradle file.
```java
dependencies {
implementation 'com.unity3d.ads-mediation:mediation-sdk:9.5.0'
}
```
--------------------------------
### ProGuard Rules for Ad SDKs
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
These rules are necessary for ProGuard users to prevent obfuscation from breaking the functionality of various ad SDKs. Ensure these are included in your ProGuard configuration file.
```proguard
-keep public interface com.fyber.fairbid.ads.rewarded** {*; }
```
```proguard
-keep class com.fyber.offerwall.*
```
```proguard
#For Fivead
-keep public interface com.five_corp.ad** {*; }
```
```proguard
#For Fyber(Inneractive) integration
-keep public interface com.fyber.inneractive.sdk.external** {*; }
-keep public interface com.fyber.inneractive.sdk.activities** {*; }
-keep public interface com.fyber.inneractive.sdk.ui** {*; }
```
```proguard
#For HyprMX integration
-keepclassmembers class com.hyprmx.android.sdk.utility.HyprMXProperties {
static *;
}
-keepclassmembers class com.hyprmx.android.BuildConfig {
static *;
}
-keep public interface com.hyprmx.android.sdk.activity** {*; }
-keep public interface com.hyprmx.android.sdk.graphics** {*; }
```
```proguard
# For Inmobi integration
-keep class com.inmobi.*
-keep public interface com.inmobi.ads.listeners** {*; }
-keep public interface com.inmobi.ads.InMobiInterstitial** {*; }
-keep public interface com.inmobi.ads.InMobiBanner** {*; }
```
```proguard
# For ironSource integration
-keep public interface com.ironsource.mediationsdk.sdk** {*; }
-keep public interface com.ironsource.mediationsdk.impressionData.ImpressionDataListener {*; }
```
```proguard
#For Maio integration
-keep public interface jp.maio.sdk.android.MaioAdsListenerInterface {*; }
```
```proguard
# For Mintergral integration
-keep public interface com.mbridge.msdk.out** {*; }
-keep public interface com.mbridge.msdk.videocommon.listener** {*; }
-keep public interface com.mbridge.msdk.interstitialvideo.out** {*; }
-keep public interface com.mintegral.msdk.out** {*; }
-keep public interface com.mintegral.msdk.videocommon.listener** {*; }
-keep public interface com.mintegral.msdk.interstitialvideo.out** {*; }
```
```proguard
#For MyTarget integration
-keep class com.my.target.** {*;}
```
```proguard
#For Ogury integration
-keep public interface io.presage.interstitial** {*; }
-keep public interface io.presage.interstitial.PresageInterstitialCallback {*; }
```
```proguard
#For Pubnative integration
-keep public interface net.pubnative.lite.sdk.interstitial.HyBidInterstitialAd** {*; }
-keep public interface net.pubnative.lite.sdk.rewarded.HyBidRewardedAd** {*; }
-keep public interface net.pubnative.lite.sdk.views.HyBidAdView** {*; }
```
```proguard
#For Smaato integration
-keep public interface com.smaato.sdk.interstitial** {*; }
-keep public interface com.smaato.sdk.video.vast** {*; }
-keep public interface com.smaato.sdk.banner.widget** {*; }
-keep public interface com.smaato.sdk.core.util** {*; }
```
```proguard
# For Tapjoy integration
-keep public interface com.tapjoy.** {*; }
```
```proguard
# For Tencent integration
-keep public interface com.qq.e.ads.interstitial2** {*; }
-keep public interface com.qq.e.ads.interstitial3** {*; }
-keep public interface com.qq.e.ads.rewardvideo** {*; }
-keep public interface com.qq.e.ads.rewardvideo2** {*; }
-keep public interface com.qq.e.ads.banner2** {*; }
-keep public interface com.qq.e.comm.adevent** {*; }
```
```proguard
#For Verizon integration
-keepclassmembers class com.verizon.ads.edition.BuildConfig {
static *;
}
-keep public interface com.verizon.ads.interstitialplacement** {*; }
-keep public interface com.verizon.ads.inlineplacement** {*; }
-keep public interface com.verizon.ads.vastcontroller** {*; }
-keep public interface com.verizon.ads.webcontroller** {*; }
```
```proguard
#For Vungle integration
-keep public interface com.vungle.warren.PlayAdCallback {*; }
-keep public interface com.vungle.warren.ui.contract** {*; }
-keep public interface com.vungle.warren.ui.view** {*; }
```
```proguard
#For AndroidX
-keep class androidx.localbroadcastmanager.content.LocalBroadcastManager { *;}
-keep class androidx.recyclerview.widget.RecyclerView { *;}
-keep class androidx.recyclerview.widget.RecyclerView$OnScrollListener { *;}
```
```proguard
#For Android
-keep class * extends android.app.Activity
```
--------------------------------
### Declare AD_ID Permission
Source: https://docs.unity.com/en-us/grow/levelplay/sdk/android/sdk-integration
For apps targeting API level 33 (Android 13) and above, declare this normal permission in your AndroidManifest.xml file.
```xml
```
=== COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.