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. UMP örnek uygulamasında UMP SDK'sı ile çalışan bir IMA uygulamasını görebilirsiniz.
Ön koşullar
- Android API düzeyi 21 veya sonraki sürümler
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 Interactive Media Ads 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
Ad Manager 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>
İ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()
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
loadAndShowConsentFormIfRequired()
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:
Java
// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
activity,
params,
() ->
UserMessagingPlatform.loadAndShowConsentFormIfRequired(
activity, onConsentGatheringCompleteListener::consentGatheringComplete),
onConsentGatheringCompleteListener::consentGatheringComplete);
Kotlin
// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
activity,
params,
{
UserMessagingPlatform.loadAndShowConsentFormIfRequired(activity) { formError ->
// Consent has been gathered.
onConsentGatheringCompleteListener.consentGatheringComplete(formError)
}
},
{ requestConsentError ->
onConsentGatheringCompleteListener.consentGatheringComplete(requestConsentError)
},
)
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()
işlevini çağırdıktan sonra, uygulamanız için gizlilik seçenekleri giriş noktası gerekip gerekmediğini belirlemek üzere
ConsentInformation.PivacyOptionsRequirementStatus
değerini kontrol edin:
Java
/** Helper function to determine if a privacy options entry point 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
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.
Java
// Check ConsentInformation.getPrivacyOptionsRequirementStatus() to see the button should
// be shown or hidden.
if (consentManager.isPrivacyOptionsRequired()) {
privacyButton.setVisibility(View.VISIBLE);
}
Kotlin
// Check ConsentInformation.getPrivacyOptionsRequirementStatus() to see the button should
// be shown or hidden.
if (consentManager.isPrivacyOptionsRequired) {
privacyButton.visibility = View.VISIBLE
}
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)
Reklam isteğinde bulun
Uygulamanızda reklam istemeden önce
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()
'ü 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.
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:
Java
consentManager.gatherConsent(
consentError -> {
if (consentError != null) {
// Consent not obtained in current session.
Log.i(
LOGTAG,
"Consent Error: "
+ String.format(
"%s: %s", consentError.getErrorCode(), consentError.getMessage()));
}
if (consentManager.canRequestAds()) {
initializeImaSdk();
} else {
Log.i(LOGTAG, "Consent not available to request ads");
}
// ...
});
// This sample attempts to load ads using consent obtained in the previous session.
if (consentManager.canRequestAds()) {
initializeImaSdk();
}
Kotlin
consentManager.gatherConsent(this) { error ->
if (error != null) {
// Consent not obtained in current session.
Log.d(LOGTAG, "${error.errorCode}: ${error.message}")
}
if (consentManager.canRequestAds) {
initializeImaSdk()
} else {
Log.i(LOGTAG, "Consent not available to request ads")
}
// ...
}
// This sample attempts to load ads using consent obtained in the previous session.
if (consentManager.canRequestAds) {
initializeImaSdk()
}
Aşağıdaki kod, kullanıcının izni alındıktan sonra Interactive Media Ads SDK'sını ayarlar:
Java
private void initializeImaSdk() {
if (sdkFactory != null) {
// If the SDK is already initialized, do nothing.
return;
}
sdkFactory = ImaSdkFactory.getInstance();
adDisplayContainer =
ImaSdkFactory.createAdDisplayContainer(videoPlayerContainer, videoAdPlayerAdapter);
createAdsLoader();
setUpPlayButton();
}
Kotlin
private fun initializeImaSdk() {
sdkFactory = ImaSdkFactory.getInstance()
adDisplayContainer = ImaSdkFactory.createAdDisplayContainer(videoPlayerContainer, videoAdPlayerAdapter)
createAdsLoader()
setUpPlayButton()
}
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().addTestDeviceHashedId()
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ı, DebugGeography'yi 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 UmpExample dosyasında bulabilirsiniz.