本页面介绍了如何初始化 Google 移动广告 SDK(Beta 版)。
准备工作
如需使用 Google 移动广告 SDK(Beta 版),您必须集成该 SDK,但不使用中介,或者使用 AdMob 作为中介平台。其他中介平台与 Google 移动广告 SDK(Beta 版)不兼容。
为 Google 移动广告 SDK(Beta 版)配置 build
以下部分将介绍配置 Google 移动广告 SDK(Beta 版)的必要步骤。
添加 Google 移动广告 SDK(Beta 版)依赖项
Google 移动广告 SDK(Beta 版)需要不同的 Gradle 依赖项。在应用级 build 文件中,移除对当前移动广告 SDK 依赖项的引用,并添加新的制品。
Gradle 依赖项 | |
---|---|
当前 |
Kotlindependencies { // ... implementation("com.google.android.gms:play-services-ads:24.7.0") } Groovydependencies { // ... implementation 'com.google.android.gms:play-services-ads:24.7.0' } |
Google 移动广告 SDK(Beta 版) |
Kotlindependencies { // ... // Comment out/remove play-services-ads. // implementation("com.google.android.gms:play-services-ads:24.7.0") implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.21.0-beta01") } Groovydependencies { // ... // Comment out/remove play-services-ads. // implementation 'com.google.android.gms:play-services-ads:24.7.0' implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.21.0-beta01' } |
排除中介集成中的 com.google.android.gms
模块
中介适配器仍依赖于当前的移动广告 SDK。不过,Google 移动广告 SDK(Beta 版)包含中介适配器所需的所有类。为避免出现与重复符号相关的编译错误,您需要排除当前移动广告 SDK,以防止中介适配器将其作为依赖项拉取。
在应用级 build 文件中,从所有依赖项中全局排除 play-services-ads
和 play-services-ads-lite
模块。
Kotlin
configurations.all { exclude(group = "com.google.android.gms", module = "play-services-ads") exclude(group = "com.google.android.gms", module = "play-services-ads-lite") }
Groovy
configurations { all { exclude(group = "com.google.android.gms", module = "play-services-ads") exclude(group = "com.google.android.gms", module = "play-services-ads-lite") } }
设置最低和编译 Android API 级别
Google 移动广告 SDK(Beta 版)要求最低 Android API 级别为 24,编译 Android API 级别为 34。将应用级 build 文件中的 minSdk
和 compileSdk
值分别调整为 24 或更高值和 34 或更高值。
初始化 Google 移动广告 SDK(Beta 版)
Google 移动广告 SDK(Beta 版)要求在加载广告之前进行初始化,这与当前移动广告 SDK 不同,后者虽然建议进行初始化,但并非强制要求。 如果您之前未在加载广告之前初始化 SDK,请更新您的代码。
本部分介绍了当前 SDK 与 Google 移动广告 SDK(Beta 版)在 SDK 初始化实现方面的差异。
设置 AdMob 应用 ID
以下示例在当前 Google 移动广告 SDK(Beta 版)中设置了 AdMob 应用 ID:
当前 |
集成需要在应用的 AndroidManifest.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="SAMPLE_APP_ID"/> </application> </manifest> |
Google 移动广告 SDK(Beta 版) |
以编程方式提供 AdMob 应用 ID,作为 SDK 初始化的一部分。 Kotlin// Initialize the Google Mobile Ads SDK. val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build() MobileAds.initialize(this@MainActivity, initConfig) {} Java// Initialize Google Mobile Ads SDK (beta). InitializationConfig initConfig = new InitializationConfig.Builder("SAMPLE_APP_ID").build(); MobileAds.initialize(this, initConfig, initializationStatus -> {}); |
查看实现变更
以下示例初始化了当前版本的 Google 移动广告 SDK 和 Google 移动广告 SDK(Beta 版):
当前 |
调用 Kotlinimport com.google.android.gms.ads.MobileAds import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val backgroundScope = CoroutineScope(Dispatchers.IO) backgroundScope.launch { // Initialize the Google Mobile Ads SDK on a background thread. MobileAds.initialize(this@MainActivity) {} } } } Javaimport com.google.android.gms.ads.MobileAds; import com.google.android.gms.ads.initialization.InitializationStatus; import com.google.android.gms.ads.initialization.OnInitializationCompleteListener; public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread( () -> { // Initialize the Google Mobile Ads SDK on a background thread. MobileAds.initialize(this, initializationStatus -> {}); }) .start(); } } |
Google 移动广告 SDK(Beta 版) |
调用 Kotlinimport com.google.android.libraries.ads.mobile.sdk.MobileAds import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val backgroundScope = CoroutineScope(Dispatchers.IO) backgroundScope.launch { // Initialize Google Mobile Ads SDK (beta) on a background thread. MobileAds.initialize( this@MainActivity, // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 InitializationConfig.Builder("SAMPLE_APP_ID").build() ) { // Adapter initialization is complete. } // Other methods on MobileAds can now be called. } } } Javaimport com.google.android.libraries.ads.mobile.sdk.MobileAds; import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig; public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread( () -> { // Initialize Google Mobile Ads SDK (beta) on a background thread. MobileAds.initialize( this, // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 new InitializationConfig.Builder("SAMPLE_APP_ID") .build(), initializationStatus -> { // Adapter initialization is complete. }); // Other methods on MobileAds can now be called. }) .start(); } } |