Geri bildiriminizi paylaşın ve Google Mobile Ads SDK'sı yol haritasının şekillendirilmesine yardımcı olun. 5 Mayıs 2023'te sona ermeden önce 2023 Google Mobile Ads SDK'sı Yıllık Anketi'ne katılın.

Başlayın

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

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

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.

Gerektiğinde formu sunarken 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.Builderkullanarak 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.

DebugGeographyile 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.

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.