Khởi chạy GMA Next-Gen SDK

Trang này trình bày hướng dẫn khởi chạy 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 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 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.

Thêm phần phụ thuộc vào GMA Next-Gen SDK

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á tham chiếu đến phần phụ thuộc vào SDK Quảng cáo hiện tại trên thiết bị di động và thêm cấu phần phần mềm mới.

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

Kotlin

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

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:25.1.0'
}
GMA Next-Gen SDK

Kotlin

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

Groovy

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation 'com.google.android.gms:play-services-ads:25.1.0'
  implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.25.0-beta01'
}

Loại trừ các mô-đun com.google.android.gms trong quá trình 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 hiện tại trên thiết bị di động. Tuy nhiên, GMA Next-Gen SDK 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 hiện tại trên thiết bị di động khỏi việc được bộ chuyển đổi dàn xếp kéo vào dưới dạng một phần phụ thuộc.

Trong tệp bản dựng cấp ứng dụng, hãy loại trừ cả play-services-adsplay-services-ads-lite mô-đun 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à biên dịch API Android

GMA Next-Gen SDK yêu cầu cấp độ API tối thiểu của Android là 24 và cấp độ API biên dịch của Android là 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.

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 SDK Quảng cáo hiện tại trên thiết bị di động, trong đó việc khởi chạy là không bắt buộc nhưng nên thực hiện. Hãy 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 hiện tại và GMA Next-Gen SDK.

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

Các ví dụ sau đây đặt mã ứng dụng Ad Manager trong SDK hiện tại và GMA Next-Gen SDK:

Hiện tại

Quá trình 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 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>
GMA Next-Gen SDK

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 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ề cách triển khai

Các ví dụ sau đây khởi động SDK hiện tại và GMA Next-Gen SDK:

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();
  }
}
GMA Next-Gen SDK

Gọi MobileAds.initialize() để khởi chạy GMA Next-Gen SDK. Bạn phải gọi phương thức này trên một luồng nền. Nếu không, lỗi "Ứng dụng không phản hồi" (ANR) có thể xảy ra.

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 GMA Next-Gen 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.
      }
      // SDK initialization is complete. If you don't want to wait for bidding adapters to finish
      // initializing, start loading ads now.
    }
  }
}

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 GMA Next-Gen 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.
                  });
              // SDK initialization is complete. If you don't want to wait for bidding adapters to
              // finish initializing, start loading ads now.
            })
        .start();
  }
}