ใช้การเริ่มต้นอะแดปเตอร์ที่กำหนดค่าได้ (อัลฟ่า)

เลือกแพลตฟอร์ม: Android iOS Android (เดิม)

โดยค่าเริ่มต้น Google Mobile Ads SDK จะเริ่มต้นอะแดปเตอร์สื่อกลางทั้งหมดที่เชื่อมโยงกับ แอปพลิเคชันของคุณในระหว่างการเริ่มต้น การเริ่มต้นใช้งานทุกๆ อะแดปเตอร์อาจใช้เวลามากกว่า 30 วินาที ซึ่งจะทำให้เกิดเวลาในการตอบสนองที่สูงก่อนที่โฆษณาแรกจะโหลดได้

AdMob มีการเริ่มต้นใช้งานอแดปเตอร์ที่กำหนดค่าได้เพื่อแก้ปัญหานี้ ฟีเจอร์นี้ช่วยให้คุณควบคุมได้ว่าจะเริ่มต้นใช้งานอะแดปเตอร์ใดสำหรับการแสดงโฆษณาครั้งแรก และลดเวลาในการตอบสนองสำหรับการแสดงผลนั้น

คู่มือนี้ครอบคลุมแง่มุมต่อไปนี้ของการเริ่มต้นใช้งานอะแดปเตอร์ที่กำหนดค่าได้

ข้อกำหนดเบื้องต้น

  • เลือกใช้ฟีเจอร์นี้โดยเพิ่ม #import <GoogleMobileAds/GoogleMobileAds_Beta.h> ใน Objective-C หรือเพิ่ม import GoogleMobileAds_Private ใน Swift

    Swift

    import GoogleMobileAds
    import GoogleMobileAds_Private
    

    Objective-C

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

สร้างการกำหนดค่าอะแดปเตอร์

การกำหนดค่าการเริ่มต้นอะแดปเตอร์จะสั่งให้ Google Mobile Ads SDK เริ่มต้นเฉพาะอะแดปเตอร์ที่จำเป็นเท่านั้น ซึ่งจะช่วยป้องกันไม่ให้อะแดปเตอร์ที่ไม่จำเป็นบล็อก คำขอโฆษณาแรกของคุณ ทำให้ประหยัดทรัพยากรการประมวลผลและลดเวลาในการตอบสนอง สำหรับการแสดงโฆษณาครั้งแรกได้อย่างมาก

หากต้องการเพิ่มประสิทธิภาพของแอป ให้พิจารณากลยุทธ์ต่อไปนี้ขณะ สร้างการกำหนดค่าการเริ่มต้นของอแดปเตอร์

จัดลำดับความสำคัญของรูปแบบโฆษณาหรือหน่วยโฆษณาที่เฉพาะเจาะจง

ปรับปรุงประสิทธิภาพของแอปที่แสดงโฆษณาทันทีที่เปิดใช้งาน เช่น โฆษณาเปิดแอป โดยประกาศรูปแบบโฆษณาหรือหน่วยโฆษณาที่เฉพาะเจาะจงในการกำหนดค่าการเริ่มต้นอะแดปเตอร์

ตัวอย่างต่อไปนี้สร้างการกำหนดค่าการเริ่มต้นอะแดปเตอร์ที่ เริ่มต้นเฉพาะอะแดปเตอร์สื่อกลางที่จำเป็นสำหรับหน่วยโฆษณาเปิดแอปที่เฉพาะเจาะจง โดยมีระยะหมดเวลา 5 วินาที

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;

ตัวอย่างต่อไปนี้จะสร้างการกำหนดค่าการเริ่มต้นอะแดปเตอร์ที่เริ่มต้นเฉพาะอะแดปเตอร์สื่อกลางที่จำเป็นสำหรับโฆษณาเปิดแอปทั้งหมด และตั้งค่าระยะหมดเวลาเป็น 5 วินาที

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;

เริ่มต้นใช้งานอะแดปเตอร์สื่อกลางที่เฉพาะเจาะจง

หากคุณทราบแน่ชัดว่าพาร์ทเนอร์สื่อกลางรายใดมักจะแสดงการแสดงโฆษณาครั้งแรก คุณสามารถเริ่มต้นเฉพาะอะแดปเตอร์นั้นๆ ได้โดยระบุชื่อคลาสอะแดปเตอร์ในการกำหนดค่าการเริ่มต้นอะแดปเตอร์ ใช้ร่วมกับการข้ามอะแดปเตอร์ที่ไม่ได้เริ่มต้นอย่างชัดเจน และตั้งค่าระยะหมดเวลาสำหรับ Google Mobile Ads SDK เพื่อไม่ให้รออะแดปเตอร์ที่ไม่ได้เริ่มต้นที่เหลือในระหว่างการประมูล

ตัวอย่างต่อไปนี้สร้างการกำหนดค่าการเริ่มต้นอะแดปเตอร์ที่ เริ่มต้นอะแดปเตอร์สื่อกลางที่เฉพาะเจาะจงและตั้งค่าการหมดเวลาเป็น 5 วินาที

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;

ยกเว้นตัวกลางสื่อกลางที่เฉพาะเจาะจง

หากสังเกตเห็นว่าตัวกลางสื่อกลางบางตัวมีเวลาในการตอบสนองสูงอย่างต่อเนื่อง คุณสามารถยกเว้นตัวกลางเหล่านี้และเริ่มต้นในภายหลังได้

ตัวอย่างต่อไปนี้จะสร้างการกำหนดค่าการเริ่มต้นอะแดปเตอร์ที่ยกเว้นอะแดปเตอร์บางรายการจากการเริ่มต้น และตั้งค่าระยะหมดเวลาเป็น 5 วินาที

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;

ข้ามอะแดปเตอร์ที่ไม่ได้เริ่มต้น

หากวางแผนที่จะเริ่มต้นหรือยกเว้นอะแดปเตอร์สื่อกลางที่เฉพาะเจาะจง คุณสามารถกำหนดค่าคำขอโฆษณาให้ข้ามอะแดปเตอร์ที่ยังไม่ได้เริ่มต้นซึ่งยังคงอยู่ใน Waterfall ได้

หากไม่ได้สร้างการกำหนดค่าอะแดปเตอร์ คุณยังคงกำหนดค่าคำขอโฆษณาให้ข้ามอะแดปเตอร์ที่ไม่ได้เริ่มต้นได้ Google Mobile Ads SDK ส่งคำขอโฆษณา โดยไม่ต้องรอให้อะแดปเตอร์หมดเวลาหรือเริ่มต้นไม่สำเร็จ

ตัวอย่างต่อไปนี้จะเริ่มต้น SDK ด้วยการกำหนดค่าการเริ่มต้นอะแดปเตอร์ และสร้างคำขอโฆษณาเปิดแอปที่ข้ามอะแดปเตอร์ที่ไม่ได้เริ่มต้น

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];
                                     }];
                                }];

เริ่มต้นอะแดปเตอร์ที่เหลือ

หลังจากโหลดโอกาสในการแสดงโฆษณาที่คำนึงถึงเวลาแล้ว ให้เริ่มต้นใช้งาน อแดปเตอร์ที่เหลือเพื่อให้มั่นใจว่าพาร์ทเนอร์จะได้รับความครอบคลุมของสื่อกลางอย่างเต็มที่สำหรับเซสชันแอปที่เหลือ

ตัวอย่างต่อไปนี้จะเริ่มต้นอะแดปเตอร์ที่เหลือโดยระบุการกำหนดค่าที่ว่างเปล่า

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.
                                }];