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

เลือกแพลตฟอร์ม: 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;

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

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

หากไม่ได้สร้างการกำหนดค่าอะแดปเตอร์ คุณก็ยังกำหนดค่าคำขอโฆษณาให้ข้ามอะแดปเตอร์ที่ไม่ได้เริ่มต้นได้ 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.
                                }];