Play Age Signals API'yi (beta) kullanarak hizmet şartlarını kabul etmiş ve tüm Google Play geliştirici politikalarına uymayı kabul etmiş olursunuz. Kullanıcının durumunu ve yaş grubunu istemek için çalışma zamanında uygulamanızdan API'yi çağırırsınız. Google Play Age Signals API, yalnızca Google Play'in yaş kategorisi verileri sağlamasının yasal olarak zorunlu olduğu bölgelerde bulunan kullanıcılara ait verileri döndürür.
Play, geçerli yargı alanı ve bölgeler tarafından tanımlanan yaş aralıklarına göre bir yaş grubu döndürür. API'nin geçerli yargı alanları ve bölgelerde döndürdüğü varsayılan yaşlar 0-12, 13-15, 16-17 ve 18+ şeklindedir ancak özel yaş aralıkları da alınabilir. Google Play, kullanıcının doğum gününden sonraki 2-8 hafta içinde kullanıcının önbelleğe alınmış yaş sinyallerini otomatik olarak günceller.
Play Age Signals API'yi uygulamanıza entegre etme
Play Age Signals API, Android 6.0 (API düzeyi 23) ve sonraki sürümlerin yüklü olduğu telefonlarda, katlanabilir cihazlarda ve tabletlerde desteklenir. Play Age Signals API'yi uygulamanıza entegre etmek için uygulamanızın build.gradle dosyasına aşağıdaki bağımlılığı ekleyin:
implementation 'com.google.android.play:age-signals:0.0.3'
Yaş sinyalleri isteyin
Aşağıda, yaş sinyalleri isteğinde bulunma örneği verilmiştir:
Kotlin
// Create an instance of a manager val ageSignalsManager = AgeSignalsManagerFactory.create(ApplicationProvider.getApplicationContext()) // Request an age signals check ageSignalsManager .checkAgeSignals(AgeSignalsRequest.builder().build()) .addOnSuccessListener { ageSignalsResult -> // Store the install ID for later... val installId = ageSignalsResult.installId() if (ageSignalsResult.userStatus() == AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED) { // Disallow access... } else { // Do something else if the user is VERIFIED, DECLARED, SUPERVISED, etc. } }
Java
// Create an instance of a manager AgeSignalsManager ageSignalsManager = AgeSignalsManagerFactory.create(ApplicationProvider.getApplicationContext()); // Request an age signals check ageSignalsManager .checkAgeSignals(AgeSignalsRequest.builder().build()) .addOnSuccessListener( ageSignalsResult -> { // Store the install ID for later... String installId = ageSignalsResult.installId(); if (ageSignalsResult .userStatus() .equals(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED)) { // Disallow access ... } else { // Do something else if the user is SUPERVISED, VERIFIED, etc. } });
(İsteğe bağlı) Özel yaş aralıkları alma
API'nin geçerli yargı alanları ve bölgelerde döndürdüğü varsayılan yaş aralıkları 0-12, 13-15, 16-17 ve 18+ şeklindedir.
Dilerseniz varsayılan yaş aralıklarını uygulamanızın minimum yaşlarına göre özelleştirmek için Google Play Console'daki Yaş sinyalleri sayfasında uygulamanızın minimum yaşlarını belirtebilirsiniz.
- Play Console'da Yaş sinyalleri sayfasına gidin.
- Özel yaş aralıkları sekmesinde uygulamanız için en fazla üç minimum yaş girin. Minimum yaşlar arasında en az 2 yıl fark olmalıdır ve bu ayar yılda yalnızca bir kez değiştirilebilir.
- Kaydet'i tıklayın.
Döndürülen yaş aralıkları, varsayılan API yanıtını geçersiz kılar. Örneğin:
Google Play Console'da tek bir minimum yaş (15) belirlediyseniz:
- 0-14 yaş aralığındaki bir kullanıcı için
ageLower = 0veageUpper = 14döndürülür. - 15 yaşından büyük bir kullanıcı,
ageLower = 15yanıtını alır.
- 0-14 yaş aralığındaki bir kullanıcı için
İki minimum yaş (13 ve 17) belirlediyseniz:
- 0-12 yaş aralığındaki bir çocuk için
ageLower = 0veageUpper = 12döndürülür. - 13-16 yaş arası bir kullanıcı
ageLower = 13veageUpper = 16değerlerini döndürür. - 17 yaşından büyük bir kullanıcı
ageLower = 17döndürür.
- 0-12 yaş aralığındaki bir çocuk için
Üç minimum yaş belirlediyseniz (11, 13 ve 15):
- 0-10 yaş aralığındaki bir kullanıcı için
ageLower = 0veageUpper = 10değerleri döndürülür. - 11 veya 12 yaşındaki bir çocuk,
ageLower = 11veageUpper = 12uygulamalarına geri döner. - 13 veya 14 yaşındaki bir çocuk
ageLower = 13veageUpper = 14uygulamasına geri döner. - 15 yaşından büyük bir kullanıcı,
ageLower = 15yanıtını alır.
- 0-10 yaş aralığındaki bir kullanıcı için
Yaş sinyalleri yanıtları
Play Age Signals API (Beta) yanıtı aşağıdaki alanları ve değerleri içerir. Değerler değişebilir. En son değerleri istiyorsanız uygulamanız açıldığında bir API yanıtı isteyin. Bu sinyalleri kullanarak yaşa uygun deneyimler sunmak sizin sorumluluğunuzdadır.
| Yanıt alanı | Değerler | Açıklama |
|---|---|---|
userStatus |
DOĞRULANDI | Google, kullanıcının yaşını resmi kimlik, kredi kartı veya yüzle yaş tahmini gibi ticari olarak makul bir yöntemle doğruladı. userStatus değeri VERIFIED ise diğer alanları yoksayabilirsiniz.
Kullanıcının yaş grubunu belirlemek için ageLower ve ageUpper simgelerini kullanın.
|
| BEYAN EDİLDİ | Kullanıcının yaşı, kendisi, ebeveyni veya yasal vasisi tarafından belirtilmiş olmalıdır.
Kullanıcının yaş grubunu belirlemek için ageLower ve ageUpper simgelerini kullanın. |
|
| DENETLENEN | Kullanıcı, yaşını belirleyen bir ebeveyn tarafından yönetilen gözetimli Google Hesabı'na sahiptir.
Kullanıcının yaş grubunu belirlemek için ageLower ve ageUpper simgelerini kullanın.
Onaylanan son önemli değişikliği belirlemek için mostRecentApprovalDate öğesini kullanın. |
|
| SUPERVISED_APPROVAL_PENDING | Kullanıcının gözetimli bir Google Hesabı var ve gözetimci ebeveyni, bekleyen önemli değişikliklerden birini veya daha fazlasını henüz onaylamadı.
Kullanıcının yaş grubunu belirlemek için ageLower ve ageUpper simgelerini kullanın.
Onaylanan son önemli değişikliği belirlemek için mostRecentApprovalDate öğesini kullanın. |
|
| SUPERVISED_APPROVAL_DENIED | Kullanıcının gözetimli bir Google Hesabı var ve gözetimci ebeveyni, bir veya daha fazla önemli değişikliği onaylamadı.
Kullanıcının yaş grubunu belirlemek için ageLower ve ageUpper simgelerini kullanın.
Onaylanan son önemli değişikliği belirlemek için mostRecentApprovalDate öğesini kullanın. |
|
| BİLİNMİYOR | Kullanıcının yaşı bilinmiyor ve kullanıcı, geçerli bir yargı alanında veya bölgede bulunuyor.
Yalnızca ABD eyaletlerinde geçerlidir: Google Play'den yaş sinyali almak için kullanıcıdan Play Store'u ziyaret ederek durumunu düzeltmesini isteyin. |
|
null |
Kullanıcı, uygun yargı alanlarında ve bölgelerde değildir.
Veya kullanıcı, yaşını uygulamalarla paylaşmıyordur. |
|
ageLower |
0-18 | Gözetimli kullanıcının yaş grubunun (dahil) alt sınırı.
Kullanıcının yaş grubunu belirlemek için ageLower ve ageUpper simgelerini kullanın. |
null |
userStatus bilinmiyor veya null. |
|
ageUpper |
2-18 | Gözetimli kullanıcının yaş grubunun üst sınırı (dahil).
Kullanıcının yaş grubunu belirlemek için ageLower ve ageUpper simgelerini kullanın. |
null |
Ya userStatus gözetimli olmalı ve kullanıcının ebeveyninin onayladığı yaş 18'den büyük olmalıdır.
Veya userStatus bilinmiyor ya da null. |
|
mostRecentApprovalDate |
Tarih damgası | Onaylanan en son önemli değişikliğin effective from tarihi. Bir uygulama yüklendiğinde, yüklemeden önceki en son önemli değişikliğin tarihi kullanılır. |
null |
Ya userStatus denetleniyor ve önemli bir değişiklik gönderilmedi.
Veya userStatus doğrulandı, bilinmiyor veya null. |
|
installID |
Play tarafından oluşturulan alfanümerik kimlik. | Google Play tarafından denetimli kullanıcı yüklemelerine atanan ve uygulama onayının iptal edildiğini size bildirmek için kullanılan kimlik. İptal edilen uygulama onayları ile ilgili dokümanları inceleyin. |
null |
userStatus doğrulandı, bilinmiyor veya null. |
Brezilya'daki kullanıcılar için örnek yanıtlar
Brezilya'da userStatus yalnızca DECLARED, UNKNOWN veya null olabilir.
Yaşını beyan eden ve uygulamalarla paylaşan bir kullanıcı için aşağıdakileri alırsınız:
userStatus,AgeSignalsVerificationStatus.DECLAREDolurdu.ageLowerbir sayı olmalıdır (örneğin, 13).ageUpper, bir sayı veyanull(örneğin, 15) olmalıdır.- Diğer yanıt alanları
nullolur.
Yaşı bilinmeyen bir kullanıcı için aşağıdakileri alırsınız:
userStatus,AgeSignalsVerificationStatus.UNKNOWNolurdu.- Diğer yanıt alanları
nullolur.
Yaşı uygulamalarla paylaşılmayan bir kullanıcı için aşağıdakileri alırsınız:
userStatus,nullolurdu.- Diğer yanıt alanları
nullolur.
Kullanıcının yaşı paylaşılabilir olduğunda kullanıcı durumu DECLARED olarak değişebilir.
ABD eyaletlerindeki kullanıcılar için örnek yanıtlar
ABD'deki geçerli eyaletlerde userStatus, VERIFIED,
SUPERVISED, SUPERVISED_APPROVAL_PENDING,
SUPERVISED_APPROVAL_DENIED, UNKNOWN veya
null olabilir.
Doğrulanmış bir kullanıcı için aşağıdakileri alırsınız:
userStatus,AgeSignalsVerificationStatus.VERIFIEDolurdu.ageLowerbir sayı (örneğin, 18) olmalıdır.ageUpper, bir sayı veyanull(örneğin,null) olmalıdır.- Diğer yanıt alanları
nullolur.
Gözetimli kullanıcılar için aşağıdakileri alırsınız:
userStatus,AgeSignalsVerificationStatus.SUPERVISEDolurdu.ageLowerbir sayı olmalıdır (örneğin, 13).ageUpper, bir sayı veyanull(örneğin, 15) olmalıdır.mostRecentApprovalDate, bir Java tarih nesnesi (örneğin,2026-01-01) veyanull(önemli bir değişiklik onaylanmadıysa) olur.installID, Play tarafından oluşturulan alfanümerik bir kimlik olur (ör.550e8400-e29b-41d4-a716-446655441111).
Onay bekleyen önemli bir değişiklik olan gözetimli kullanıcı için aşağıdakileri alırsınız:
userStatus,AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDINGolur.ageLowerbir sayı olmalıdır (örneğin, 13).ageUpper, bir sayı veyanull(örneğin, 15) olmalıdır.mostRecentApprovalDate, bir Java tarih nesnesi (örneğin,2026-01-01) veyanull(önemli bir değişiklik onaylanmamışsa) olur.installID, Play tarafından oluşturulan alfanümerik bir kimlik olur (ör.550e8400-e29b-41d4-a716-446655441111).
API hata kodlarını işleme
Uygulamanız Play Age Signals API isteğinde bulunur ve çağrı başarısız olursa uygulamanız bir hata kodu alır. Bu hatalar, Play Store uygulamasının güncel olmaması gibi çeşitli nedenlerden kaynaklanabilir.
Yeniden deneme stratejisi
Kullanıcının oturumda olduğu durumlarda, hatanın kullanıcı deneyimini mümkün olduğunca az etkilemesi için çıkış koşulu olarak maksimum deneme sayısına sahip bir yeniden deneme stratejisi uygulamanızı öneririz.
| Hata kodunun sayısal değeri | Hata Kodu | Açıklama | Yeniden denenebilir |
|---|---|---|---|
| -1 | API_NOT_AVAILABLE | Play Age Signals API kullanılamıyor. Cihazda yüklü Play Store uygulaması sürümü eski olabilir. Olası çözüm
|
Evet |
| -2 | PLAY_STORE_NOT_FOUND | Cihazda Play Store uygulaması bulunmuyor. Kullanıcıdan Play Store'u yüklemesini veya etkinleştirmesini isteyin. | Evet |
| -3 | NETWORK_ERROR | Kullanılabilir ağ bulunamadı. Kullanıcıdan bağlantı olup olmadığını kontrol etmesini isteyin. | Evet |
| -4 | PLAY_SERVICES_NOT_FOUND | Play Hizmetleri kullanılamıyor veya sürümü çok eski. Kullanıcıdan Play Hizmetleri'ni yüklemesini, güncellemesini veya etkinleştirmesini isteyin. | Evet |
| -5 | CANNOT_BIND_TO_SERVICE | Play Store'daki hizmete bağlama işlemi başarısız oldu. Bunun nedeni, cihazda eski bir Play Store sürümünün yüklü olması veya cihaz belleğinin aşırı yüklenmesi olabilir. Kullanıcıdan Play Store uygulamasını güncellemesini isteyin. Eksponansiyel geri yüklemeyle yeniden deneyin. | Evet |
| -6 | PLAY_STORE_VERSION_OUTDATED | Play Store uygulamasının güncellenmesi gerekiyor. Kullanıcıdan Play Store uygulamasını güncellemesini isteyin. | Evet |
| -7 | PLAY_SERVICES_VERSION_OUTDATED | Play Hizmetleri'nin güncellenmesi gerekiyor. Kullanıcıdan Play Hizmetleri'ni güncellemesini isteyin. | Evet |
| -8 | CLIENT_TRANSIENT_ERROR | İstemci cihazda geçici bir hata oluştu. Çıkış koşulu olarak maksimum deneme sayısını içeren bir yeniden deneme stratejisi uygulayın. Sorun devam ederse kullanıcıdan daha sonra tekrar denemesini isteyin. | Evet |
| -9 | APP_NOT_OWNED | Uygulama, Google Play tarafından yüklenmemiştir. Kullanıcıdan uygulamanızı Google Play'den edinmesini isteyin. | Hayır |
| -10 | SDK_VERSION_OUTDATED | Play Age Signals SDK sürümü artık desteklenmiyor. Kullanıcıdan, uygulamanızı Play Age Signals SDK'sının yeni bir sürümünü kullanan daha yeni bir sürüme güncellemesini isteyin. | Hayır |
| -100 | INTERNAL_ERROR | Bilinmeyen dahili hata. Çıkış koşulu olarak maksimum deneme sayısını içeren bir yeniden deneme stratejisi uygulayın. Sorun devam ederse kullanıcıdan daha sonra tekrar denemesini isteyin. Doğrulama sürekli olarak başarısız olursa Google Play Geliştirici Destek Ekibi ile iletişime geçin, konuya Play Age Signals API'yi ekleyin ve mümkün olduğunca çok teknik ayrıntı (ör. hata raporu) ekleyin. | Hayır |