如何在 android studio 中实现 Admob 插页式广告 - Kotlin

Posted

技术标签:

【中文标题】如何在 android studio 中实现 Admob 插页式广告 - Kotlin【英文标题】:How to implement Admob Interstitial Ad in android studio - Kotlin 【发布时间】:2021-08-24 14:12:27 【问题描述】:

我是一名初学者,我需要帮助在 android studio 中使用 Kotlin 实施 Admob 插页式广告。对不起我的问题,如果你能一步一步地向我展示,那么我可以学习这个过程并每隔一段时间自己做一次。提前致谢。

package com.example.myapplication

import android.content.ContentValues.TAG
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.TextView
import com.google.android.gms.ads.*
import com.google.android.gms.ads.interstitial.InterstitialAd
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback

class MainActivity : AppCompatActivity() 

    private var mInterstitialAd: InterstitialAd? = null


    override fun onCreate(savedInstanceState: Bundle?) 
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val one_Page: TextView = findViewById(R.id.one_Page)
        val three_Page: TextView = findViewById(R.id.three_Page)

   

        one_Page.setOnClickListener 
            val intent = Intent(this, PageActivity2::class.java)
            // start your next activity
            startActivity(intent)

        
        three_Page.setOnClickListener 
            val intent = Intent(this, PageActivity2::class.java)
            // start your next activity
            startActivity(intent)
        


    

【问题讨论】:

这可能有帮助youtube.com/watch?v=ynOqwzD21cs 【参考方案1】:

我认为您可能遗漏了几个步骤以使其正确,请按照以下步骤操作:

注意:我将使用示例 ID 加载演示广告,您需要确保它可以正常工作,然后考虑将示例 ID 替换为真实 ID

1:设置 Admob 依赖项:

implementation 'com.google.android.gms:play-services-ads:20.1.0'

2:在<application>标签内的AndroidManifest.xml中添加sn-p代码

<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<!-- Replace sample id if you have a real id from AdMob project - pattern ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy --> 
<meta-data
     android:name="com.google.android.gms.ads.APPLICATION_ID"
     android:value="ca-app-pub-3940256099942544~3347511713"/>

3:初始化 Admob 并加载广告:

import com.google.android.gms.ads.interstitial.InterstitialAd
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback
class MainActivity : AppCompatActivity() 
  private var mInterstitialAd: InterstitialAd? = null
  private final var TAG = 'MainActivity'
    override fun onCreate(savedInstanceState: Bundle?) 
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)

      // Initialize Admob
      MobileAds.initialize(this) 
      var adRequest = AdRequest.Builder().build()
      // ca-app-pub-3940256099942544/1033173712 is a sample interstial id. 
      InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest, object : InterstitialAdLoadCallback() 
        override fun onAdFailedToLoad(adError: LoadAdError) 
          Log.d(TAG, adError?.message)
          mInterstitialAd = null
        

        override fun onAdLoaded(interstitialAd: InterstitialAd) 
          Log.d(TAG, 'Ad was loaded.')
          mInterstitialAd = interstitialAd
        
      )
    

4:在InterstitialAd.load下面添加FullScreenContentCallback:

mInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() 
  override fun onAdDismissedFullScreenContent() 
    Log.d(TAG, 'Ad was dismissed.')
  

  override fun onAdFailedToShowFullScreenContent(adError: AdError?) 
    Log.d(TAG, 'Ad failed to show.')
  

  override fun onAdShowedFullScreenContent() 
    Log.d(TAG, 'Ad showed fullscreen content.')
    mInterstitialAd = null;
  

6:将 showFullAd 添加到 MainActivity 并在要显示的 Activity 中调用 showFullAd

fun showFullAd()
    if (mInterstitialAd != null) 
      mInterstitialAd?.show(this)
     else 
      Log.d("TAG", "The interstitial ad wasn't ready yet.")
    

查看更多:

Get Started with Admob Implement Interstitial ads

【讨论】:

【参考方案2】:

https://developers.google.com/admob/android/interstitial#kotlin 解释了如何请求插页式广告。您上面的代码创建了一个mInterstitialAd 变量,但仍需要:

    加载广告 在应用的自然停止点展示广告

【讨论】:

感谢您的反馈。我的问题是我已经尝试了这个过程,但没有做对。如果您可以帮助我在上面的问题中发布的代码,我需要一步一步来。

以上是关于如何在 android studio 中实现 Admob 插页式广告 - Kotlin的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio:如何从 Fragment 在 ActionBar 中实现后退按钮

Android Studio 如何在 LinearLayout 元素中实现锚链接?

如何在 android studio 中实现 Admob 插页式广告 - Kotlin

如何在 Java 和 android studio 中实现 Canny Edge Detector

在 Android Studio 中实现 ArrayList 的最佳方法

在 Android Studio 中实现导航抽屉的问题