SDK สำหรับ User Messaging Platform (UMP) ของ Google เป็นเครื่องมือด้านความเป็นส่วนตัวและการรับส่งข้อความเพื่อช่วยคุณจัดการตัวเลือกความเป็นส่วนตัว ดูข้อมูลเพิ่มเติมได้ที่ เกี่ยวกับความเป็นส่วนตัวและการรับส่งข้อความ คุณสามารถดูการใช้งาน IMA ที่ใช้งานได้กับ UMP SDK ในแอปตัวอย่าง UMP ที่ใช้ภาษา Objective-C หรือ Swift
สร้างประเภทข้อความ
สร้างข้อความสําหรับผู้ใช้ด้วยประเภทข้อความสําหรับผู้ใช้ที่ใช้ได้ประเภทใดประเภทหนึ่งในส่วนความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้ของบัญชี Ad Manager UMP SDK จะพยายามแสดงข้อความความเป็นส่วนตัวที่สร้างจากรหัสแอปพลิเคชันโฆษณาสื่ออินเทอร์แอกทีฟที่ตั้งค่าไว้ในโปรเจ็กต์
ดูรายละเอียดเพิ่มเติมได้ที่เกี่ยวกับความเป็นส่วนตัวและการรับส่งข้อความ
นําเข้า SDK
UMP SDK ไม่ได้รวมอยู่ในรายการที่ต้องพึ่งพาของ IMA SDK คุณจึงต้องเพิ่ม SDK ดังกล่าวด้วยตนเอง
CocoaPods (แนะนำ)
วิธีที่ง่ายที่สุดในการนำ SDK ไปไว้ในโปรเจ็กต์ iOS คือการใช้ CocoaPods เปิด Podfile ของโปรเจ็กต์ แล้วเพิ่มบรรทัดนี้ลงในเป้าหมายของแอป
pod 'GoogleUserMessagingPlatform'
จากนั้นเรียกใช้คําสั่งต่อไปนี้
pod install --repo-update
หากเพิ่งเริ่มใช้ CocoaPods โปรดดูรายละเอียดเกี่ยวกับวิธีสร้างและใช้ Podfile ได้ที่การใช้ CocoaPods
Swift Package Manager
UMP SDK ยังรองรับ Swift Package Manager ด้วย ทำตามขั้นตอนต่อไปนี้เพื่อนําเข้าแพ็กเกจ Swift
ใน Xcode ให้ติดตั้งแพ็กเกจ Swift ของ UMP SDK โดยไปที่ไฟล์ > เพิ่มแพ็กเกจ...
ในพรอมต์ที่ปรากฏขึ้น ให้ค้นหาที่เก็บ GitHub ของแพ็กเกจ Swift ของ UMP SDK
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
เลือกเวอร์ชันของแพ็กเกจ UMP SDK Swift ที่ต้องการใช้ สําหรับโปรเจ็กต์ใหม่ เราขอแนะนําให้ใช้อัปเดตเป็นเวอร์ชันหลักถัดไป
จากนั้น Xcode จะจับคู่ข้อมูลและดาวน์โหลดทรัพยากร Dependency ของแพ็กเกจในเบื้องหลัง โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีเพิ่มแพ็กเกจที่ต้องพึ่งพาที่บทความของ Apple
เพิ่มรหัสแอปพลิเคชัน
คุณดูรหัสแอปพลิเคชันได้ในUI ของ Ad Manager
เพิ่มรหัสลงใน
Info.plist
ด้วยข้อมูลโค้ดต่อไปนี้
<key>UMPApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
รับข้อมูลความยินยอมของผู้ใช้
คุณควรขออัปเดตข้อมูลความยินยอมของผู้ใช้ทุกครั้งที่เปิดแอปโดยใช้
requestConsentInfoUpdateWithParameters:completionHandler:
คำขอนี้จะตรวจสอบสิ่งต่อไปนี้
- ต้องได้รับความยินยอมหรือไม่ เช่น ต้องมีการขอความยินยอมเป็นครั้งแรก หรือการตัดสินใจให้ความยินยอมก่อนหน้านี้หมดอายุแล้ว
- ต้องระบุจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวหรือไม่ ข้อความเกี่ยวกับความเป็นส่วนตัวบางรายการกำหนดให้แอปอนุญาตให้ผู้ใช้แก้ไขตัวเลือกความเป็นส่วนตัวได้ทุกเมื่อ
Swift
// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
// ...
}
Objective-C
// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
// ...
}];
โหลดและแสดงแบบฟอร์มข้อความเกี่ยวกับความเป็นส่วนตัว
หลังจากได้รับสถานะความยินยอมล่าสุดแล้ว ให้เรียกใช้
loadAndPresentIfRequiredFromViewController:completionHandler:
เพื่อโหลดแบบฟอร์มที่จําเป็นในการรวบรวมความยินยอมของผู้ใช้ หลังจากโหลดแล้ว แบบฟอร์มจะแสดงทันที
Swift
try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)
Objective-C
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
ตัวเลือกความเป็นส่วนตัว
แบบฟอร์มข้อความเกี่ยวกับความเป็นส่วนตัวบางรายการจะแสดงจากจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวที่ผู้เผยแพร่โฆษณาแสดงผล ซึ่งช่วยให้ผู้ใช้จัดการตัวเลือกความเป็นส่วนตัวได้ทุกเมื่อ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความที่ผู้ใช้เห็นที่จุดแรกเข้าของตัวเลือกความเป็นส่วนตัวได้ที่ประเภทข้อความสำหรับผู้ใช้ที่ใช้ได้
ตรวจสอบว่าจำเป็นต้องใช้จุดแรกเข้าของตัวเลือกความเป็นส่วนตัวหรือไม่
หลังจากเรียกใช้
requestConsentInfoUpdateWithParameters:completionHandler:
แล้ว ให้ตรวจสอบ
UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus
เพื่อดูว่าแอปของคุณต้องใช้จุดแรกเข้าของตัวเลือกความเป็นส่วนตัวหรือไม่ หากต้องใช้จุดแรกเข้า ให้เพิ่มองค์ประกอบ UI ที่มองเห็นได้และโต้ตอบได้ลงในแอปซึ่งแสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัว หากไม่จําเป็นต้องใช้จุดแรกเข้าด้านความเป็นส่วนตัว ให้กําหนดค่าองค์ประกอบ UI ไม่ให้มองเห็นและโต้ตอบได้
Swift
var isPrivacyOptionsRequired: Bool {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)areGDPRConsentMessagesRequired {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
UMPPrivacyOptionsRequirementStatusRequired;
}
- (void)gatherConsentFromConsentPresentationViewController:(UIViewController *)viewController
consentGatheringComplete:
(void (^)(NSError *_Nullable))consentGatheringComplete {
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
// Set tag for under age of consent. Use NO constant to indicate that the user is not under age.
parameters.tagForUnderAgeOfConsent = NO;
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
// Uncomment the following line to simulate a consent request from users in the
// European Economic Area (EEA) for testing purposes.
// debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;
// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
// ...
}];
}
- (void)loadAndPresentIfRequiredFromViewController:(UIViewController *)viewController
completionHandler:(void (^)(NSError *_Nullable))completionHandler {
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
}
- (void)presentPrivacyOptionsFormFromViewController:(UIViewController *)viewController
completionHandler:
(void (^)(NSError *_Nullable))completionHandler {
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
}
@end
ดูรายการสถานะข้อกําหนดของตัวเลือกความเป็นส่วนตัวทั้งหมดได้ที่
UMPPrivacyOptionsRequirementStatus
แสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัว
เมื่อผู้ใช้โต้ตอบกับองค์ประกอบของคุณ ให้แสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัวดังนี้
Swift
UMPConsentForm.presentPrivacyOptionsForm(
from: viewController, completionHandler: completionHandler)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
ขอโฆษณาโดยได้รับความยินยอมจากผู้ใช้
ก่อนขอโฆษณา ให้ใช้
UMPConsentInformation.sharedInstance.canRequestAds
เพื่อตรวจสอบว่าคุณได้รับความยินยอมจากผู้ใช้แล้วหรือไม่
Swift
UMPConsentInformation.sharedInstance.canRequestAds
Objective-C
UMPConsentInformation.sharedInstance.canRequestAds;
ต่อไปนี้คือรายการที่คุณสามารถตรวจสอบได้ว่าคุณขอโฆษณาขณะรวบรวมความยินยอมได้หรือไม่
- หลังจาก UMP SDK รวบรวมความยินยอมในเซสชันปัจจุบัน
- ทันทีที่คุณโทรหา
requestConsentInfoUpdateWithParameters:completionHandler:
UMP SDK อาจได้รับความยินยอมในเซสชันแอปก่อนหน้า
หากเกิดข้อผิดพลาดระหว่างกระบวนการรวบรวมความยินยอม ให้ตรวจสอบว่าคุณขอโฆษณาได้หรือไม่ UMP SDK ใช้สถานะความยินยอมจากเซสชันแอปก่อนหน้า
ป้องกันไม่ให้มีการทำงานกับคําขอโฆษณาซ้ำซ้อน
เมื่อคุณตรวจสอบ
UMPConsentInformation.sharedInstance.canRequestAds
หลังจากรวบรวมความยินยอมและหลังจากเรียกใช้
requestConsentInfoUpdateWithParameters:completionHandler:
โปรดตรวจสอบว่าตรรกะของคุณป้องกันคําขอโฆษณาที่ซ้ำซ้อนซึ่งอาจทําให้ทั้ง 2 การตรวจสอบแสดงผลเป็น true
เช่น กับตัวแปรบูลีน
การทดสอบ
หากต้องการทดสอบการผสานรวมในแอปขณะพัฒนา ให้ทำตามขั้นตอนเหล่านี้เพื่อลงทะเบียนอุปกรณ์ทดสอบแบบเป็นโปรแกรม อย่าลืมนำโค้ดที่กำหนดรหัสอุปกรณ์ทดสอบเหล่านี้ออกก่อนที่จะเผยแพร่แอป
- โทรมาที่
requestConsentInfoUpdateWithParameters:completionHandler:
ตรวจสอบเอาต์พุตบันทึกเพื่อหาข้อความที่คล้ายกับตัวอย่างต่อไปนี้ ซึ่งแสดงรหัสอุปกรณ์และวิธีเพิ่มเป็นอุปกรณ์ทดสอบ
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
คัดลอกรหัสอุปกรณ์ทดสอบไปยังคลิปบอร์ด
แก้ไขโค้ดเพื่อเรียกใช้
UMPDebugSettings().testDeviceIdentifiers
และส่งรายการรหัสอุปกรณ์ทดสอบSwift
let parameters = UMPRequestParameters() let debugSettings = UMPDebugSettings() debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"] parameters.debugSettings = debugSettings // Include the UMPRequestParameters in your consent request. UMPConsentInformation.sharedInstance.requestConsentInfoUpdate( with: parameters, completionHandler: { error in // ... })
Objective-C
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init]; UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init]; debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ]; parameters.debugSettings = debugSettings; // Include the UMPRequestParameters in your consent request. [UMPConsentInformation.sharedInstance requestConsentInfoUpdateWithParameters:parameters completionHandler:^(NSError *_Nullable error){ // ... }];
บังคับใช้ภูมิศาสตร์
UMP SDK มีวิธีทดสอบลักษณะการทํางานของแอปเสมือนว่าอุปกรณ์อยู่ในภูมิภาคต่างๆ เช่น EEA หรือสหราชอาณาจักร โดยใช้ UMPDebugGeography โปรดทราบว่าการตั้งค่าการแก้ไขข้อบกพร่องใช้ได้กับอุปกรณ์ทดสอบเท่านั้น
Swift
let parameters = UMPRequestParameters()
let debugSettings = UMPDebugSettings()
debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings
// Include the UMPRequestParameters in your consent request.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(
with: parameters,
completionHandler: { error in
// ...
})
Objective-C
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;
// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable error){
// ...
}];
รีเซ็ตสถานะความยินยอม
เมื่อทดสอบแอปด้วย UMP SDK คุณอาจพบว่าการรีเซ็ตสถานะของ SDK มีประโยชน์ในการจําลองประสบการณ์การติดตั้งครั้งแรกของผู้ใช้
SDK มีเมธอด reset
ที่ใช้ดำเนินการนี้
Swift
UMPConsentInformation.sharedInstance.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
ตัวอย่างใน GitHub
ดูตัวอย่างการผสานรวม UMP SDK แบบเต็มซึ่งกล่าวถึงในหน้านี้ใน Swift UmpExample และ Objective-C UmpExample