Google AB Kullanıcı Rızası Politikası uyarınca Avrupa Ekonomik Alanı'ndaki (AEA) kullanıcılarınızla Birleşik Krallık genelinde belirli açıklamalar yapmanız ve yasal olarak gerekli olduğu durumlarda çerez veya başka yerel depolama bilgilerinin yanı sıra reklam yayınlamak için kişisel verileri (AdID gibi) kullanma konusunda izin almanız gerekir. Bu politika AB eGizlilik Yönergesi ve Genel Veri Koruma Yönetmeliği'nin (GDPR) şartlarını yansıtmaktadır.
Google, yayıncıları bu politika kapsamındaki gereksinimleri yerine getirmeleri konusunda desteklemek için User Messaging Platform (UMP) SDK'sını sunar. UMP SDK'sı en son IAB standartlarını destekleyecek şekilde güncellendi. Tüm bu yapılandırmalar artık gizlilik ve mesajlaşma AdMob özelliğiyle kolayca yönetilebilir.
Ön koşullar
- Başlangıç kılavuzunu tamamlayın.
- AdMob Hesabınızın Gizlilik ve mesajlaşma sekmesi altında mesajlarınızı yapılandırın. Daha fazla bilgi için Gizlilik ve mesajlaşma hakkında,
- GDPR ile ilgili şartlar üzerinde çalışıyorsanızIAB şartları AB kullanıcı rızası alma mesajlarını nasıl etkiler? başlıklı makaleyi okuyun.
Kullanıcı mesajı türleri
Desteklenen mesajların tam listesi için Kullanıcı mesajı türleri başlıklı makaleyi inceleyin. Her mesaj türünün uygulanmasıyla ilgili özel talimatlar için soldaki gezinme çubuğuna bakın.
Gradle ile yükle
Google Mobile Ads SDK'sının 19.8.0 veya daha yeni bir sürümünü kullanıyorsanız UMP SDK'sı paketinize dahildir. Mobile Ads SDK'sının önceki bir sürümünü kullanıyorsanız UMP SDK'sını uygulamanızın build.gradle dosyasına aşağıdaki şekilde ekleyin:
dependencies {
// This dependency is automatically included by Google Mobile Ads SDK 19.8.0
// or higher.
implementation 'com.google.android.ump:user-messaging-platform:2.0.0'
}
Uygulamanızın build.gradle dosyasında değişiklik yaptıktan sonra projenizi Gradle dosyalarıyla senkronize etmeyi unutmayın.
Ardından,
uygulama kimliğinizi bulun
ve AndroidManifest.xml
hesabınıza ekleyin:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rewardedinterstitialexample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- Sample app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Bir mesajın gösterilmesi gerekip gerekmediğini belirleme
Her uygulama başlatmada bir form yüklemeden önce requestConsentInfoUpdate()
kullanarak kullanıcının izin bilgilerinin güncellenmesini istemeniz gerekir.
Kullanıcılarınızın daha önce izin vermemiş olması veya izinlerinin süresinin dolması durumunda bu kullanıcıların izin vermesi gerekip gerekmediğini belirleyebilirsiniz.
consentInformation
nesnede depolanan bilgileri kullanın.
Uygulama başlangıcında durumun nasıl kontrol edileceğine ilişkin bir örnek aşağıda verilmiştir:
Java
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.google.android.ump.ConsentForm; import com.google.android.ump.ConsentInformation; import com.google.android.ump.ConsentRequestParameters; import com.google.android.ump.FormError; import com.google.android.ump.UserMessagingPlatform; public class MainActivity extends AppCompatActivity { private ConsentInformation consentInformation; private ConsentForm consentForm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Set tag for under age of consent. false means users are not under // age. ConsentRequestParameters params = new ConsentRequestParameters .Builder() .setTagForUnderAgeOfConsent(false) .build(); consentInformation = UserMessagingPlatform.getConsentInformation(this); consentInformation.requestConsentInfoUpdate( this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } }); } }
Kotlin
Coming soon.
Varsa form yükleyin
Bir formu görüntülemeden önce, kullanılabilir bir form olup olmadığını belirlemeniz gerekir. Kullanılamayan formlar, kullanıcının sınırlı reklam izlemeyi etkinleştirmesi veya reşit olma yaşının altında olarak etiketlemiş olmasından kaynaklanabilir.
Bir formun kullanılabilirliğini kontrol etmek için daha öncethe isConsentFormAvailable()
method on the ConsentInformation
instance oluşturduğunuz formu kullanın.
Ardından, formu yüklemek için bir sarmalayıcı yöntemi ekleyin:
Java
... consentInformation.requestConsentInfoUpdate( this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. if (consentInformation.isConsentFormAvailable()) { loadForm(); } } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } }); } public void loadForm() { } }
Kotlin
Coming soon.
Formu yüklemek için the static loadConsentForm()
method on the UserMessagingPlatform
classkodunu kullanın.
Java
public void loadForm() { // Loads a consent form. Must be called on the main thread. UserMessagingPlatform.loadConsentForm( this, new UserMessagingPlatform.OnConsentFormLoadSuccessListener() { @Override public void onConsentFormLoadSuccess(ConsentForm consentForm) { MainActivity.this.consentForm = consentForm; } }, new UserMessagingPlatform.OnConsentFormLoadFailureListener() { @Override public void onConsentFormLoadFailure(FormError formError) { // Handle the error } } ); }
Kotlin
Coming soon.
Gerekirse formu gönderin
Formun kullanılabilirliğini belirledikten ve yükledikten sonraConsentForm
örneğindekishow()
yöntemini kullanarak formu sunun.
Daha öncekiconsentInformation
nesneyi kullanarakconsent status
loadForm()
yönteminizi güncelleyin:
Java
public void loadForm() { UserMessagingPlatform.loadConsentForm( this, new UserMessagingPlatform.OnConsentFormLoadSuccessListener() { @Override public void onConsentFormLoadSuccess(ConsentForm consentForm) { MainActivity.this.consentForm = consentForm; if(consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.REQUIRED) { consentForm.show( MainActivity.this, new ConsentForm.OnConsentFormDismissedListener() { @Override public void onConsentFormDismissed(@Nullable FormError formError) { // Handle dismissal by reloading form. loadForm(); } }); } } }, new UserMessagingPlatform.OnConsentFormLoadFailureListener() { @Override public void onConsentFormLoadFailure(FormError formError) { /// Handle Error. } } ); }
Kotlin
Coming soon.
Kullanıcı bir seçim yaptıktan veya formu kapattıktan sonra herhangi bir işlem yapmanız gerekirse bu mantığı formunuzun tamamlanma işleyicisine veya geri çağırmasına yerleştirin.
Test
Coğrafi konumu zorunlu kılın
UMP SDK'sı, cihaz the setDebugGeography
method on ConsentDebugSettings.Builder
kullanarak AEA veya Birleşik Krallık'taymış gibi uygulamanızın davranışını test etmenin bir yolunu sunar.
Hata ayıklama işlevini kullanmak için uygulamanızın hata ayıklama ayarlarında test cihazınızın karma kimliğini sağlamanız gerekir. Bu değeri ayarlamadanrequestConsentInfoUpdate()
yöntemini çağırırsanız uygulamanız çalıştırıldığında gerekli kimlik karmasını günlüğe kaydeder.
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); consentInformation.requestConsentInfoUpdate(this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } });
Kotlin
Coming soon.
DebugGeography
ile aşağıdaki seçeneklerden birini zorunlu kılabilirsiniz:
Hata Ayıklama Coğrafyası | Açıklama |
---|---|
DEBUG_GEOGRAPHY_DISABLED |
Hata ayıklama konumu devre dışı bırakıldı. |
DEBUG_GEOGRAPHY_EEA |
Coğrafya, hata ayıklama cihazları için AEA'da olduğu gibi görünür. |
DEBUG_GEOGRAPHY_NOT_EEA |
Hata ayıklama cihazları için bu bölgenin AEA'da olmadığı anlaşılıyor. |
Hata ayıklama ayarlarının yalnızca test cihazlarında çalıştığını unutmayın. Testler varsayılan olarak zaten etkinleştirildiğinden, emülatörlerin cihaz kimliği listenize eklenmesi gerekmez.
İzin durumunu sıfırla
UMP SDK'sıyla uygulamanızı test ederken, bir kullanıcının ilk yükleme deneyimini simüle etmek için SDK durumunu sıfırlamanız yararlı olabilir.
SDK, bunu yapmanın reset()
yöntemini sunar.
Java
consentInformation.reset();
Kotlin
consentInformation.reset()
UMP SDK'sını projenizden tamamen kaldırmaya karar verirseniz reset()
yöntemini de çağırmanız gerekir.