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ủa bạn có thể tải.

Để giải quyết vấn đề này, AdMob cung cấp tính năng Khởi chạy bộ chuyển đổi có thể định cấu hình. Tính năng này giú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 các khía cạnh sau của tính năng Khởi chạy bộ 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 khi bạn tạo cấu hình khởi chạy bộ chuyển đổi:

Ưu tiên Đị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 dàn xếp 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 đối tác dàn xếp nào thường lấp đầy lượt hiển thị quảng cáo đầu tiên, bạn có thể chỉ khởi chạy 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 chạy 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 chạy bộ chuyển đổi để khởi chạy 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ộ chuyển đổi dàn xếp

Nếu nhận thấy một số bộ chuyển đổi dàn xếp nhất định có độ trễ cao liên tục, bạn có thể loại trừ các bộ chuyển đổi này và khởi chạy 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 có giới hạn thời gian đã tải, 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.
                                }];