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
Yaş sinyalleri isteğinde bulunma örneğini aşağıda görebilirsiniz:
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ı alın
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.
Alternatif olarak, varsayılan yaş aralıklarını uygulamanızın minimum yaşlarına göre özelleştirmek için Google Play Console'daki Age Signals sayfasında uygulamanızın minimum yaşlarını belirtebilirsiniz. Döndürülen yaş aralıkları, varsayılan API yanıtını geçersiz kılar. Örneğin, minimum yaşları 9, 15 ve 17 olarak girerseniz 14 yaşındaki bir kullanıcı 10-15 yaş grubuna dahil edilir.
Age Signals API tarafından döndürülen varsayılan yaş aralıklarını özelleştirmek için 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.
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öntem kullanarak doğruladı. userStatus değeri VERIFIED ise diğer alanları yoksayabilirsiniz.
Kullanıcının yaş grubunu belirlemek için ageLower ve ageUpper öğelerini 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 öğelerini kullanın. |
|
| DENETLENEN | Kullanıcının, yaşını belirleyen bir ebeveyn tarafından yönetilen gözetimli Google Hesabı olmalıdır.
Kullanıcının yaş grubunu belirlemek için ageLower ve ageUpper öğelerini kullanın.
Onaylanan son önemli değişikliği belirlemek için mostRecentApprovalDate simgesini 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 öğelerini kullanın.
Onaylanan son önemli değişikliği belirlemek için mostRecentApprovalDate simgesini 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 öğelerini kullanın.
Onaylanan son önemli değişikliği belirlemek için mostRecentApprovalDate simgesini 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 bulunmuyor.
Veya kullanıcı, yaşını uygulamalarla paylaşmıyordur. |
|
ageLower |
0-18 | Gözetimli kullanıcının yaş grubunun (kapsayıcı) alt sınırı.
Kullanıcının yaş aralığını 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 (dahil) üst sınırı.
Kullanıcının yaş aralığını 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) olur.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 onaylanmamışsa) 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ıyı 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üklenmiş olması 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 |