### 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.