Bu kılavuzda, Google Mobile Ads SDK'sına hedefleme bilgilerinin nasıl sağlanacağı açıklanmaktadır.
Çalışan bir örnek için Android API Demo uygulamasını indirin.Ön koşul
- Başlangıç kılavuzunu tamamlayın.
RequestConfiguration
RequestConfiguration
her reklam isteğine genel olarak uygulanan hedefleme bilgilerini toplar. Kullanılabilir hedefleme etiketleri için RequestConfiguration.Builder
belgelerine bakın.
İstek yapılandırmasını güncellemek için mevcut yapılandırmadan bir oluşturucu alın, istediğiniz güncellemeleri yapın ve aşağıdaki gibi ayarlayın:
val requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
RequestConfiguration requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Tüm reklam isteklerinin istek yapılandırması değişikliklerini uyguladığından emin olmak için Mobile Ads SDK'sını başlatmadan önce istek yapılandırmasını ayarlayın.
Çocuklara yönelik ayar
Çocukların Çevrimiçi Gizliliğini Koruma Yasası (COPPA) kapsamında "çocuklara yönelik olarak değerlendirme için etiketleme" adlı bir ayar bulunur. Bu etiketi ayarlayarak bu bildirimin doğru olduğunu ve uygulama sahibi adına işlem yapmaya yetkili olduğunuzu onaylıyorsunuz. Bu ayarın kötüye kullanımının Google Hesabınızın feshedilmesine yol açabileceğini anlıyorsunuz.
Uygulama geliştiricisi olarak, reklam isteğinde bulunduğunuzda Google'ın içeriğinizi çocuklara yönelik olarak değerlendirmesini isteyip istemediğinizi belirtebilirsiniz. Google'ın içeriğinizi çocuklara yönelik olarak değerlendirmesini istediğinizi belirtirseniz bu reklam isteğinde IBA ve yeniden pazarlama reklamlarını devre dışı bırakmak için gerekli adımları atarız.
Çocuklara yönelik ayarı aşağıdaki yöntemlerle uygulayabilirsiniz:
setTagForChildDirectedTreatment()
:
İçeriğinizin COPPA kapsamında çocuklara yönelik olarak değerlendirilmesini istediğinizi belirtmek için
setTagForChildDirectedTreatment
ileTAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE
işlevini çağırın. Bu, Android reklam kimliğinin (AAID) iletilmesini engeller.İçeriğinizin COPPA kapsamında çocuklara yönelik olarak değerlendirilmesini istemediğinizi belirtmek için
setTagForChildDirectedTreatment
ileTAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE
işlevini çağırın.Reklam isteklerinde içeriğinizin COPPA kapsamında nasıl değerlendirilmesini istediğinizi belirtmek istemiyorsanız
setTagForChildDirectedTreatment
ileTAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED
işlevini çağırın.
Aşağıdaki örnek, içeriğinizin COPPA kapsamında çocuklara yönelik olarak değerlendirilmesini istediğinizi gösterir:
val requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.setTagForChildDirectedTreatment(RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
RequestConfiguration requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.setTagForChildDirectedTreatment(RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Reşit olma yaşının altındaki kullanıcılar
Reklam isteklerinizi, Avrupa Ekonomik Alanı'nda (AEA) bulunan, reşit olmayan kullanıcılara yönelik olarak değerlendirilmesi için işaretleyebilirsiniz. Bu özellik, Genel Veri Koruma Yönetmeliği'ne (GDPR) uygunluğu kolaylaştırmak için tasarlanmıştır. GDPR kapsamında başka yasal yükümlülüklerinizin de olabileceğini unutmayın. Avrupa Birliği yönergelerini inceleyin ve kendi yasal danışmanınıza başvurun. Google araçlarının, uyumluluğu kolaylaştırmak için tasarlandığını ve yayıncının hukuki yükümlülüklerini azaltmadığını lütfen unutmayın. GDPR'nin yayıncıları nasıl etkilediği hakkında daha fazla bilgi edinin.
Bu özellik kullanılırken reklam isteğine Avrupa'da Reşit Olmayan Kullanıcılar İçin Etiket (TFUA) parametresi eklenir. Bu parametre, yeniden pazarlama dahil olmak üzere tüm reklam istekleri için kişiselleştirilmiş reklamcılığı devre dışı bırakır. Reklam ölçüm pikselleri ve üçüncü taraf reklam sunucuları gibi üçüncü taraf reklam sağlayıcılarına gönderilen istekleri de devre dışı bırakır.
Çocuklara yönelik ayarlar gibi, RequestConfiguration.Builder
içinde TFUA parametresini ayarlamak için bir yöntem vardır:
setTagForUnderAgeOfConsent()
,
aşağıdaki seçeneklerle.
Reklam isteğinin, Avrupa Ekonomik Alanı'nda (AEA) bulunan ve reşit olmayan kullanıcılara yönelik olarak değerlendirilmesini istediğinizi belirtmek için
setTagForUnderAgeOfConsent()
işleviniTAG_FOR_UNDER_AGE_OF_CONSENT_TRUE
ile çağırın. Bu, Android reklam kimliğinin (AAID) iletilmesini de engeller.Reklam isteğinin Avrupa Ekonomik Alanı'nda (AEA) reşit olma yaşının altındaki kullanıcılara yönelik olarak değerlendirilmemesini istediğinizi belirtmek için
setTagForUnderAgeOfConsent()
işleviniTAG_FOR_UNDER_AGE_OF_CONSENT_FALSE
ile çağırın.Reklam isteğinin Avrupa Ekonomik Alanı'nda (AEA) reşit olma yaşının altındaki kullanıcılara yönelik olarak değerlendirilip değerlendirilmeyeceğini belirtmediğinizi ifade etmek için
setTagForUnderAgeOfConsent()
ileTAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED
işlevini çağırın.
Aşağıdaki örnek, reklam isteklerinize TFUA'nın dahil edilmesini istediğinizi gösterir:
val requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.setTagForUnderAgeOfConsent(RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
RequestConfiguration requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.setTagForUnderAgeOfConsent(RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Çocuklara yönelik olarak değerlendirme ayarını ve setTagForUnderAgeOfConsent()
etiketlerini etkinleştiren etiketler aynı anda true
olarak ayarlanmamalıdır.
Bu şekilde ayarlanırlarsa çocuklara yönelik olma ayarı öncelikli olur.
Reklam içeriğini filtreleme
Google Play'in Uygunsuz Reklam Politikası'na (reklamdaki ilişkili teklifler dahil) uymak için, içeriğin kendisi Google Play'in politikalarına uygun olsa bile uygulamanızda gösterilen tüm reklamlar ve bunlarla ilişkili teklifler, uygulamanızın içerik derecelendirmesine uygun olmalıdır.
Maksimum reklam içeriği derecelendirmesi gibi araçlar, kullanıcılarınıza gösterilen reklamların içerikleri üzerinde daha fazla kontrole sahip olmanıza yardımcı olabilir. Platform politikalarına uygunluğu sağlamak için maksimum içerik derecelendirmesi ayarlayabilirsiniz.
Uygulamalar, reklam istekleri için maksimum reklam içeriği derecelendirmesini
setMaxAdContentRating
yöntemini kullanarak ayarlayabilir. Bu ayar yapılandırıldığında döndürülen AdMob reklamlarının içerik derecelendirmesi bu düzeyde veya daha düşüktür. Bu ağ ekstrası için olası değerler dijital içerik etiketi sınıflandırmalarına dayanır ve aşağıdaki dizelerden biri olmalıdır:
MAX_AD_CONTENT_RATING_G
MAX_AD_CONTENT_RATING_PG
MAX_AD_CONTENT_RATING_T
MAX_AD_CONTENT_RATING_MA
Aşağıdaki kod, döndürülen reklam içeriğinin G
'ten yüksek olmayan bir dijital içerik etiketi atamasına karşılık gelmesi gerektiğini belirtmek için bir RequestConfiguration
nesnesi yapılandırır:
val requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.setMaxAdContentRating(RequestConfiguration.MAX_AD_CONTENT_RATING_G)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
RequestConfiguration requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.setMaxAdContentRating(RequestConfiguration.MAX_AD_CONTENT_RATING_G)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Her reklam isteği için maksimum içerik derecelendirmesi ayarlama hakkında daha fazla bilgi edinin.
Yayıncı Gizlilik Değerlendirmesi (Beta)
Publisher Privacy Treatment
(PPT) API, uygulamaların setPublisherPrivacyPersonalizationState()
yöntemini kullanarak tüm reklam istekleri için reklam kişiselleştirmeyi devre dışı bırakıp bırakmayacağını belirtmesine olanak tanıyan isteğe bağlı bir araçtır. Bu özellik kullanılırken oturumun geri kalanında gelecekteki tüm reklam isteklerine bir yayıncı gizlilik işleme (PPT) parametresi eklenir.
Varsayılan olarak, Google'a yapılan reklam istekleri sonucunda kişiselleştirilmiş reklamlar yayınlanır. Aşağıdaki kod, tüm reklam istekleri için reklam kişiselleştirmeyi devre dışı bırakır:
val requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.setPublisherPrivacyPersonalizationState(PublisherPrivacyPersonalizationState.DISABLED)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
RequestConfiguration requestConfiguration = MobileAds.getRequestConfiguration()
.toBuilder()
.setPublisherPrivacyPersonalizationState(PublisherPrivacyPersonalizationState.DISABLED)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Reklam isteği
AdManagerAdRequest
nesnesi, reklam isteğiyle gönderilecek hedefleme bilgilerini toplar.
Ağ ekstraları ekleme
Ağ ekstraları, bir reklam isteğiyle gönderilen ve tek bir reklam kaynağına özgü ek ayrıntılardır.
Aşağıdaki kod snippet'i, Google'a collapsible
değerine sahip ekstra bir parametre anahtarı bottom
ayarlar:
val extras = Bundle()
extras.putString("collapsible", "bottom")
val adRequest = AdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter::class.java, extras)
.build()
adLoader.loadAd(adRequest)
Bundle extras = new Bundle();
extras.putString("collapsible", "bottom");
AdRequest adRequest = new AdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.build();
adLoader.loadAd(adRequest);
Özel hedefleme
Google Ad Manager kampanyalarını (satır öğeleri) hedeflemek için özel anahtar/değer çiftleri iletebilirsiniz. Aşağıdaki örnekte, bir reklam isteğinde özel bir anahtar/değer çifti iletilmektedir:
// Example: Pass custom targeting "age=25".
val newRequest = AdManagerAdRequest.Builder()
.addCustomTargeting("age", "25")
.build()
// Example: Pass custom targeting "age=25".
AdManagerAdRequest newRequest = new AdManagerAdRequest.Builder()
.addCustomTargeting("age", "25")
.build();
Bir anahtar için birden fazla değeri dize listesi olarak iletebilirsiniz. Örneğin, yalnızca 25 yaşındakileri değil, 25 yaş civarındaki kişileri hedeflemek için.
.addCustomTargeting("age", Arrays.asList("24", "25", "26"))
Kategori hariç tutmaları
Aşağıdaki yöntemi kullanarak bir isteğe yuva düzeyinde kategori hariç tutma düzeyi ekleyebilirsiniz:
addCategoryExclusion()
// Example: Exclude "automobile" and "boat" categories.
val newRequest = AdManagerAdRequest.Builder()
.addCategoryExclusion("automobile")
.addCategoryExclusion("boat")
.build()
// Example: Exclude "automobile" and "boat" categories.
AdManagerAdRequest newRequest = new AdManagerAdRequest.Builder()
.addCategoryExclusion("automobile")
.addCategoryExclusion("boat")
.build();
Android API Demo uygulamasında kategori hariç tutmalarının uygulanması için Ad Manager Kategori Hariç Tutmaları örneğini inceleyin.
Yayıncı tarafından sağlanan tanımlayıcılar
Sıklık sınırı, kitle segmentasyonu ve hedefleme, sıralı reklam rotasyonu ve cihazlar arasında diğer kitleye dayalı reklam yayınlama kontrollerinde kullanılmak üzere yayıncı tarafından sağlanan bir tanımlayıcı (PPID) ayarlayabilirsiniz.
PPID'nin ayarlanmasına ilişkin bir örneği aşağıda bulabilirsiniz:
val adRequest = AdManagerAdRequest.Builder()
.setPublisherProvidedId("AB123456789")
.build()
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
.setPublisherProvidedId("AB123456789")
.build();
Android API Demo uygulamasında yayıncı tarafından sağlanan tanımlayıcıların (PPID) uygulanması için Ad Manager PPID örneğine göz atın.
Yayıncı tarafından sağlanan sinyaller
Reklam isteklerinde kitle ve içeriğe dayalı verileri yayıncı tarafından sağlanan sinyaller (PPS) olarak gönderebilirsiniz. PPS ile, standart sınıflandırmaları kullanarak ve kullanıcı tanımlayıcılarını paylaşmanıza gerek kalmadan kitle özelliklerinizi tüm işlem türlerindeki teklif verenlerle paylaşarak kullanıcı verilerinizi programatik para kazanmayı iyileştirmek için kullanabilirsiniz. Kitle özellikleriniz davranışa ve ilgi alanına dayalı verileri (IAB Kitle Sınıflandırması 1.1) ve bağlama dayalı verileri (IAB İçerik Sınıflandırması 2.2) içerebilir.
val extras = Bundle()
// Set the demographic to an audience with an "Age Range" of 30-34 and an
// interest in mergers and acquisitions.
extras.putIntegerArrayList("IAB_AUDIENCE_1_1", arrayListOf(6,284))
// Set the content to sedan, station wagon and SUV automotive values.
extras.putIntegerArrayList("IAB_CONTENT_2_2", arrayListOf(4,5,6))
val request = AdManagerAdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter::class.java, extras)
.build()
Bundle extras = new Bundle();
// Set the demographic to an audience with an "Age Range" of 30-34 and an
// interest in mergers and acquisitions.
extras.putIntegerArrayList("IAB_AUDIENCE_1_1", arrayListOf(6,284));
// Set the content to sedan, station wagon and SUV automotive values.
extras.putIntegerArrayList("IAB_CONTENT_2_2", arrayListOf(4,5,6));
AdManagerAdRequest request = new AdManagerAdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.build();
İçerik URL'si
İçerik hedefli reklamlar ve marka güvenliği için bir içerik URL'si sağlamak üzere aşağıdakileri ekleyin:
val builder = AdManagerAdRequest.Builder()
builder.setContentUrl("https://www.example.com")
val request = builder.build()
AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
builder.setContentUrl("https://www.example.com");
AdManagerAdRequest request = builder.build();
Marka güvenliği (Beta)
Farklı kitlelere yönelik dinamik içerik gösteren uygulamalar, kısa bir URL listesi sağlayabilir:
val urls = mutableListOf("https://www.mycontenturl1.com", "https://www.mycontenturl2.com",
"https://www.mycontenturl3.com", "https://www.mycontenturl4.com")
val requestWithContent = AdManagerAdRequest.Builder()
.setNeighboringContentUrls(urls)
.build()
ArrayList<String> urls = new ArrayList<String>();
urls.add("https://www.mycontenturl1.com");
urls.add("https://www.mycontenturl2.com");
urls.add("https://www.mycontenturl3.com");
urls.add("https://www.mycontenturl4.com");
AdManagerAdRequest requestWithContent = new AdManagerAdRequest.Builder()
.setNeighboringContentUrls(urls)
.build();
.setNeighboringContentUrls()
, yalnızca marka güvenliği için kullanılması bakımından .setContentUrl()
'den farklıdır.