Google Kullanıcı Mesajlaşma Platformu (UMP) SDK'sı, gizlilik seçeneklerini yönetmenize yardımcı olan bir gizlilik ve mesajlaşma aracıdır. Daha fazla bilgi için Gizlilik ve mesajlaşma hakkında başlıklı makaleyi inceleyin.
Mesaj türü oluşturma
Ad Manager hesabınızın Gizlilik ve mesajlaşma sekmesindeki Kullanılabilir kullanıcı mesajı türlerinden birini kullanarak kullanıcı mesajları oluşturun. UMP SDK'sı, projenizde ayarlanan Ad Manager uygulama kimliğinden oluşturulan bir gizlilik mesajı göstermeye çalışır.
Daha fazla bilgi için Gizlilik ve mesajlaşma hakkında başlıklı makaleyi inceleyin.
SDK'yı içe aktarma
CocoaPods (tercih edilir)
SDK'yı iOS projesine içe aktarmanın en kolay yolu CocoaPods'u kullanmaktır. Projenizin Podfile dosyasını açın ve aşağıdaki satırı uygulamanızın hedefine ekleyin:
pod 'GoogleUserMessagingPlatform'
Ardından aşağıdaki komutu çalıştırın:
pod install --repo-update
CocoaPods'u kullanmaya yeni başladıysanız Pod dosyalarını oluşturma ve kullanma hakkında ayrıntılı bilgi için CocoaPods'u kullanma başlıklı makaleyi inceleyin.
Swift Package Manager
UMP SDK'sı, Swift Package Manager'ı da destekler. Swift paketini içe aktarmak için aşağıdaki adımları uygulayın.
Xcode'da Dosya > Paket Ekle...'ye giderek UMP SDK Swift Paketi'ni yükleyin.
Görünen istemde UMP SDK Swift Paketi GitHub deposunu arayın:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
Kullanmak istediğiniz UMP SDK Swift paketinin sürümünü seçin. Yeni projeler için Sonraki Büyük Sürüme Kadar seçeneğini kullanmanızı öneririz.
Ardından Xcode, paket bağımlılıklarınıza çözüm bulur ve bunları arka planda indirir. Paket bağımlılıkları ekleme hakkında daha fazla bilgi için Apple'ın makalesine bakın.
Manuel indirme
SDK'yı içe aktarmanın diğer yolu manuel olarak içe aktarmaktır.
Ardından, Gerekirse öğeleri kopyala'yı seçerek çerçeveyi Xcode projenize sürükleyin.
Ardından, aşağıdakileri kullanarak çerçeveyi ihtiyacınız olan herhangi bir dosyaya ekleyebilirsiniz:
Swift
import UserMessagingPlatform
Objective-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
Uygulama kimliğini ekleme
Uygulama kimliğinizi
Ad Manager kullanıcı arayüzünde bulabilirsiniz.
Aşağıdaki kod snippet'ini kullanarak kimliği Info.plist
'inize ekleyin:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
İzin toplama
İzin almak için aşağıdaki adımları uygulayın:
- En son kullanıcı rızası bilgilerini isteyin.
- Gerekirse bir izin formu yükleyip gösterin.
İzin bilgileri isteği
requestConsentInfoUpdate(with:completionHandler:)
kullanarak her uygulama başlatıldığında kullanıcının izin bilgilerinin güncellenmesini istemeniz gerekir. Bu istek aşağıdakileri kontrol eder:
- İzin gerekip gerekmediği. Örneğin, ilk kez izin verilmesi gerekiyor veya önceki izin kararının süresi dolmuş.
- Gizlilik seçenekleri giriş noktası gerekip gerekmediği. Bazı gizlilik mesajları, uygulamaların kullanıcıların gizlilik seçeneklerini istedikleri zaman değiştirmelerine izin vermesini zorunlu kılar.
Gerekirse gizlilik mesajı formu yükleyip gösterin
En güncel izin durumunu aldıktan sonra, kullanıcı iznini almak için gereken tüm formları yüklemek üzere
loadAndPresentIfRequired(from:)
işlevini çağırın. Formlar yüklendikten sonra hemen gösterilir.
Aşağıdaki kodda, kullanıcının en son izin bilgilerinin nasıl isteneceği gösterilmektedir. Gerekirse kod, bir gizlilik mesajı formu yükler ve gösterir:
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)
}
}
}
SwiftUI
// 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: nil)
// 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);
}];
}
}];
Gizlilik seçenekleri
Bazı gizlilik mesajı formları, yayıncı tarafından oluşturulan bir gizlilik seçenekleri giriş noktasından sunulur. Bu sayede kullanıcılar gizlilik seçeneklerini istedikleri zaman yönetebilir. Kullanıcılarınızın gizlilik seçenekleri giriş noktasında gördüğü mesaj hakkında daha fazla bilgi edinmek için Kullanılabilir kullanıcı mesajı türleri başlıklı makaleyi inceleyin.
Gizlilik seçenekleri giriş noktası gerekip gerekmediğini kontrol etme
requestConsentInfoUpdate(with:completionHandler:)
işlevini çağırdıktan sonra, uygulamanız için gizlilik seçenekleri giriş noktası gerekip gerekmediğini belirlemek üzere
UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus
değerini kontrol edin:
Swift
var isPrivacyOptionsRequired: Bool {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)isPrivacyOptionsRequired {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
UMPPrivacyOptionsRequirementStatusRequired;
}
Uygulamanıza görünür bir öğe ekleme
Gizlilik giriş noktası gerekiyorsa uygulamanıza gizlilik seçenekleri formunu sunan görünür ve etkileşimli bir kullanıcı arayüzü öğesi ekleyin. Gizlilik giriş noktası gerekli değilse kullanıcı arayüzü öğenizi görünmez ve etkileşime açık olmayacak şekilde yapılandırın.
Swift
self.privacySettingsButton.isEnabled =
GoogleMobileAdsConsentManager.shared.isPrivacyOptionsRequired
Objective-C
strongSelf.privacySettingsButton.enabled =
GoogleMobileAdsConsentManager.sharedInstance
.isPrivacyOptionsRequired;
Gizlilik seçenekleri formunu gösterme
Kullanıcı öğenizle etkileşimde bulunduğunda gizlilik seçenekleri formunu gösterin:
Swift
try await UMPConsentForm.presentPrivacyOptionsForm(from: viewController)
SwiftUI
try await UMPConsentForm.presentPrivacyOptionsForm(from: nil)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
Reklam isteğinde bulun
Uygulamanızda reklam istemeden önce
UMPConsentInformation.sharedInstance.canRequestAds
kullanarak kullanıcıdan izin alıp almadığınızı kontrol edin. İzin alırken kontrol edilmesi gereken iki yer vardır:
- Mevcut oturumda izin alındıktan sonra.
requestConsentInfoUpdate(with:completionHandler:)
'ü aradıktan hemen sonra. İzin önceki oturumda alınmış olabilir. Gecikmeyle ilgili en iyi uygulama olarak, uygulamanız kullanıma sunulduktan sonra en kısa sürede reklam yüklemeye başlayabilmek için geri aramanın tamamlanmasını beklememenizi öneririz.
UMPConsentInformation.sharedInstance.canRequestAds
her zaman false
döndürür.
İzin toplama işlemi sırasında hata oluşursa reklam isteyip isteyemeyeceğinizi kontrol etmeniz gerekir. UMP SDK'sı, önceki oturumdaki izin durumunu kullanır.
Aşağıdaki kod, izin toplama işlemi sırasında reklam isteyip isteyemeyeceğinizi kontrol eder:
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()
}
SwiftUI
GoogleMobileAdsConsentManager.shared.gatherConsent { consentError in
if let consentError {
// Consent gathering failed.
print("Error: \(consentError.localizedDescription)")
}
// Check if you can request ads in `startGoogleMobileAdsSDK` before initializing the
// Google Mobile Ads SDK.
GoogleMobileAdsConsentManager.shared.startGoogleMobileAdsSDK()
// ...
}
// This sample attempts to load ads using consent obtained in the previous session.
GoogleMobileAdsConsentManager.shared.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];
}
Aşağıdaki kod, kullanıcının izni alındıktan sonra Google Mobile Ads SDK'sını kurar:
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()
}
}
}
SwiftUI
/// Method to initialize the Google Mobile Ads SDK. The SDK should only be initialized once.
func startGoogleMobileAdsSDK() {
guard canRequestAds, !isMobileAdsStartCalled else { return }
isMobileAdsStartCalled = true
// Initialize the Google Mobile Ads SDK.
GADMobileAds.sharedInstance().start()
}
Objective-C
- (void)startGoogleMobileAdsSDK {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
[self loadBannerAd];
});
}
Test
Uygulamanızı geliştirirken entegrasyonu test etmek istiyorsanız test cihazınızı programatik olarak kaydettirmek için aşağıdaki adımları uygulayın. Uygulamanızı yayınlamadan önce bu test cihazı kimliklerini ayarlayan kodu kaldırdığınızdan emin olun.
requestConsentInfoUpdate(with:completionHandler:)
Hizmetleri İçin Arayın.Günlük çıkışında, cihaz kimliğinizi ve cihazınızı test cihazı olarak nasıl ekleyeceğinizi gösteren aşağıdaki örneğe benzer bir mesaj olup olmadığını kontrol edin:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
Test cihazı kimliğinizi panonuza kopyalayın.
Kodunuzu,
UMPDebugSettings().testDeviceIdentifiers
işlevini çağıracak ve test cihazı kimliklerinizin listesini iletecek şekilde değiştirin.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){ // ... }];
Coğrafi bölgeyi zorlama
UMP SDK'sı,
geography
kullanarak uygulamanızın davranışını cihaz AEA veya Birleşik Krallık gibi çeşitli bölgelerdeymiş gibi test etmenizi sağlar. Hata ayıklama ayarlarının yalnızca test cihazlarında çalıştığını unutmayın.
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){
// ...
}];
İzin durumunu sıfırlama
Uygulamanızı UMP SDK'sıyla test ederken, kullanıcının ilk yükleme deneyimini simüle edebilmek için SDK'nın durumunu sıfırlamanın yararlı olabileceğini görebilirsiniz.
SDK, bunu yapmak için reset
yöntemini sağlar.
Swift
UMPConsentInformation.sharedInstance.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
GitHub'daki örnekler
Bu sayfada ele alınan UMP SDK entegrasyonunun tam örneğini