Trang này hướng dẫn cách khởi động GMA Next-Gen SDK.
Trước khi bắt đầu
Để sử dụng GMA Next-Gen SDK, bạn phải tích hợp mà không cần dàn xếp hoặc sử dụng AdMob làm nền tảng dàn xếp. Các nền tảng dàn xếp khác không tương thích với GMA Next-Gen SDK.
Định cấu hình bản dựng cho GMA Next-Gen SDK
Các phần sau đây cho biết các bước cần thiết để định cấu hình GMA Next-Gen SDK.
Đưa phần phụ thuộc GMA Next-Gen SDK vào
GMA Next-Gen SDK yêu cầu một phần phụ thuộc Gradle khác. Trong tệp bản dựng ở cấp ứng dụng, hãy xoá thông tin tham chiếu đến phần phụ thuộc Google Mobile Ads SDK và thêm cấu phần phần mềm mới.
| Phần phụ thuộc Gradle | |
|---|---|
| Google Mobile Ads SDK |
Kotlindependencies { // ... implementation("com.google.android.gms:play-services-ads:25.4.0") } Groovydependencies { // ... implementation 'com.google.android.gms:play-services-ads:25.4.0' } |
| GMA Next-Gen SDK |
Kotlindependencies { // ... // Comment out/remove play-services-ads. // implementation("com.google.android.gms:play-services-ads:25.4.0") implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.2.1") } Groovydependencies { // ... // Comment out/remove play-services-ads. // implementation 'com.google.android.gms:play-services-ads:25.4.0' implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.2.1' } |
Loại trừ các mô-đun com.google.android.gms trong các chế độ tích hợp dàn xếp
Bộ chuyển đổi dàn xếp vẫn phụ thuộc vào Google Mobile Ads SDK. Tuy nhiên, GMA Next-Gen SDK bao gồm tất cả các lớp mà bộ điều hợp dàn xếp yêu cầu. Để tránh các lỗi biên dịch liên quan đến các ký hiệu trùng lặp, bạn cần loại trừ Google Mobile Ads SDK khỏi việc được kéo vào dưới dạng một phần phụ thuộc của các bộ điều hợp dàn xếp.
Trong tệp bản dựng ở cấp ứng dụng, hãy loại trừ cả mô-đun play-services-ads và play-services-ads-lite trên toàn cục khỏi tất cả các phần phụ thuộc.
Kotlin
configurations.configureEach { exclude(group = "com.google.android.gms", module = "play-services-ads") exclude(group = "com.google.android.gms", module = "play-services-ads-lite") }
Groovy
configurations.configureEach { exclude group: "com.google.android.gms", module: "play-services-ads" exclude group: "com.google.android.gms", module: "play-services-ads-lite" }
Đặt cấp độ API tối thiểu và cấp độ API biên dịch trên Android
GMA Next-Gen SDK yêu cầu cấp độ API Android tối thiểu là 24 và cấp độ API Android biên dịch là 34. Điều chỉnh giá trị minSdk và compileSdk trong tệp bản dựng cấp ứng dụng thành lần lượt là 24 trở lên và 34 trở lên.
Khởi chạy GMA Next-Gen SDK
GMA Next-Gen SDK yêu cầu khởi chạy trước khi tải quảng cáo, đây là một thay đổi so với Google Mobile Ads SDK, trong đó việc khởi chạy là không bắt buộc nhưng nên thực hiện. Cập nhật mã nếu trước đây bạn chưa khởi chạy SDK trước khi tải quảng cáo.
Phần này trình bày sự khác biệt trong quá trình triển khai khởi chạy SDK giữa Google Mobile Ads SDK và GMA Next-Gen SDK.
Đặt mã ứng dụng AdMob
Các ví dụ sau đây đặt mã ứng dụng AdMob trong Google Mobile Ads SDK và GMA Next-Gen SDK:
| Google Mobile Ads SDK |
Hoạt động tích hợp yêu cầu thẻ <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> |
| GMA Next-Gen SDK |
Cung cấp mã ứng dụng AdMob theo phương thức lập trình trong quá trình khởi chạy SDK. Kotlin// Initialize the Google Mobile Ads SDK. val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build() MobileAds.initialize(this@MainActivity, initConfig) {} Java// Initialize GMA Next-Gen SDK. InitializationConfig initConfig = new InitializationConfig.Builder("SAMPLE_APP_ID").build(); MobileAds.initialize(this, initConfig, initializationStatus -> {}); |
Xem xét các thay đổi về việc triển khai
Các ví dụ sau đây khởi chạy Google Mobile Ads SDK và GMA Next-Gen SDK:
| Google Mobile Ads SDK |
Gọi 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(); } } |
| GMA Next-Gen SDK |
Gọi 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 GMA Next-Gen SDK 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. } // SDK initialization is complete. If you don't want to wait for bidding adapters to finish // initializing, start loading ads now. } } } 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 GMA Next-Gen SDK 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. }); // SDK initialization is complete. If you don't want to wait for bidding adapters to // finish initializing, start loading ads now. }) .start(); } } |