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.
Ön koşullar
- Android API düzeyi 21 veya sonraki sürümler
Mesaj türü oluşturma
AdMob hesabınızın Gizlilik ve mesajlaşma sekmesinde bulunan Kullanılabilir kullanıcı mesajı türlerinden 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.
Gradle ile yükleme
Google Kullanıcı Mesajlaşma Platformu SDK'sına ait bağımlılığı, modülünüzün uygulama düzeyindeki Gradle dosyasına (genellikle app/build.gradle
) ekleyin:
dependencies {
implementation("com.google.android.ump:user-messaging-platform:3.1.0")
}
Uygulamanızın build.gradle
dosyasında değişiklik yaptıktan sonra projenizi Gradle dosyalarıyla senkronize ettiğinizden emin olun.
Uygulama kimliğini ekleme
Uygulama kimliğinizi AdMob kullanıcı arayüzünde bulabilirsiniz.
Aşağıdaki kod snippet'ini kullanarak kimliği AndroidManifest.xml
'inize ekleyin:
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
Kullanıcının izin bilgilerini alma
Kullanıcının izin bilgilerini almak için aşağıdakileri yapın:
ConsentInformation
örneğini tanımlayın:
Java
private final ConsentInformation consentInformation;
Kotlin
private lateinit val consentInformation: ConsentInformation
ConsentInformation
örneğini başlatın:
Java
consentInformation = UserMessagingPlatform.getConsentInformation(context);
Kotlin
consentInformation = UserMessagingPlatform.getConsentInformation(context)
requestConsentInfoUpdate()
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.
Java
// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
activity,
params,
() -> // Called when consent information is successfully updated.
requestConsentError -> // Called when there's an error updating consent information.
Kotlin
// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
activity,
params,
{
// Called when consent information is successfully updated.
},
{ requestConsentError ->
// Called when there's an error updating consent information.
},
)
Gizlilik mesajı formunu yükleyip gösterme
En güncel izin durumunu aldıktan sonra, kullanıcı iznini almak için gereken tüm formları yüklemek üzere
loadAndShowConsentFormIfRequired()
işlevini çağırın. Formlar yüklendikten sonra hemen gösterilir.
Java
UserMessagingPlatform.loadAndShowConsentFormIfRequired(
activity,
formError -> {
// Consent gathering process is complete.
});
Kotlin
UserMessagingPlatform.loadAndShowConsentFormIfRequired(activity) { formError ->
// 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. 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 Mevcut kullanıcı mesajı türleri bölümüne bakın.
Gizlilik seçenekleri giriş noktası gerekip gerekmediğini kontrol etme
requestConsentInfoUpdate()
işlevini çağırdıktan sonra, uygulamanız için gizlilik seçenekleri giriş noktası gerekip gerekmediğini belirlemek üzere
getPrivacyOptionsRequirementStatus()
işlevini kontrol edin. Giriş noktası gerekiyorsa uygulamanıza gizlilik seçenekleri formunu gösteren 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.
Java
/** Helper variable to determine if the privacy options form is required. */
public boolean isPrivacyOptionsRequired() {
return consentInformation.getPrivacyOptionsRequirementStatus()
== PrivacyOptionsRequirementStatus.REQUIRED;
}
Kotlin
/** Helper variable to determine if the privacy options form is required. */
val isPrivacyOptionsRequired: Boolean
get() =
consentInformation.privacyOptionsRequirementStatus ==
ConsentInformation.PrivacyOptionsRequirementStatus.REQUIRED
Gizlilik seçenekleri şart durumlarının tam listesi için
ConsentInformation.PrivacyOptionsRequirementStatus
bölümüne bakın.
Gizlilik seçenekleri formunu gösterme
Kullanıcı öğenizle etkileşimde bulunduğunda gizlilik seçenekleri formunu gösterin:
Java
UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener);
Kotlin
UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener)
Kullanıcı izniyle reklam isteme
Reklam isteğinde bulunmadan önce, kullanıcıdan izin alıp almadığınızı kontrol etmek için
canRequestAds()
öğesini kullanın:
Java
consentInformation.canRequestAds();
Kotlin
consentInformation.canRequestAds()
İzin alırken reklam isteyip isteyemeyeceğinizi kontrol edebileceğiniz yerler aşağıda listelenmiştir:
- UMP SDK'sı mevcut oturumda izin topladıktan sonra.
requestConsentInfoUpdate()
'ü aradıktan hemen sonra. UMP SDK'sı önceki uygulama oturumunda izin almış olabilir.
İzin toplama işlemi sırasında hata oluşursa reklam isteyip isteyemediğinizi kontrol edin. UMP SDK'sı, önceki uygulama oturumundaki izin durumunu kullanır.
Gereksiz reklam isteği çalışmalarını önleme
İzin topladıktan ve
requestConsentInfoUpdate()
işlevini çağırdıktan sonra
canRequestAds()
değerini 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, bir boole değişkeni ile.
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()
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:
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
Test cihazı kimliğinizi panonuza kopyalayın.
Kodunuzu,
ConsentDebugSettings.Builder().TestDeviceHashedIds
işlevini çağıracak ve test cihazı kimliklerinizin listesini iletecek şekilde değiştirin.Java
ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this) .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID") .build(); ConsentRequestParameters params = new ConsentRequestParameters .Builder() .setConsentDebugSettings(debugSettings) .build(); consentInformation = UserMessagingPlatform.getConsentInformation(this); // Include the ConsentRequestParameters in your consent request. consentInformation.requestConsentInfoUpdate( this, params, // ... );
Kotlin
val debugSettings = ConsentDebugSettings.Builder(this) .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID") .build() val params = ConsentRequestParameters .Builder() .setConsentDebugSettings(debugSettings) .build() consentInformation = UserMessagingPlatform.getConsentInformation(this) // Include the ConsentRequestParameters in your consent request. consentInformation.requestConsentInfoUpdate( this, params, // ... )
Coğrafi bölgeyi zorlama
UMP SDK'sı, setDebugGeography()
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.
Java
ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this)
.setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
.addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
.build();
ConsentRequestParameters params = new ConsentRequestParameters
.Builder()
.setConsentDebugSettings(debugSettings)
.build();
consentInformation = UserMessagingPlatform.getConsentInformation(this);
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
this,
params,
...
);
Kotlin
val debugSettings = ConsentDebugSettings.Builder(this)
.setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
.addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
.build()
val params = ConsentRequestParameters
.Builder()
.setConsentDebugSettings(debugSettings)
.build()
consentInformation = UserMessagingPlatform.getConsentInformation(this)
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
this,
params,
...
)
İ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.
Java
consentInformation.reset();
Kotlin
consentInformation.reset()
GitHub'daki örnekler
Bu sayfada ele alınan UMP SDK entegrasyonunun tam örneğini Java BannerExample ve Kotlin BannerExample'da bulabilirsiniz.