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;
ข้ามอะแดปเตอร์ที่ไม่ได้เริ่มต้น
หากวางแผนที่จะเริ่มต้นหรือยกเว้นอะแดปเตอร์สื่อกลางที่เฉพาะเจาะจง คุณสามารถกำหนดค่าคำขอโฆษณาให้ข้ามอะแดปเตอร์ที่ยังไม่ได้เริ่มต้นซึ่งยังคงอยู่ใน 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.
}];