本頁說明如何初始化 Google Mobile Ads SDK (Beta 版)。
事前準備
如要使用 Google Mobile Ads SDK (Beta 版),您必須整合但不使用中介服務,或是使用 AdMob 做為中介服務平台。其他中介服務平台與 Google Mobile Ads SDK (Beta 版) 不相容。
設定 Google Mobile Ads SDK (Beta 版) 的建構作業
以下各節說明設定 Google Mobile Ads SDK (Beta 版) 的必要步驟。
加入 Google Mobile Ads SDK (Beta 版) 依附元件
Google Mobile Ads SDK (Beta 版) 需要不同的 Gradle 依附元件。在應用程式層級的建構檔中,移除對目前 Mobile Ads 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 Mobile Ads 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
模組
中介服務轉接程式仍會依附目前的 Mobile Ads SDK。不過,Google Mobile Ads SDK (Beta 版) 包含中介服務轉接程式所需的所有類別。為避免發生與重複符號相關的編譯錯誤,您需要排除中介服務轉接程式做為依附元件提取的現有 Mobile Ads SDK。
在應用程式層級的建構檔案中,從所有依附元件全域排除 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 Mobile Ads SDK (Beta 版) 至少需要 Android API 級別 24,且編譯 Android API 級別為 34。將應用程式層級建構檔案中的 minSdk
和 compileSdk
值分別調整為 24 以上和 34 以上。
初始化 Google Mobile Ads SDK (Beta 版)
Google Mobile Ads SDK (Beta 版) 必須先初始化,才能載入廣告。目前的 Mobile Ads SDK 則可選擇是否初始化,但建議初始化。如果您先前未在載入廣告前初始化 SDK,請更新程式碼。
本節說明目前 SDK 與 Google Mobile Ads SDK (Beta 版) 的 SDK 初始化實作差異。
設定 AdMob 應用程式 ID
下列範例會在目前和 Google Mobile Ads SDK (Beta 版) 中設定 AdMob 應用程式 ID:
目前 |
整合時,您需要在應用程式的 AndroidManifest.xml 檔案中,加入含有 AdMob 應用程式 ID 的 <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 Mobile Ads 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 Mobile Ads 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 Mobile Ads 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(); } } |