Kurulum

Bu sayfada, uygulamanızı veya oyununuzu Play Integrity API'yi kullanacak şekilde nasıl ayarlayacağınız açıklanmaktadır. API'den gelen yanıtları etkinleştirmeniz, ardından API'yi uygulamanıza ve uygulamanızın arka uç sunucusuna entegre etmeniz gerekir. Google Play Console'da Play Integrity API için kullandığınız Google Cloud projesini bağladığınızda ek yapılandırma seçenekleri, test özellikleri ve raporlama kullanılabilir hale gelir.

Play Integrity API yanıtlarını etkinleştirme

Play Integrity API'yi çağıran her uygulama veya SDK, API kullanımını izlemek için bir Google Cloud projesinden yararlanmalıdır. Google Play'deki uygulamalar, Play Integrity API yanıtlarını etkinleştirmek için Google Play Console'da bir Cloud projesini bağlayabilir. Yeni bir Cloud projesi oluşturmak istiyorsanız veya uygulamanız yalnızca Google Play dışına dağıtılıyorsa Google Cloud Console'dan Play Integrity API yanıtlarını etkinleştirebilirsiniz.

Google Play Console'da ayarla (önerilir)

Google Play Console'da Play Integrity API yanıtlarını etkinleştirerek ek yapılandırma seçeneklerine, test özelliklerine ve API raporlarına erişebilirsiniz. Bu seçenek yalnızca Google Play'de dağıtılan uygulamalarda kullanılabilir. Sürüm > Uygulama bütünlüğü'ne gidin. Play Integrity API bölümünde Cloud projesi bağla'yı seçin. Uygulamanıza bağlamak istediğiniz Cloud projesini seçin. Bu işlem, Play Integrity API yanıtlarını etkinleştirir. Artık Play Integrity API'yi uygulamanıza entegre edebilirsiniz.

Google Cloud Console'da ayarla

Google Cloud Console'da yeni bir Cloud projesi oluşturun veya Play Integrity API ile kullanmak istediğiniz mevcut bir Cloud projesini seçin. API'ler ve hizmetler'e gidin. API'leri ve hizmetleri etkinleştir'i seçin. Play Integrity API'yi bulup etkinleştirin. Artık Play Integrity API'yi uygulamanıza entegre edebilirsiniz.

SDK sağlayıcılar için talimatları ayarlama

SDK sağlayıcıların, Play Integrity API'yi çağırmak için kendi Google Cloud projelerini kullanmaları gerekir. Böylece API kullanımı, SDK'yı kullanan bağımsız uygulamalarla değil, SDK'yla ilişkilendirilir. Yani, SDK'nızı kullanan uygulamaların Play Integrity API'yi ayrı ayrı ayarlaması gerekmez. Play Integrity API'ye gönderdiğiniz istekler, uygulamaya değil otomatik olarak SDK'nızın API kullanımına dahil edilir.

SDK geliştiricilerinin Play Integrity API'yi kurmak için iki seçeneği vardır: Google Play SDK Console veya Google Cloud Console.

Google Play SDK Console'da Play Integrity API yanıtlarını etkinleştirerek ek yapılandırma seçeneklerine erişebilirsiniz. SDK bütünlüğü'ne gidip Ayarlar'ı tıklayın. Proje yapılandırması bölümünde Cloud projesi bağla'yı seçin. SDK'nıza bağlamak istediğiniz Cloud projesini seçin. Bu işlem, Play Integrity API yanıtlarını etkinleştirir. Artık Play Integrity API'yi SDK'nıza entegre edebilirsiniz. Google Play SDK Console'a erişimin, uygunluk ölçütlerine tabi olduğunu unutmayın.

Google Cloud Console'u kullanma

Play Integrity API yanıtlarını Google Cloud Console'dan etkinleştirebilirsiniz. Google Cloud Console'da yeni bir Cloud projesi oluşturun veya Play Integrity API ile kullanmak istediğiniz mevcut bir Cloud projesini seçin. API'ler ve hizmetler'e gidin. API'leri ve hizmetleri etkinleştir'i seçin. Play Integrity API'yi bulup etkinleştirin. Artık Play Integrity API'yi SDK'nıza entegre edebilirsiniz.

SDK'nızın günlük Play Integrity API isteklerini artırın

Günlük maksimum istek sayısını artırmak isteyen SDK sağlayıcılar kota istek formunu doldurmalıdır. Açık yorumlar bölümünde, SDK isteğinde bulunduğunuzu belirtin ve Maven koordinatlarınızı (groupId:artifactId) veya SDK'nızın URL'sini ekleyin.

Günlük Play Integrity API isteklerinizi artırın

Uygulamanız,uygulama başına günde maksimum 10.000 istek sınırına tabi olur. Uygulamanızın kullanıcılarından çok fazla istek geliyorsa aşağıdaki talimatları uygulayarak bu günlük maksimum değerin yükseltilmesini talep edebilirsiniz.

Günlük maksimum istek sayınızı artırma

Günlük maksimum istek sayınızda artışa uygun olmanız için uygulamanızın diğer tüm dağıtım kanallarının yanı sıra Google Play'de de mevcut olması gerekir. Günlük maksimum sınır artırılsa bile kullanıcı verilerini ve pili korumak için kullanıcı başına klasik istekleri sık olmayan, yüksek değerli işlemlerle sınırlandırmaya devam etmeniz gerekir.

Günlük maksimum istek sayınızda artış talep etmek için aşağıdakileri yapın:

  1. Play Integrity API için kullandığınız Google Cloud projesini Play Console'da bağlayın.
  2. Önerilen yeniden deneme stratejisi de dahil olmak üzere API mantığını doğru şekilde uyguladığınızdan emin olun.
  3. Bu formu kullanarak kota artışı isteyin.

Play Integrity API kotasının artırılması bir hafta kadar sürebilir. Bu nedenle, Play Integrity API kullanımınızı Google Play Console'da veya Google Cloud Console'da izlemenizi önemle tavsiye ederiz. Google Cloud Console'da hizmetinizde kesinti yaşamamak için kota uyarıları da ayarlayabilirsiniz.

Klasik istek kotası artışları, hem bütünlük jetonları oluşturmak için istemci çağrısına hem de bütünlük jetonlarının şifresini çözüp doğrulamak için kullanılan sunucu çağrısına otomatik olarak uygulanır. Bütünlük jetonlarının şifresini çözmek ve doğrulamak için sunucu çağrısına standart istek kotası artışları uygulanır.

Play Integrity API'yi uygulamanıza entegre edin

Play Integrity API'yi uygulamanıza veya SDK'nıza entegre etmek için geliştirme ortamınıza bağlı olarak aşağıdakilerden birini yapın:

Kotlin veya Java

Play Integrity API'nin en yeni Android kitaplığına Google'ın Maven deposunda ulaşılabilir. Uygulamanızın build.gradle dosyasına aşağıdaki bağımlılığı ekleyin:

implementation 'com.google.android.play:integrity:1.3.0'

Üçlü

Unity 1.3.0 veya sonraki sürümler için Google Play Integrity Plugin'i yükleyin. Talimatlar için Unity için Google paketlerini yükleme bölümüne bakın.

  • 2019.x, 2020.x ve daha yeni sürümlerin tümü desteklenmektedir.
  • Unity 2018.x kullanıyorsanız 2018.4 veya daha yeni sürümler desteklenir.
  • Unity 2017.x ve daha eski sürümler desteklenmez.

Yerel

Play Core Yerel SDK'sı 1.13.0 veya sonraki bir sürümü yükleyin. Talimatlar için Play Core Yerel'in geliştirme ortamı kurulum kılavuzuna bakın.

API yanıtlarını yapılandırma (isteğe bağlı)

API yanıtı, her istekte döndürülen varsayılan kararları içerir. Play Console'da Play Integrity API entegrasyonunuzu ayarlarsanız API yanıtınızı özelleştirebilirsiniz.

Varsayılan yanıtlar

Play Integrity API yanıtında varsayılan olarak aşağıdaki entegrasyon kararları döndürülür:

Yanıt alanı Değer Açıklama
Cihaz bütünlüğü MEETS_DEVICE_INTEGRITY Uygulama Google Play Hizmetleri tarafından desteklenen bir Android cihazda çalışıyor. Cihaz, sistem bütünlüğü kontrollerini geçer ve Android uyumluluk koşullarını karşılar.
Boş (boş değer) Uygulamanın çalıştığı cihazda saldırı (API kancalama gibi) veya sistem bozulması (rootlanma gibi) belirtileri var ya da uygulama fiziksel bir cihazda çalışmıyor (örneğin, Google Play bütünlük kontrollerini geçmeyen bir emülatörde çalışıyor).
Play hesabı ayrıntıları LICENSED Kullanıcının uygulamadan yararlanma hakkı bulunmaktadır. Yani kullanıcı, uygulamanızı Google Play'den yüklemiş veya satın almıştır. Kullanıcı, uygulamayı kaldırdıktan sonra uygulamayı kullanma hakkını korur. Dolayısıyla, kullanıcı aynı uygulamayı daha sonra başka bir şekilde edinirse bu kullanıcının hesabı yine lisanslı olur.
UNLICENSED Kullanıcının uygulamadan yararlanma hakkı yoktur. Kullanıcının uygulamanızı başka cihazdan yüklediği veya Google Play dışında bir kanaldan edindiği durumlarda bu etiket görülür.
UNEVALUATED Bir koşul karşılanmadığı için lisanslama ayrıntıları değerlendirilmemiştir. Bu durum aşağıdakiler dahil olmak üzere çeşitli nedenlerden kaynaklanabilir:
  • Cihaz yeterince güvenilir değildir.
  • Kullanıcı, Google Play'de oturum açmamıştır.
  • Cihazda uygulamanızın Google Play tarafından tanınmayan bir sürümü yüklüdür.
Uygulama bütünlüğü PLAY_RECOGNIZED Uygulama ve sertifika, Google Play tarafından dağıtılan sürümlerle eşleşiyor.
UNRECOGNIZED_VERSION Sertifika veya paket adı Google Play kayıtlarıyla eşleşmiyor.
UNEVALUATED Uygulama bütünlüğü değerlendirilmemiştir. Koşullardan biri karşılanmamıştır (örneğin, cihaz yeterince güvenilir olmayabilir).

Koşullu yanıtlar

PC Üzerinde Google Play Games'e dağıtım yapıyorsanız cihaz entegrasyon kararında ek bir etiket almayı otomatik olarak etkinleştirirsiniz:

Yanıt alanı Şirket Açıklama
Cihaz bütünlüğü MEETS_VIRTUAL_INTEGRITY Uygulama Google Play Hizmetleri tarafından desteklenen bir Android cihazda çalışıyor. Emülatör, sistem bütünlüğü kontrollerini geçer ve temel Android uyumluluk şartlarını karşılar.

İsteğe bağlı yanıtlar

Play Integrity API entegrasyonunuzu Play Console'da veya Play SDK Console'da ayarladıysanız API yanıtınızda bilgi almayı etkinleştirebilirsiniz.

API yanıtlarınızda değişiklik yapmak için Play Console'u ziyaret edip Sürüm > Uygulama bütünlüğü bölümüne gidin. Yanıtlar altında, yaptığınız değişiklikleri düzenleyip kaydedin.

İsteğe bağlı cihaz bilgileri

Uygulamalar ve SDK'lar, cihaz bütünlüğü kararında ek cihaz etiketlerini etkinleştirebilir. Ek etiketler almayı etkinleştirdiğinizde, etiket ölçütlerinin her biri karşılanırsa bütünlük yanıtı aynı cihaz için birden fazla etiket içerir. Arka uç sunucunuzu, olası yanıtların aralığına göre farklı şekilde davranmak üzere hazırlayabilirsiniz. Örneğin, üç etiket döndüren bir cihaza (MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY ve MEETS_BASIC_INTEGRITY), yalnızca tek bir etiket (MEETS_BASIC_INTEGRITY) döndüren bir cihazdan daha fazla güvenilebilir.

Son cihaz etkinliğini de etkinleştirebilirsiniz. Son cihaz etkinliği, LEVEL_1 (düşük istek sayısı) ile LEVEL_4 (yüksek istek sayısı) aralığında bir seviye döndürür. Örneğin, uygulamanız için normal olandan önemli ölçüde daha yüksek bir etkinlik düzeyi döndüren bir cihaz, güvenilmeyen cihazlara dağıtım için çok sayıda bütünlük jetonu oluşturmaya çalışıyor olabilir.

Yanıt alanı Şirket Açıklama
Cihaz bütünlüğü MEETS_BASIC_INTEGRITY Uygulama temel sistem bütünlük kontrollerini geçen bir cihazda çalışıyor. Cihaz, Android uyumluluk koşullarını karşılamayabilir ve Google Play Hizmetleri'ni çalıştırmak üzere onaylanmamış olabilir. Örneğin, cihaz Android'in tanınmayan bir sürümü çalıştırıyor, kilidi açılmış bir bootloader içeriyor veya üretici tarafından sertifikalandırılmamış olabilir.
MEETS_STRONG_INTEGRITY Uygulama Google Play Hizmetleri tarafından desteklenen bir Android cihazda çalışmaktadır ve sistem bütünlüğü, önyükleme bütünlüğünü gösteren, donanım destekli kanıt gibi güçlü bir sistem bütünlüğü garantisine sahiptir. Cihaz, sistem bütünlüğü kontrollerini geçer ve Android uyumluluk koşullarını karşılar.
Son cihaz etkinliği Uygulama başına son bir saat içinde bu cihazdaki standart API bütünlüğü jetonu istekleri Uygulama başına son bir saat içinde bu cihazda yapılan klasik API bütünlük jetonu istekleri
LEVEL_1 (en düşük) 10 veya daha az 5 veya daha az
LEVEL_2 11 ile 25 arasında 6 ile 10 arasında
LEVEL_3 26 ile 50 arasında 11 ile 15 arasında
LEVEL_4 (en yüksek) 50'den fazla 15'ten fazla
UNEVALUATED Son cihaz etkinliği değerlendirilmedi. Bu durum aşağıdaki nedenlerden dolayı yaşanabilir:
  • Cihaz yeterince güvenilir değildir.
  • Cihazda uygulamanızın Google Play tarafından tanınmayan bir sürümü yüklüdür.
  • Cihazda teknik sorunlar vardı.

İsteğe bağlı ortam ayrıntıları

Uygulamalar, çevre hakkında ek kararlar almak için kaydolabilir. Uygulama erişim riski, ekranı yakalayabilecek, yer paylaşımlarını görüntüleyebilecek veya cihazı kontrol edebilecek başka uygulamaların çalışıp çalışmadığını bildirir. Play Protect kararı, cihazda Play Protect'in etkin olup olmadığını ve bilinen kötü amaçlı yazılım bulup bulmadığını belirtir.

Bu kararları almayı etkinleştirdikten sonra API yanıtınızda kararın yer aldığı ortam ayrıntıları alanı bulunur:

Yanıt alanı Değer Açıklama
Uygulamaya erişim riski kararı KNOWN_INSTALLED Uygulamalar Google Play tarafından yüklenir veya cihaz üreticisi tarafından sistem bölümüne önceden yüklenir.
KNOWN_CAPTURING Uygulamalar Google Play tarafından yüklenir veya cihaza önceden yüklenmiştir. Bu uygulamalar, istekte bulunan uygulamanın ekran kaydı uygulamaları gibi giriş ve çıkışlarını okumak veya yakalamak için kullanılabilir.
KNOWN_CONTROLLING Uygulamalar Google Play tarafından yüklenir veya cihaza önceden yüklenmiştir. Bu uygulamalar, cihazı ve istekte bulunan uygulamanın giriş ve çıkışlarını kontrol etmek için kullanılabilir (ör. uygulamaları uzaktan kontrol etme).
KNOWN_OVERLAYS Uygulamalar Google Play tarafından yüklenir veya cihaza önceden yüklenmiş olarak çalışırken istekte bulunan uygulamada yer paylaşımları görüntüleyebilir.
UNKNOWN_INSTALLED Google Play tarafından yüklenmemiş veya cihaz üreticisi tarafından sistem bölümüne önceden yüklenmemiş başka uygulamalar yüklü.
UNKNOWN_CAPTURING İstekte bulunan uygulamanın giriş ve çıkışlarını (ör. ekran kaydı uygulamaları) okumak veya yakalamak için kullanılabilecek diğer uygulamalar çalışıyor (Play tarafından yüklenmeyen veya cihaza önceden yüklenmemiş).
UNKNOWN_CONTROLLING Cihazı ve istekte bulunan uygulamanın giriş ve çıkışlarını kontrol etmek için kullanılabilecek diğer uygulamalar (ör. Play tarafından yüklenmeyen veya cihaza önceden yüklenmemiş) çalışıyor.
UNKNOWN_OVERLAYS İstekte bulunan uygulamada yer paylaşımları görüntüleyebilen diğer uygulamalar çalışıyor (Play tarafından yüklenmeyen veya cihaza önceden yüklenmemiş).
EMPTY (boş değer) Koşullardan biri karşılanmamışsa uygulamaya erişim riski değerlendirilmez. Bu durumda appAccessRiskVerdict alanı boş olur. Bu durum, aşağıdakiler dahil çeşitli nedenlerden kaynaklanabilir:
  • Cihaz yeterince güvenilir değildir.
  • Cihazın form faktörü telefon, tablet veya katlanabilir cihaz olmamalıdır.
  • Cihaz, Android 6 (API düzeyi 23) veya sonraki bir sürümü çalıştırmıyor.
  • Cihazda uygulamanızın Google Play tarafından tanınmayan bir sürümü yüklüdür.
  • Cihazdaki Google Play Store sürümü eski.
  • Yalnızca oyunlar: Kullanıcı hesabının oyun için Play lisansı yok.
Play Protect kararı NO_ISSUES Play Protect etkinleştirilmiştir ve cihazda uygulama ile ilgili herhangi bir sorun tespit edilmemiştir.
NO_DATA Play Protect etkindir ancak henüz tarama yapılmamıştır. Cihaz ya da Play Store uygulaması kısa süre önce sıfırlanmış olabilir.
POSSIBLE_RISK Play Protect devre dışı.
MEDIUM_RISK Play Protect etkinleştirildi ve cihazda potansiyel zararlı uygulamalar yüklü olduğu tespit edildi.
HIGH_RISK Play Protect etkinleştirildi ve cihazda tehlikeli uygulamaların yüklü olduğunu tespit etti.
UNEVALUATED Play Protect kararı değerlendirilmedi. Koşullardan biri karşılanmamıştır (örneğin, cihaz yeterince güvenilir olmayabilir).

Klasik istek ayarlarını yapılandırma (isteğe bağlı)

Yalnızca standart API istekleri yapmayı planlıyorsanız bu bölümü atlayın.

Klasik istekler gönderdiğinizde varsayılan olarak Google Play'in sunucuları, Play Integrity API ile etkileşimde bulunduğunuzda uygulamanızın kullandığı yanıt şifrelemesini yönetir. Bu varsayılan seçeneği kullanmanızı önersek de aşağıdaki talimatları uygulayarak yanıt şifreleme anahtarlarınızı yönetebilir ve indirebilirsiniz.

Yanıt şifrelemenizi Google'ın yönetmesine izin verme (varsayılan ve önerilir)

Uygulamanızın güvenliğini korumak için Google'ın yanıt şifreleme anahtarlarınızı oluşturmasına ve yönetmesine izin vermeniz önerilir. Arka uç sunucunuz, yanıtların şifresini çözmek için Google Play'in sunucusunu arar.

Yanıt şifreleme anahtarlarımı yönetme ve indirme

Entegrasyon kararının şifresini kendi güvenli sunucu ortamınızda yerel olarak çözmek istiyorsanız yanıt şifreleme anahtarlarınızı yönetebilir ve indirebilirsiniz. Yanıt şifreleme anahtarlarınızı yönetmek ve indirmek için Play Console'u kullanmanız ve uygulamanızın, diğer dağıtım kanallarının yanı sıra Google Play'de de kullanılabilir olması gerekir. Aşağıdaki talimatları uygulayarak Google tarafından yönetilen yanıt şifreleme anahtarlarından kendi kendine yönetilen yanıt şifreleme anahtarlarına geçebilirsiniz.

İstemci uygulamanızdan alınan jetonun şifresini çözmemeyi veya doğrulama yapmayın ve hiçbir şifre çözme anahtarını istemci uygulamasına göstermeyin.

Play Console'da yanıt şifreleme yönetimi stratejinizi değiştirmeden önce sunucunuzun, kesintileri önlemek için Google Play'in sunucularındaki bütünlük jetonlarının şifresini çözecek ve bütünlük jetonlarını doğrulayacak şekilde doğru şekilde yapılandırıldığından emin olun.

Google tarafından yönetilen ve kendi kendine yönetilen yanıt şifreleme anahtarları arasında geçiş yapma

Yanıt şifrelemeniz şu anda Google tarafından yönetiliyorsa ve yanıt şifreleme anahtarlarınızı kendiniz yönetip indirmek için geçiş yapmak istiyorsanız aşağıdaki adımları uygulayın:

  1. Play Console'a giriş yapın.
  2. Play Integrity API'yi kullanan bir uygulama seçin.
  3. Soldaki menünün Sürüm bölümünde, Uygulama bütünlüğü'ne gidin.
  4. Play Integrity API'nin yanındaki Ayarlar'ı tıklayın.
  5. Sayfanın Klasik istekler bölümünde, Yanıt şifreleme'nin yanındaki Düzenle'yi tıklayın.
  6. Görüntülenen pencerede Yanıt şifreleme anahtarlarımı yönet ve indir'i tıklayın.
  7. Ortak anahtar yükleme talimatlarını uygulayın.
  8. Pencerede yüklemenin başarılı olduğu gösterildikten sonra Kaydet'i tıklayın. Şifrelenmiş anahtarlarınız otomatik olarak indirilir.
  9. Yanıt şifreleme anahtarlarınızı kullanarak kendi güvenli sunucu ortamınızda bütünlük jetonlarının şifresini yerel olarak çözüp doğrulamak için sunucu mantığınızı değiştirin.
  10. (İsteğe bağlı) Yanıt şifreleme anahtarlarınızı kendiniz yönettiğinizde, uygulamanız yanıtı şifresini çözmek ve doğrulamak için Google Play'in sunucusuna geri dönebilir.

Yanıt şifreleme anahtarlarınızı kendiniz yönetiyorsanız ve yanıt şifrelemenizin Google tarafından yönetilmesine izin vermek istiyorsanız aşağıdaki adımları uygulayın:

  1. Sunucu mantığınızı, yalnızca şifre çözme ve doğrulama işlemlerini Google'ın sunucularında gerçekleştirecek şekilde değiştirin.
  2. Play Console'a giriş yapın.
  3. Play Integrity API'yi kullanan bir uygulama seçin.
  4. Soldaki menünün Sürüm bölümünde, Uygulama bütünlüğü'ne gidin.
  5. Play Integrity API'nin yanındaki Ayarlar'ı tıklayın.
  6. Sayfanın Klasik istekler bölümünde, Yanıt şifreleme'nin yanındaki Düzenle'yi tıklayın.
  7. Açılan pencerede Google'ın yanıt şifrelememi yönetmesine izin ver (önerilir) seçeneğini tıklayın.
  8. Değişiklikleri kaydet'i tıklayın.