Sử dụng chế độ khởi chạy bộ chuyển đổi có thể định cấu hình (alpha)

Chọn nền tảng: Android iOS Android (Cũ)

Theo mặc định, Google Mobile Ads SDK sẽ khởi chạy tất cả các bộ chuyển đổi dàn xếp được liên kết với ứng dụng của bạn trong quá trình khởi chạy. Việc khởi chạy mọi bộ chuyển đổi có thể mất hơn 30 giây, dẫn đến độ trễ đáng kể trước khi quảng cáo đầu tiên có thể tải.

Để giải quyết vấn đề này, AdMob cung cấp tính năng Khởi tạo bộ chuyển đổi có thể định cấu hình. Tính năng này cho phép bạn kiểm soát những bộ chuyển đổi được khởi chạy cho lượt hiển thị quảng cáo đầu tiên và giảm độ trễ cho lượt hiển thị đó.

Hướng dẫn này đề cập đến những khía cạnh sau đây của quá trình Khởi động trình chuyển đổi có thể định cấu hình:

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

  • Chọn sử dụng tính năng này bằng cách thêm #import <GoogleMobileAds/GoogleMobileAds_Beta.h> trong Objective-C hoặc thêm import GoogleMobileAds_Private trong Swift.

    Swift

    import GoogleMobileAds
    import GoogleMobileAds_Private
    

    Objective-C

    #import <GoogleMobileAds/GoogleMobileAds.h>
    #import <GoogleMobileAds/GoogleMobileAds_Beta.h>
    

Tạo cấu hình bộ chuyển đổi

Cấu hình khởi chạy bộ chuyển đổi hướng dẫn Google Mobile Ads SDK chỉ khởi chạy các bộ chuyển đổi bắt buộc. Điều này giúp ngăn các bộ chuyển đổi không cần thiết chặn yêu cầu quảng cáo đầu tiên của bạn, tiết kiệm tài nguyên tính toán và giảm đáng kể độ trễ cho lượt hiển thị quảng cáo đầu tiên.

Để tối ưu hoá hiệu suất của ứng dụng, hãy cân nhắc các chiến lược sau đây khi bạn tạo cấu hình khởi chạy bộ chuyển đổi:

Ưu tiên một Định dạng quảng cáo hoặc Đơn vị quảng cáo cụ thể

Cải thiện hiệu suất của những ứng dụng hiển thị quảng cáo ngay khi khởi chạy, chẳng hạn như quảng cáo khi mở ứng dụng, bằng cách khai báo định dạng quảng cáo hoặc đơn vị quảng cáo cụ thể trong cấu hình khởi chạy bộ chuyển đổi.

Ví dụ sau đây tạo một cấu hình khởi chạy bộ chuyển đổi chỉ khởi chạy các bộ chuyển đổi hoà giải bắt buộc cho một đơn vị quảng cáo khi mở ứng dụng cụ thể với thời gian chờ là 5 giây:

Swift

let adapterConfig = MediationInitializationConfiguration()
adapterConfig.includedAdUnitIDs = [adUnitID]
adapterConfig.initializationTimeout = 5.0

Objective-C

GADMediationInitializationConfiguration *adapterConfig =
    [[GADMediationInitializationConfiguration alloc] init];
adapterConfig.includedAdUnitIDs = [NSSet setWithArray:@[ kTestAdUnitID ]];
adapterConfig.initializationTimeout = 5.0;

Ví dụ sau đây tạo một cấu hình khởi chạy bộ chuyển đổi chỉ khởi chạy các bộ chuyển đổi dàn xếp bắt buộc cho tất cả Quảng cáo khi mở ứng dụng và đặt thời gian chờ là 5 giây:

Swift

let adapterConfig = MediationInitializationConfiguration()
adapterConfig.includedAdFormats = [AdFormat.appOpen.rawValue as NSNumber]
adapterConfig.initializationTimeout = 5.0

Objective-C

GADMediationInitializationConfiguration *adapterConfig =
    [[GADMediationInitializationConfiguration alloc] init];
adapterConfig.includedAdFormats = [NSSet setWithArray:@[ @(GADAdFormatAppOpen) ]];
adapterConfig.initializationTimeout = 5.0;

Khởi chạy các bộ chuyển đổi dàn xếp cụ thể

Nếu biết chính xác những đối tác dàn xếp thường lấp đầy lượt hiển thị quảng cáo đầu tiên của bạn, thì bạn chỉ có thể khởi động bộ chuyển đổi cụ thể đó bằng cách cung cấp tên lớp bộ chuyển đổi trong cấu hình khởi động bộ chuyển đổi. Kết hợp điều này với việc bỏ qua rõ ràng các bộ chuyển đổi chưa khởi chạy và đặt thời gian chờ cho Google Mobile Ads SDK để không phải chờ các bộ chuyển đổi chưa khởi chạy còn lại trong phiên đấu giá.

Ví dụ sau đây tạo một cấu hình khởi tạo bộ chuyển đổi để khởi tạo một bộ chuyển đổi dàn xếp cụ thể và đặt thời gian chờ là 5 giây:

Swift

let adapterConfig = MediationInitializationConfiguration()
adapterConfig.includedAdapterClasses = [adapterClassName]
adapterConfig.initializationTimeout = 5.0

Objective-C

GADMediationInitializationConfiguration *adapterConfig =
    [[GADMediationInitializationConfiguration alloc] init];
adapterConfig.includedAdapterClasses = [NSSet setWithArray:@[ kTestAdapterClassName ]];
adapterConfig.initializationTimeout = 5.0;

Loại trừ một số bộ điều hợp hoà giải

Nếu nhận thấy một số bộ điều hợp dàn xếp có độ trễ cao liên tục, bạn có thể loại trừ các bộ điều hợp này và khởi động chúng vào lúc khác.

Ví dụ sau đây tạo một cấu hình khởi chạy bộ chuyển đổi loại trừ các bộ chuyển đổi cụ thể khỏi quá trình khởi chạy và đặt thời gian chờ là 5 giây:

Swift

let adapterConfig = MediationInitializationConfiguration()
adapterConfig.excludedAdapterClasses = [adapterClassName]
adapterConfig.initializationTimeout = 5.0

Objective-C

GADMediationInitializationConfiguration *adapterConfig =
    [[GADMediationInitializationConfiguration alloc] init];
adapterConfig.excludedAdapterClasses = [NSSet setWithArray:@[ kTestAdapterClassName ]];
adapterConfig.initializationTimeout = 5.0;

Bỏ qua các bộ chuyển đổi chưa được khởi chạy

Nếu dự định khởi chạy hoặc loại trừ các bộ chuyển đổi dàn xếp cụ thể, bạn có thể định cấu hình yêu cầu quảng cáo để bỏ qua các bộ chuyển đổi chưa khởi chạy vẫn có trong thác nước của bạn.

Nếu không tạo cấu hình bộ chuyển đổi, bạn vẫn có thể định cấu hình yêu cầu quảng cáo để bỏ qua các bộ chuyển đổi chưa được khởi chạy. Google Mobile Ads SDK sẽ đưa ra yêu cầu quảng cáo mà không cần đợi bộ chuyển đổi hết thời gian chờ hoặc không khởi động được.

Ví dụ sau đây khởi chạy SDK bằng cấu hình khởi chạy bộ chuyển đổi và tạo một yêu cầu quảng cáo khi mở ứng dụng để bỏ qua các bộ chuyển đổi chưa khởi chạy:

Swift

await MobileAds.shared.start(with: adapterInitializationConfig)

// Make your ad request after adapter initialization completes.
let request = Request()
// Set this to guarantee that the ad request
// doesn't wait for any other uninitialized adapters.
request.skipUninitializedAdapters = true

do {
  let _ = try await AppOpenAd.load(with: adUnitID, request: request)
} catch {
  print("Failed to load app open ad with error: \(error.localizedDescription)")
  // TODO: Handle error
}

// Handle non time-sensitive tasks after the ad has loaded regardless of whether ad load
// succeeded.
performPostLaunchSetup()

Objective-C


[[GADMobileAds sharedInstance]
    startWithMediationInitializationConfiguration:adapterInitializationConfig
                                completionHandler:^(GADInitializationStatus *_Nonnull status) {
                                  // Make your ad request after adapter initialization
                                  // completes.
                                  GADRequest *request = [GADRequest request];
                                  // Set this to guarantee that the ad request
                                  // doesn't wait for any other uninitialized adapters
                                  request.shouldSkipUninitializedAdapters = YES;

                                  [GADAppOpenAd
                                      loadWithAdUnitID:adUnitID
                                               request:request
                                      completionHandler:^(GADAppOpenAd *_Nullable ad,
                                                          NSError *_Nullable error) {
                                       if (error) {
                                         NSLog(@"Failed to load app open ad with error: %@",
                                               error.localizedDescription);
                                       }

                                       // Handle non time-sensitive tasks after the
                                       // ad has loaded regardless of whether ad load succeeded.
                                       [self performPostLaunchSetup];
                                     }];
                                }];

Khởi chạy các bộ chuyển đổi còn lại

Sau khi các cơ hội quảng cáo nhạy cảm về thời gian đã tải xong, hãy khởi chạy các bộ chuyển đổi còn lại để đảm bảo phạm vi dàn xếp đầy đủ của đối tác cho phần còn lại của phiên ứng dụng.

Ví dụ sau đây khởi chạy các bộ chuyển đổi còn lại bằng cách cung cấp một cấu hình trống:

Swift


// Provide start with nil to initialize any adapters
// not initialized with configurable initialization.
MobileAds.shared.start(with: nil) { status in
  // Remaining adapters are now initialized.
}

Objective-C


// Call start with nil to initialize any adapters not initialized via configurable initialization.
[[GADMobileAds sharedInstance]
    startWithMediationInitializationConfiguration:nil
                                completionHandler:^(GADInitializationStatus *_Nonnull status) {
                                  // Remaining adapters are now initialized.
                                }];