Use AdMob with Firebase
build.gradle
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.2'
}
}
app/build.gradle
class Version {
class Firebase {
static def analytics = "17.2.0"
static def ads = "18.2.0"
}
}
dependencies {
implementation "com.google.firebase:firebase-analytics:$Version.Firebase.analytics"
implementation "com.google.firebase:firebase-ads:$Version.Firebase.ads"
}
apply plugin: 'com.google.gms.google-services'
Manifest.xml
<manifest>
<application>
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="[ADMOB_APP_ID]"/>
</application>
</manifest>
MyApplication.kt
class MyApplication: Application() {
override fun onCreate() {
super.onCreate()
MobileAds.initialize(this)
}
}
AdView
fragment.xml
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-123456/123456"
ads:layout_constraintBottom_toBottomOf="parent"
ads:layout_constraintLeft_toLeftOf="parent"
ads:layout_constraintRight_toRightOf="parent"/>
Fragment.kt
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView
val request = AdRequest.Builder().build()
adView.loadAd(request)
Troubleshooting
Link your app to Firebase option not showing
- https://support.google.com/admob/answer/6383165?authuser=0
- Use standalone AdMob https://developers.google.com/admob/android/quick-start
app/build.gradle
dependencies {
implementation 'com.google.android.gms:play-services-ads:18.2.0'
}
Cannot fit requested classes in a single dex file
app/build.gradle
android {
defaultConfig {
multiDexEnabled true
}
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
Read more
Original post https://github.com/onmyway133/blog/issues/431
Top comments (0)