AdMob มีการเริ่มต้นอะแดปเตอร์ที่กำหนดค่าได้เพื่อแก้ปัญหานี้ ฟีเจอร์นี้ช่วยให้คุณควบคุมได้ว่าจะเริ่มต้นอะแดปเตอร์ใดสำหรับการแสดงโฆษณาครั้งแรก และลดเวลาในการตอบสนองสำหรับการแสดงโฆษณานั้น
คู่มือนี้ครอบคลุมลักษณะต่อไปนี้ของการเริ่มต้นอะแดปเตอร์ที่กำหนดค่าได้
ข้อกำหนดเบื้องต้น
- นำเข้า Google Mobile Ads SDK 13.4.0 ขึ้นไป
- ตั้งค่า Google Mobile Ads SDK
เลือกใช้ฟีเจอร์นี้โดยเพิ่ม
#import <GoogleMobileAds/GoogleMobileAds_Beta.h>ใน Objective-C หรือเพิ่มimport GoogleMobileAds_Privateใน SwiftSwift
import GoogleMobileAds import GoogleMobileAds_PrivateObjective-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.
}];