Google User Messaging Platform (UMP) SDK הוא כלי לניהול פרטיות ובקשות הסכמה, שיעזור לכם לנהל את העדפות הפרטיות של המשתמשים. למידע נוסף, ראו מידע על הכלי 'פרטיות והודעות'.
איך יוצרים את סוג ההודעה
אפשר ליצור הודעות למשתמשים באמצעות אחד מהסוגים הזמינים של הודעות למשתמשים בכרטיסייה פרטיות והודעות בחשבון Ad Manager. מערכת UMP SDK מנסה להציג הודעת פרטיות שנוצרה מהמזהה של האפליקציה ב-Ad Manager שהוגדר בפרויקט.
פרטים נוספים זמינים במאמר מידע על פרטיות והודעות.
מייבאים את ה-SDK
CocoaPods (מועדף)
הדרך הקלה ביותר לייבא את ה-SDK לפרויקט iOS היא באמצעות CocoaPods. פותחים את ה-Podfile של הפרויקט ומוסיפים את השורה הבאה ליעד של האפליקציה:
pod 'GoogleUserMessagingPlatform'
לאחר מכן, מריצים את הפקודה הבאה:
pod install --repo-update
אם אתם משתמשים חדשים ב-CocoaPods, תוכלו לקרוא את המאמר שימוש ב-CocoaPods כדי לקבל פרטים על יצירת קובצי Podfile ועל השימוש בהם.
Swift Package Manager
ערכת ה-SDK של UMP תומכת גם ב-Swift Package Manager. מבצעים את השלבים הבאים כדי לייבא את חבילת Swift.
ב-Xcode, מתקינים את UMP SDK Swift Package על ידי מעבר אל File > Add Packages....
בהודעה שמופיעה, מחפשים את המאגר של UMP SDK Swift Package GitHub:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
בוחרים את הגרסה של חבילת Swift של UMP SDK שבה רוצים להשתמש. בפרויקטים חדשים, מומלץ להשתמש באפשרות עד לגרסה הראשית הבאה.
לאחר מכן, Xcode פותר את יחסי התלות של החבילות ומוריד אותן ברקע. במאמר של Apple מוסבר איך מוסיפים יחסי תלות של חבילות.
הורדה ידנית
הדרך השנייה לייבא את ה-SDK היא לעשות זאת באופן ידני.
לאחר מכן, גוררים את המסגרת לפרויקט Xcode ומוודאים שבוחרים באפשרות Copy items if needed.
לאחר מכן תוכלו לכלול את המסגרת בכל קובץ שתרצו באמצעות:
Swift
import UserMessagingPlatform
Objective-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
מוסיפים את מזהה האפליקציה.
מזהה האפליקציה מופיע בממשק המשתמש של Ad Manager.
מוסיפים את המזהה
Info.plist
באמצעות קטע הקוד הבא:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
איסוף הסכמה
כדי לאסוף אישורי הסכמה, מבצעים את השלבים הבאים:
- בקשה למידע העדכני ביותר על הסכמת המשתמש.
- אם צריך, טוענים טופס הסכמה ומציגים אותו.
בקשה לקבלת פרטי הסכמה
צריך לבקש עדכון של פרטי ההסכמה של המשתמש בכל הפעלה של האפליקציה באמצעות
requestConsentInfoUpdate(with:completionHandler:)
. הבקשה הזו בודקת את הפרטים הבאים:
- אם נדרשת הסכמה. לדוגמה, נדרשת הסכמה בפעם הראשונה או שפג תוקפה של ההחלטה הקודמת בנושא הסכמה.
- האם נדרשת נקודת כניסה לאפשרויות הפרטיות. בהודעות פרטיות מסוימות, האפליקציות צריכות לאפשר למשתמשים לשנות את אפשרויות הפרטיות שלהם בכל שלב.
טעינה והצגת טופס הודעה בנושא פרטיות במקרה הצורך
אחרי שמקבלים את סטטוס ההסכמה העדכני ביותר, צריך להפעיל את הקריאה
loadAndPresentIfRequired(from:)
כדי לטעון את כל הטפסים שנדרשים לאיסוף הסכמת המשתמשים. אחרי הטעינה, הטפסים יוצגו באופן מיידי.
הקוד הבא מסביר איך לבקש את המידע העדכני ביותר בנושא הסכמה של המשתמש. במקרה הצורך, הקוד נטען ומציג טופס של הודעת פרטיות:
Swift
// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
guard requestConsentError == nil else {
return consentGatheringComplete(requestConsentError)
}
Task { @MainActor in
do {
try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)
// Consent has been gathered.
consentGatheringComplete(nil)
} catch {
consentGatheringComplete(error)
}
}
}
Objective-C
// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
if (requestConsentError) {
consentGatheringComplete(requestConsentError);
} else {
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(
NSError
*_Nullable loadAndPresentError) {
// Consent has been gathered.
consentGatheringComplete(
loadAndPresentError);
}];
}
}];
אפשרויות פרטיות
חלק מהטפסים של הודעות בנושא פרטיות מוצגים מנקודת כניסה של אפשרויות פרטיות בעיבוד של בעל התוכן הדיגיטלי, וכך המשתמשים יכולים לנהל את אפשרויות הפרטיות שלהם בכל שלב. מידע נוסף על ההודעה שתוצג למשתמשים בנקודת הכניסה לאפשרויות הפרטיות זמין במאמר הסוגים הזמינים של הודעות למשתמשים.
בדיקה אם נדרשת נקודת כניסה לאפשרויות הפרטיות
אחרי שמפעילים את
requestConsentInfoUpdate(with:completionHandler:)
, בודקים את
UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus
כדי לקבוע אם נדרשת נקודת כניסה לאפשרויות הפרטיות באפליקציה:
Swift
var isPrivacyOptionsRequired: Bool {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)isPrivacyOptionsRequired {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
UMPPrivacyOptionsRequirementStatusRequired;
}
הוספת רכיב גלוי לאפליקציה
אם נדרשת נקודת כניסה לפרטיות, צריך להוסיף לאפליקציה רכיב גלוי ואינטראקטיבי בממשק המשתמש, שמציג את טופס אפשרויות הפרטיות. אם לא נדרשת נקודת כניסה לנושא פרטיות, צריך להגדיר את רכיב ממשק המשתמש כך שלא יהיה גלוי ולא ניתן לבצע איתו אינטראקציה.
Swift
self.privacySettingsButton.isEnabled =
GoogleMobileAdsConsentManager.shared.isPrivacyOptionsRequired
Objective-C
strongSelf.privacySettingsButton.enabled =
GoogleMobileAdsConsentManager.sharedInstance
.isPrivacyOptionsRequired;
הצגת הטופס של אפשרויות הפרטיות
כשהמשתמש יוצר אינטראקציה עם האלמנט שלכם, צריך להציג את טופס אפשרויות הפרטיות:
Swift
try await UMPConsentForm.presentPrivacyOptionsForm(from: viewController)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
בקשה להצגת מודעות
לפני ששולחים בקשות להצגת מודעות באפליקציה, צריך לבדוק אם קיבלתם מהמשתמש הסכמה באמצעות
UMPConsentInformation.sharedInstance.canRequestAds
. יש שני מקומות שצריך לבדוק בזמן קבלת ההסכמה:
- אחרי שהתקבלה הסכמה בסשן הנוכחי.
- מיד אחרי שתתקשרו למספר
requestConsentInfoUpdate(with:completionHandler:)
. יכול להיות שהתקבלה הסכמה בסשן הקודם. מומלץ לא להמתין לסיום הקריאה החוזרת כדי שאפשר יהיה להתחיל לטעון מודעות בהקדם האפשרי אחרי השקת האפליקציה.
גם אם מתרחשת שגיאה בתהליך קבלת ההסכמה, עדיין צריך לבדוק אם אפשר לבקש מודעות. ה-SDK של UMP משתמש בסטטוס ההסכמה מהסשן הקודם.
הקוד הבא בודק אם אפשר לשלוח בקשות להצגת מודעות במהלך תהליך קבלת ההסכמה:
Swift
GoogleMobileAdsConsentManager.shared.gatherConsent(from: self) { [weak self] consentError in
guard let self else { return }
if let consentError {
// Consent gathering failed.
print("Error: \(consentError.localizedDescription)")
}
if GoogleMobileAdsConsentManager.shared.canRequestAds {
self.startGoogleMobileAdsSDK()
}
// ...
}
// This sample attempts to load ads using consent obtained in the previous session.
if GoogleMobileAdsConsentManager.shared.canRequestAds {
startGoogleMobileAdsSDK()
}
Objective-C
[GoogleMobileAdsConsentManager.sharedInstance
gatherConsentFromConsentPresentationViewController:self
consentGatheringComplete:^(NSError *_Nullable consentError) {
if (consentError) {
// Consent gathering failed.
NSLog(@"Error: %@", consentError.localizedDescription);
}
__strong __typeof__(self) strongSelf = weakSelf;
if (!strongSelf) {
return;
}
if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
[strongSelf startGoogleMobileAdsSDK];
}
// ...
}];
// This sample attempts to load ads using consent obtained in the previous session.
if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
[self startGoogleMobileAdsSDK];
}
הקוד הבא מגדיר את Google Mobile Ads SDK אחרי קבלת ההסכמה מהמשתמש:
Swift
private func startGoogleMobileAdsSDK() {
DispatchQueue.main.async {
guard !self.isMobileAdsStartCalled else { return }
self.isMobileAdsStartCalled = true
// Initialize the Google Mobile Ads SDK.
GADMobileAds.sharedInstance().start()
if self.isViewDidAppearCalled {
self.loadBannerAd()
}
}
}
Objective-C
- (void)startGoogleMobileAdsSDK {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
[self loadBannerAd];
});
}
בדיקה
אם אתם רוצים לבדוק את השילוב באפליקציה במהלך הפיתוח, תוכלו לפעול לפי השלבים הבאים כדי לרשום את מכשיר הבדיקה באופן פרוגרמטי. חשוב להסיר את הקוד שמגדיר את מזהי המכשירים לבדיקה לפני שמפרסמים את האפליקציה.
- התקשרו אל
requestConsentInfoUpdate(with: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 אפשר לבדוק את אופן הפעולה של האפליקציה כאילו המכשיר נמצא באזורים שונים, כמו אזור הכלכלי האירופי או בריטניה, באמצעות geography
. חשוב לדעת: הגדרות ניפוי הבאגים פועלות רק במכשירי בדיקה.
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 AdManagerBannerExample וב-Objective-C AdManagerBannerExample.