參考資料 ----
app 層級的 build.gradle
dependencies {
...
...
// adMob
implementation 'com.google.android.gms:play-services-ads:22.0.0'
}
apply plugin: 'com.google.gms.google-services'
AndroidManifest.xml
<application
...
...>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="@string/admob_app_id" />
...
...
string.xml
<!-- adMob app id 測試 --> <string name="admob_app_id">ca-app-pub-3940256099942544~3347511713</string> <!-- 橫幅 測試 --> <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>; <!-- 插頁 測試 --> <string name="interstitial_ad_unit_id">ca-app-pub-3940256099942544/8691691433</string> <!-- 影片 測試 --> <string name="video_ad_id">ca-app-pub-3940256099942544/5224354917</string>
MainActivity.kt
...
...
import com.google.android.gms.ads.AdError
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.FullScreenContentCallback
import com.google.android.gms.ads.interstitial.InterstitialAd
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback
class MyActivity : Activity()
{
var mInterstitialAd: InterstitialAd? = null
...
...
override fun onResume()
{
var adRequest = AdRequest.Builder().build()
InterstitialAd.load(this,getString(R.string.interstitial_ad_unit_id), adRequest, object : InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d(TAG, adError.toString())
mInterstitialAd = null
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
Log.d(TAG, "Ad was loaded.")
mInterstitialAd = interstitialAd
}
})
super.onResume()
}
// 當 usser 按了按鈕時
fun onImgClicked(vv: View)
{
toWatchIntersticialAd()
}
// 觀看插頁廣告
private fun toWatchIntersticialAd()
{
val random = Random()
if ((mInterstitialAd!=null) && (random.nextInt(3)==0))
// if(mInterstitialAd!= null) // 測試用, 每次都播放
{
// 若廣告已載入, 且亂數是 3 的倍數, 則播放
// (AdMob 規定: 插頁播放的比例須 < 50%)
mInterstitialAd?.fullScreenContentCallback =
object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
Log.d(TAG, "Ad was dismissed.")
// user 關閉廣告, 回主畫面
mInterstitialAd = null
// 返回主畫面
NavUtils.navigateUpFromSameTask(this@MyActivity)
}
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
Log.d(TAG, "Ad failed to show.")
mInterstitialAd = null
// 返回主畫面
NavUtils.navigateUpFromSameTask(this@MyActivity)
}
override fun onAdShowedFullScreenContent() {
Log.d(TAG, "Ad showed fullscreen content.")
// Called when ad is dismissed.
}
}
mInterstitialAd!!.show(this)
}
else
// 直接返回主畫面
NavUtils.navigateUpFromSameTask(this)
}
}
沒有留言:
張貼留言