Khởi chạy SDK

Trang này trình bày hướng dẫn cách khởi chạy SDK quảng cáo trên thiết bị di động thế hệ mới.

Trước khi bắt đầu

Để sử dụng SDK Quảng cáo trên thiết bị di động thế hệ mới, bạn phải tích hợp mà không cần dàn xếp hoặc sử dụng Ad Manager 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 thế hệ mới.

Định cấu hình bản dựng cho SDK quảng cáo trên thiết bị di động thế hệ mới

Các phần sau đây cho bạn biết 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 thế hệ mới.

Thêm phần phụ thuộc SDK quảng cáo trên thiết bị di động thế hệ mới

SDK Quảng cáo trên thiết bị di động thế hệ mới 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á nội dung 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.4.0")
}

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:24.4.0'
}
Thế hệ mới

Kotlin

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation("com.google.android.gms:play-services-ads:24.4.0")
  implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.17.0-alpha02")
}

Groovy

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation 'com.google.android.gms:play-services-ads:24.4.0'
  implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.17.0-alpha02'
}

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 tiếp tục 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 thế hệ mới 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 ký hiệu 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 các bộ chuyển đổi dàn xếp lấy làm phần phụ thuộc.

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ầu 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à biên dịch

SDK Quảng cáo trên thiết bị di động thế hệ mới yêu cầu API Android cấp 24 trở lên và API Android biên dịch cấp 34. Điều chỉnh các 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 thế hệ mới

SDK Quảng cáo trên thiết bị di động thế hệ mới yêu cầu khởi chạy trước khi tải quảng cáo. Đây là điểm khác biệt 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ã của bạn 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 cách triển khai quá trình khởi chạy SDK giữa SDK quảng cáo trên thiết bị di động hiện tại và SDK quảng cáo trên thiết bị di động thế hệ mới.

Đặt mã ứng dụng Ad Manager

Các ví dụ sau đây thiết lập mã ứng dụng Ad Manager trong SDK Quảng cáo trên thiết bị di động hiện tại và thế hệ mới:

Hiện tại

Để tích hợp, bạn cần có thẻ <meta-data> với android:name="com.google.android.gms.ads.APPLICATION_ID" chứa mã ứng dụng Ad Manager trong tệp AndroidManifest.xml của ứng dụng.

<manifest>
  <application>
    <!-- Sample Ad Manager 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>
Thế hệ mới

Cung cấp mã ứng dụng Ad Manager 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 the Google Mobile Ads SDK.
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

Xem xét các thay đổi về cách triển khai

Các ví dụ sau đây khởi chạy SDK quảng cáo trên thiết bị di động hiện tại và thế hệ mớ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 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();
  }
}
Thế hệ mớ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 phải gọi phương thức này trên luồng ở chế độ nền, nếu không, có thể gâ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 the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(
        this@MainActivity,
        // Sample Ad Manager 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 the Google Mobile Ads SDK on a background thread.
              MobileAds.initialize(
                  this,
                  // Sample Ad Manager 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();
  }
}