UMP SDK'sını ayarlama

Google Kullanıcı Mesajlaşma Platformu (UMP) SDK'sı, gizlilik tercihlerini 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

AdMob hesabınızın Gizlilik ve Mesajlaşma sekmesindeki Kullanılabilir kullanıcı mesajı türleri'nden birini kullanarak kullanıcı mesajları oluşturun. UMP SDK'sı, projenizde ayarlanan AdMob 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 edilen)

SDK'yı bir iOS projesine aktarmanın en kolay yolu CocoaPods kullanmaktır. Projenizin Podfile dosyasını açın ve bu 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 ilk kez kullanıyorsanız Podfile 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 bu adımları uygulayın.

  1. Xcode'da File > Add Packages... (Dosya > Paket Ekle...) bölümüne giderek UMP SDK Swift paketini yükleyin.

  2. Görüntülenen istemde UMP SDK Swift Paketi GitHub deposunu arayın:

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. Kullanmak istediğiniz UMP SDK Swift Paketi sürümünü seçin. Yeni projeler için Up to Next Major Version (Sonraki Ana Sürüme Kadar) seçeneğini kullanmanızı öneririz.

Xcode, paket bağımlılıklarınıza çözüm bulur ve bunları arka planda indirir. Paket bağımlılıklarının nasıl ekleneceği hakkında daha fazla bilgi için Apple'ın makalesini inceleyin.

Manuel indirme

SDK'yı içe aktarmanın diğer yolu manuel olarak yapmaktır.

SDK'yı indirme

Ardından, çerçeveyi Xcode projenize sürükleyin ve Gerekirse öğeleri kopyala'yı seçtiğinizden emin olun.

Ardından, aşağıdaki kodu kullanarak çerçeveyi istediğiniz dosyaya ekleyebilirsiniz:

Swift

import UserMessagingPlatform

Objective-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

Uygulama kimliğini ekleme

Uygulama kimliğinizi AdMob kullanıcı arayüzünde bulabilirsiniz. Aşağıdaki kod snippet'ini kullanarak kimliği Info.plist öğenize ekleyin:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

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 alınması gerektiğinde veya önceki izin kararının süresi dolduğunda.
  • Gizlilik seçenekleri giriş noktasının gerekli olup olmadığı. Bazı gizlilik mesajları, uygulamaların kullanıcıların gizlilik seçeneklerini istedikleri zaman değiştirmelerine izin vermesini gerektirir.

Swift


// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
  requestConsentError in
  // ...
}

SwiftUI


// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.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) {
                           // ...
                         }];

Gizlilik mesajı formunu yükleme ve sunma

En güncel izin durumunu aldıktan sonra, kullanıcı izni almak için gereken formları yüklemek üzere loadAndPresentIfRequired(from:) yöntemini çağırın. Yüklendikten sonra formlar hemen gösterilir.

Swift


try await ConsentForm.loadAndPresentIfRequired(from: viewController)

SwiftUI


try await ConsentForm.loadAndPresentIfRequired(from: nil)

Objective-C


[UMPConsentForm
    loadAndPresentIfRequiredFromViewController:viewController
                             completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                 // Consent gathering process is complete.
                                }];

Gizlilik seçenekleri

Bazı gizlilik mesajı formları, yayıncı tarafından oluşturulan bir gizlilik seçenekleri giriş noktasından sunulur. Böylece kullanıcılar gizlilik seçeneklerini diledikleri zaman yönetebilir. Kullanıcılarınızın gizlilik seçenekleri giriş noktasında hangi mesajı göreceği hakkında daha fazla bilgi edinmek için Mevcut kullanıcı mesajı türleri başlıklı makaleyi inceleyin.

Gizlilik seçenekleri giriş noktasının gerekli olup olmadığını kontrol etme

requestConsentInfoUpdate(with:completionHandler:) yöntemini çağırdıktan sonra UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus yöntemini kontrol ederek uygulamanız için gizlilik seçenekleri giriş noktası gerekip gerekmediğini belirleyin. 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ünür ve etkileşimli olmayacak şekilde yapılandırın.

Swift


var isPrivacyOptionsRequired: Bool {
  return ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}

Objective-C


- (BOOL)isPrivacyOptionsRequired {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
         UMPPrivacyOptionsRequirementStatusRequired;
}

Gizlilik seçenekleri koşul durumlarının tam listesi için UMPPrivacyOptionsRequirementStatus sayfasına bakın.

Gizlilik seçenekleri formunu sunma

Kullanıcı öğenizle etkileşimde bulunduğunda gizlilik seçenekleri formunu gösterin:

Swift


try await ConsentForm.presentPrivacyOptionsForm(from: viewController)

SwiftUI


try await ConsentForm.presentPrivacyOptionsForm(from: nil)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

Kullanıcı rızasıyla reklam isteğinde bulunma

Reklam isteğinde bulunmadan önce UMPConsentInformation.sharedInstance.canRequestAds kullanarak kullanıcıdan izin alıp almadığınızı kontrol edin:

Swift

ConsentInformation.shared.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

Rıza toplarken reklam isteğinde bulunup bulunamayacağınızı kontrol etmek için aşağıdaki yerlere bakabilirsiniz:

Rıza alma işlemi sırasında bir hata oluşursa reklam isteyip isteyemeyeceğinizi kontrol edin. UMP SDK'sı, önceki uygulama oturumundaki izin durumunu kullanır.

Gereksiz reklam isteği işlemlerini önleme

İzin aldıktan ve requestConsentInfoUpdate(with:completionHandler:) yöntemini çağırdıktan sonra UMPConsentInformation.sharedInstance.canRequestAds yöntemini kontrol ederken mantığınızın, her iki kontrolün de true döndürmesine neden olabilecek gereksiz reklam isteklerini engellediğinden emin olun. Örneğin, boole değişkeniyle.

Test

Uygulamanızı geliştirirken entegrasyonu test etmek istiyorsanız test cihazınızı programatik olarak kaydetmek 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.

  1. requestConsentInfoUpdate(with:completionHandler:) Hizmetleri İçin Arayın.
  2. Günlük çıkışında, aşağıdaki örneğe benzer bir mesaj olup olmadığını kontrol edin. Bu mesajda cihaz kimliğiniz ve cihazınızı test cihazı olarak nasıl ekleyeceğiniz gösterilir:

    <UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. Test cihazı kimliğinizi panonuza kopyalayın.

  4. Kodunuzu UMPDebugSettings().testDeviceIdentifiers yöntemini çağıracak ve test cihazı kimliklerinizin listesini iletecek şekilde değiştirin.

    Swift

    let parameters = RequestParameters()
    let debugSettings = DebugSettings()
    
    debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
    parameters.debugSettings = debugSettings
    
    // Include the UMPRequestParameters in your consent request.
    ConsentInformation.shared.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 konumu zorunlu kılma

UMP SDK'sı, geography kullanarak uygulamanızın davranışını cihaz Avrupa Ekonomik Alanı (AEA), Birleşik Krallık ve İsviçre 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 = RequestParameters()
let debugSettings = DebugSettings()

debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings

// Include the UMPRequestParameters in your consent request.
ConsentInformation.shared.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){
                           // ...
}];

Uygulamanızı UMP SDK ile test ederken, kullanıcının ilk yükleme deneyimini simüle edebilmek için SDK'nın durumunu sıfırlamanın faydalı olabileceğini görebilirsiniz. SDK, bu işlem için reset yöntemini sağlar.

Swift

ConsentInformation.shared.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

GitHub'daki örnekler

Bu sayfada ele alınan UMP SDK entegrasyonunun tam örneğini şurada görebilirsiniz: