How to add unity ads in android with kotlin | unity ads implementation in android studio kotlin tutorial
Step 1 - Go to unity website and download unity sdk - download
paste into app/libs/ folder
Step 2 - Go to app/build.gradle file add dependency
implementation fileTree(dir : 'libs', include: ['*.aar'])
and add internet permission in manifest file
<uses-permission android:name="android.permission.INTERNET"/>
Step 3 - Design Your xml layout
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/interstitial_ad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="180dp"
android:text="Interstitial Ad"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.461"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/rewarded"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="rewarded Ad"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.453"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/interstitial_ad" />
<Button
android:id="@+id/banner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Banner Ad"
app:layout_constraintBottom_toTopOf="@+id/layout_ad_container"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.467"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rewarded"
app:layout_constraintVertical_bias="0.022" />
<LinearLayout
android:id="@+id/layout_ad_container"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Step 4 - Cerate a kotlin Call File AdsManger.kt
write code below given
class AdsManger(private val activity: Activity) :
IUnityAdsInitializationListener {
companion object {
private const val UNITY_GAME_ID = "4696499"
private const val UNITY_BANNER_ID = "Banner_Android"
private const val UNITY_INTERSTITIAL_ID = "Interstitial_Android"
private const val UNITY_REWARDED_ID = "Rewarded_Android"
private const val isTestMode = false
}
private fun showToast(msg: String) {
Toast.makeText(activity.applicationContext, msg, Toast.LENGTH_LONG).show()
}
fun initialize() {
UnityAds.initialize(activity.applicationContext, UNITY_GAME_ID, isTestMode, this)
// showToast("Initialize")
}
fun showBanner(bannerLayout: LinearLayout) {
val bannerView = BannerView(
activity,
UNITY_BANNER_ID,
UnityBannerSize(320, 50)
)
bannerView.listener = UnityAdsBannerListener()
bannerView.load()
bannerLayout.addView(bannerView)
}
fun showInterstitial() {
UnityAds.show(
activity,
UNITY_INTERSTITIAL_ID,
UnityAdsShowOptions(),
UnityAdsShowListener()
)
// showToast("Request Interstitial")
}
fun showRewarded() {
UnityAds.show(
activity,
UNITY_REWARDED_ID,
UnityAdsShowOptions(),
UnityAdsShowListener()
)
// showToast("Request Rewarded")
}
class UnityAdsBannerListener : BannerView.IListener {
override fun onBannerLoaded(p0: BannerView?) {
}
override fun onBannerClick(p0: BannerView?) {
}
override fun onBannerFailedToLoad(p0: BannerView?, p1: BannerErrorInfo?) {
// FOR LOAD FB ADS
// adView.loadAd()
}
override fun onBannerLeftApplication(p0: BannerView?) {
}
}
class UnityAdsShowListener : IUnityAdsShowListener {
override fun onUnityAdsShowFailure(
p0: String?,
p1: UnityAds.UnityAdsShowError?,
p2: String?
) {
}
override fun onUnityAdsShowStart(p0: String?) {
}
override fun onUnityAdsShowClick(p0: String?) {
}
override fun onUnityAdsShowComplete(
p0: String?,
p1: UnityAds.UnityAdsShowCompletionState?
) {
}
}
override fun onInitializationComplete() {
// showToast("initialize complete")
}
override fun onInitializationFailed(p0: UnityAds.UnityAdsInitializationError?, p1: String?) {
// showToast("initialize failed... re init......")
initialize()
}
}
Step 5 - Call All the AdsManager Function in mainacativity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initializeComponents()
}
private fun initializeComponents() {
AdsManger(this).initialize()
val adsLayout: LinearLayout = findViewById(R.id.layout_ad_container)
findViewById<Button>(R.id.interstitial_ad).setOnClickListener {
AdsManger(this).showInterstitial()
}
findViewById<Button>(R.id.rewarded).setOnClickListener {
AdsManger(this).showRewarded()
}
findViewById<Button>(R.id.banner).setOnClickListener {
AdsManger(this).showBanner(adsLayout)
}
}
}
Github Link --- https://github.com/pankajkcodes/UnityAdsInkotlin


