Khởi chạy SDK

Trang này trình bày hướng dẫn khởi chạy SDK Quảng cáo của Google trên thiết bị di động (beta).

Trước khi bắt đầu

Để sử dụng SDK Quảng cáo của Google trên thiết bị di động (beta), 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 SDK quảng cáo trên thiết bị di động của Google (thử nghiệm beta).

Định cấu hình bản dựng cho SDK Quảng cáo của Google trên thiết bị di động (bản thử nghiệm)

Các phần sau đây hướng dẫn bạn các bước cần thiết để định cấu hình SDK quảng cáo trên thiết bị di động của Google (bản thử nghiệm).

Thêm phần phụ thuộc SDK Quảng cáo của Google trên thiết bị di động (thử nghiệm)

SDK Quảng cáo của Google trên thiết bị di động (bản thử nghiệm) 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 SDK Quảng cáo trên thiết bị di động hiện tại và thêm cấu phần phần mềm mới.

Phần phụ thuộc Gradle
Hiện tại

Kotlin

dependencies {
  // ...
  implementation("com.google.android.gms:play-services-ads:24.7.0")
}

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:24.7.0'
}
SDK Quảng cáo của Google trên thiết bị di động (thử nghiệm)

Kotlin

dependencies {
  // ...
  // 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")
}

Groovy

dependencies {
  // ...
  // 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'
}

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 SDK Quảng cáo trên thiết bị di động hiện tại. Tuy nhiên, SDK quảng cáo trên thiết bị di động của Google (bản thử nghiệm) bao gồm tất cả các lớp mà bộ chuyển đổi dàn xếp yêu cầu. Để tránh lỗi biên dịch liên quan đến các biểu tượng trùng lặp, bạn cần loại trừ SDK Quảng cáo trên thiết bị di động hiện tại 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-adsplay-services-ads-lite trên toàn cục khỏi tất cả các phần phụ thuộc.

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")
  }
}

Đặt cấp độ API Android tối thiểu và cấp độ API Android để biên dịch

SDK quảng cáo trên thiết bị di động của Google (beta) yêu cầu API Android tối thiểu là cấp 24 và API Android biên dịch là cấp 34. Điều chỉnh giá trị minSdkcompileSdk trong tệp bản dựng cấp ứng dụng thành 24 trở lên và 34 trở lên, tương ứng.

Khởi chạy SDK Quảng cáo của Google trên thiết bị di động (phiên bản thử nghiệm)

SDK quảng cáo trên thiết bị di động của Google (bản thử nghiệm) 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 SDK quảng cáo trên thiết bị di động hiện tại, 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 những điểm khác biệt trong quá trình triển khai khởi chạy SDK giữa SDK hiện tại và SDK quảng cáo trên thiết bị di động của Google (beta).

Đặt mã ứng dụng AdMob

Các ví dụ sau đây đặt mã ứng dụng AdMob trong SDK Quảng cáo của Google trên thiết bị di động (phiên bản thử nghiệm) và SDK hiện tại:

Hiện tại

Hoạt động tích hợp yêu cầu thẻ <meta-data>android:name="com.google.android.gms.ads.APPLICATION_ID" chứa mã ứng dụng AdMob trong tệp AndroidManifest.xml của ứng dụng.

<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>
SDK Quảng cáo của Google trên thiết bị di động (thử nghiệm)

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 Google Mobile Ads SDK (beta).
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 SDK Quảng cáo của Google trên thiết bị di động (phiên bản thử nghiệm) và SDK hiện tại:

Hiện tại

Gọi MobileAds.initialize() để khởi chạy SDK Quảng cáo của Google trên thiết bị di động. Bạn nên khởi chạy trên một luồng nền để giảm lỗi ANR.

Kotlin

import 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) {}
    }
  }
}

Java

import 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();
  }
}
SDK Quảng cáo của Google trên thiết bị di động (thử nghiệm)

Gọi MobileAds.initialize() để khởi chạy SDK Quảng cáo của Google trên thiết bị di động (beta). Bạn phải gọi phương thức này trên một luồng nền. Nếu không, có thể xảy ra lỗi "Ứng dụng không phản hồi" (ANR).

Kotlin

import 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.
    }
  }
}

Java

import 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();
  }
}