Thiết lập dàn xếp

Hướng dẫn này cho bạn biết cách tích hợp bộ chuyển đổi dàn xếp vào ứng dụng Android.

Điều kiện tiên quyết

Trước khi tích hợp tính năng dàn xếp cho một định dạng quảng cáo, bạn cần tích hợp định dạng quảng cáo đó vào ứng dụng của mình:

Bạn mới làm quen với tính năng dàn xếp? Hãy đọc bài viết Giới thiệu về tính năng dàn xếp.

Khởi chạy GMA Next-Gen SDK

Hướng dẫn bắt đầu nhanh cho bạn biết cách khởi chạy GMA Next-Gen SDK. Trong lệnh gọi khởi chạy đó, các bộ chuyển đổi dàn xếp cũng được khởi chạy. Bạn cần phải đợi quá trình khởi chạy hoàn tất trước khi tải quảng cáo để xác minh rằng mọi mạng quảng cáo đều có trong yêu cầu quảng cáo đầu tiên.

Mã mẫu sau đây cho thấy cách kiểm tra trạng thái khởi chạy của từng bộ chuyển đổi trước khi thực hiện yêu cầu quảng cáo.

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, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
        initializationStatus ->
        for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
          Log.d(
            "MyApp",
            String.format(
              "Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
              adapterName,
              adapterStatus.initializationState,
              adapterStatus.description,
              adapterStatus.latency,
            ),
          )
        }
        // 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.AdapterStatus;
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,
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    Map<String, AdapterStatus> adapterStatusMap =
                        initializationStatus.getAdapterStatusMap();
                    for (String adapterClass : adapterStatusMap.keySet()) {
                      AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
                      Log.d(
                          "MyApp",
                          String.format(
                              "Adapter name: %s, Status code: %s, Status description: %s,"
                                  + " Latency: %d",
                              adapterClass,
                              adapterStatus.getInitializationState(),
                              adapterStatus.getDescription(),
                              adapterStatus.getLatency()));
                    }
                    // Adapter initialization is complete.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}

Loại trừ các mô-đun com.google.android.gms trong quá trình tích hợp tính năng 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ộ 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ừ hiện tại Google Mobile Ads SDK khỏi việc được kéo vào dưới dạng phần phụ thuộc của bộ chuyển đổi dàn xếp.

Trong tệp build.gradle ở cấp ứng dụng, hãy loại trừ cả 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.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"
}

Kiểm tra xem lớp bộ chuyển đổi nào của mạng quảng cáo đã tải quảng cáo

Dưới đây là một số mã mẫu sẽ ghi nhật ký tên lớp mạng quảng cáo cho quảng cáo biểu ngữ:

Kotlin

BannerAd.load(
  BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  object : AdLoadCallback<BannerAd> {
    override fun onAdLoaded(ad: BannerAd) {
      Log.d(
        "MyApp", "Adapter class name: " +
          ad.getResponseInfo().mediationAdapterClassName
      )
    }
  }
)

Java

BannerAd.load(
  new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  new AdLoadCallback<BannerAd>() {
    @Override
    public void onAdLoaded(@NonNull BannerAd ad) {
      Log.d("MyApp",
          "Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
    }
  }
);

Hãy đảm bảo tắt tính năng làm mới trong tất cả các giao diện người dùng nguồn quảng cáo bên thứ ba cho đơn vị quảng cáo biểu ngữ dùng trong hoạt động dàn xếp. Điều này sẽ giúp tránh xảy ra hiện tượng làm mới hai lần do Ad Manager cũng kích hoạt một lần làm mới dựa trên tốc độ làm mới của đơn vị quảng cáo biểu ngữ.

Luật về quyền riêng tư của các bang tại Hoa Kỳ và GDPR

Nếu bạn cần tuân thủ luật về quyền riêng tư của các bang tại Hoa Kỳ hoặc Quy định chung về bảo vệ dữ liệu (GDPR), hãy làm theo các bước trong phần cài đặt quy định của các bang tại Hoa Kỳ hoặc phần cài đặt GDPR để thêm các đối tác dàn xếp của bạn vào danh sách đối tác quảng cáo theo quy định của các bang tại Hoa Kỳ hoặc danh sách đối tác quảng cáo theo GDPR trong phần Quyền riêng tư và thông báo của Ad Manager. Các đối tác sẽ không thể phân phát quảng cáo trên ứng dụng của bạn nếu bạn không làm việc này.

Tìm hiểu thêm về cách bật chế độ xử lý dữ liệu bị hạn chế (RDP) và thu thập sự đồng ý theo GDPR bằng SDK Nền tảng thông báo cho người dùng (UMP) của Google.