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.
Ön koşullar
- Android API düzeyi 21 veya daha yüksek
Mesaj türü oluşturma
Ad Manager hesabınızın Gizlilik ve Mesajlaşma sekmesindeki Kullanılabilir kullanıcı mesajı türleri'nden biriyle 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.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:4.0.0")
}
Uygulamanızın build.gradle dosyasında değişiklik yaptıktan sonra projenizi Gradle dosyalarıyla senkronize etmeyi unutmayın.
Uygulama kimliğini ekleme
Uygulama kimliğinizi Ad Manager kullanıcı arayüzünde bulabilirsiniz.
Aşağıdaki kod snippet'ini kullanarak kimliği
AndroidManifest.xml
öğenize 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ğıdaki adımları uygulayın:
ConsentInformation örneği tanımlayın:
Java
private final ConsentInformation consentInformation;
Kotlin
private lateinit var 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 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.
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ükleme ve sunma
En güncel izin durumunu aldıktan sonra, kullanıcı izni almak için gereken formları yüklemek üzere
loadAndShowConsentFormIfRequired() yöntemini çağırın. Yüklendikten sonra formlar 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. 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() yöntemini çağırdıktan sonra
getPrivacyOptionsRequirementStatus() 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.
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 koşul durumlarının tam listesi için
ConsentInformation.PrivacyOptionsRequirementStatus sayfasına bakın.
Gizlilik seçenekleri formunu sunma
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ı rızasıyla reklam isteğinde bulunma
Reklam isteğinde bulunmadan önce
canRequestAds() kullanarak kullanıcıdan izin alıp almadığınızı kontrol edin:
Java
consentInformation.canRequestAds();
Kotlin
consentInformation.canRequestAds()
Rıza toplarken reklam isteğinde bulunup bulunamayacağınızı kontrol etmek için aşağıdaki yerlere bakabilirsiniz:
- UMP SDK'sı mevcut oturumda izin aldıktan sonra.
requestConsentInfoUpdate()yöntemini çağırdıktan hemen sonra. UMP SDK, önceki uygulama oturumunda izin almış olabilir.
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() yöntemini çağırdıktan sonra
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.
requestConsentInfoUpdate()Hizmetleri İçin Arayın.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:
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.Test cihazı kimliğinizi panonuza kopyalayın.
Kodunuzu
ConsentDebugSettings.Builder().TestDeviceHashedIdsyöntemini ç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 konumu zorunlu kılma
UMP SDK'sı,
DebugGeography 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.
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 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.
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 sayfalarında bulabilirsiniz.