Kurulum

Bu sayfada, uygulamanızı veya oyununuzu Play Integrity API'yi kullanacak şekilde nasıl ayarlayacağınız açıklanmaktadır. API'nin yanıtlarını etkinleştirdikten sonra 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ıktan sonra ek yapılandırma seçeneklerini, test özelliklerini ve raporlamayı kullanabilirsiniz.

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

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

Google Play Console'da ayarlama (ö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 uygulamalar tarafından 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 ayarlama

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 arayın ve etkinleştirin. Artık Play Integrity API'yi uygulamanıza entegre edebilirsiniz.

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

SDK sağlayıcılar, Play Integrity API'yi çağırmak için kendi Google Cloud projelerini kullanmalıdır. Böylece API kullanımı, SDK'yı kullanan tekil uygulamalara değil, SDK'ya bağlanır. Bu, SDK'nızı kullanan uygulamaların Play Integrity API'yi ayrı ayrı ayarlamasının gerekmediği anlamına gelir. Play Integrity API'ye gönderdiğiniz istekler, uygulama yerine SDK'nızın API kullanımı için otomatik olarak sayılır.

SDK geliştiricileri, Play Integrity API'yi ayarlamak için Google Play SDK Console veya Google Cloud Console'u kullanabilir.

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 gidin ve 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 arayın ve etkinleştirin. Artık Play Integrity API'yi SDK'nıza entegre edebilirsiniz.

SDK'nızın günlük Play Integrity API istek sayısını artırma

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

Günlük Play Integrity API isteklerinizi artırma

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 günlük sınırın yükseltilmesini talep edebilirsiniz.

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

Günlük maksimum istek sayınızın artırılması için uygulamanızın diğer dağıtım kanallarının yanı sıra Google Play'de de kullanıma sunulmuş olması gerekir. Günlük sınır yükseltilse bile kullanıcı verilerini ve pili korumak için kullanıcı başına klasik istekleri sınırlamaya devam ederek yalnızca nadiren, yüksek değerli işlemlerle ilgili olanlara izin vermelisiniz.

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

  1. Play Console'da Play Integrity API için kullandığınız Google Cloud projesini bağlayın.
  2. Önerilen yeniden deneme stratejisi 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, hizmetinizde kesinti yaşanmaması için Play Integrity API kullanımınızı Google Play Console'da veya Google Cloud Console'da izlemenizi önemle tavsiye ederiz. Bu konsollarda 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 çözmek ve doğrulamak için 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 etme

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 için en yeni Android kitaplığını Google'ın Maven deposundan edinebilirsiniz. Uygulamanızın build.gradle dosyasına aşağıdaki bağımlılık ekleyin:

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

Unity

Unity için Google Play Integrity Plugin 1.3.0 veya sonraki bir sürümü yükleyin. Talimatlar için Unity için Google paketlerini yükleme başlıklı makaleyi inceleyin.

  • 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 desteklenmemektedir.

Yerel

Play Core Yerel SDK'sı 1.13.0 veya daha yeni bir sürümü yükleyin. Talimatlar için Play Core Native'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 Integrity API entegrasyonunuzu Play Console'da 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 bütünlük 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ı cihazına Google Play'den yüklemiş veya güncellemiştir.
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 Koşullardan biri 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 bütünlüğü kararında ek bir etiket almayı otomatik olarak kabul edersiniz:

Yanıt alanı Etiket 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 veya Play SDK Console'da ayarlarsanı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 edin ve Sürüm > Uygulama bütünlüğü'ne gidin. Yanıtlar bölümünde, değişikliklerinizi 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 etiketleri almak için kaydolmanızın ardından, etiket kriterlerinin her biri karşılandığı takdirde bütünlük yanıtı aynı cihaz için birden çok etiket içerir. Arka uç sunucunuzu olası yanıtların aralığına göre farklı şekilde davranmak üzere hazırlayabilirsiniz. Örneğin, üç etiket (MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY ve MEETS_BASIC_INTEGRITY) döndüren bir cihaz, yalnızca bir etiket (MEETS_BASIC_INTEGRITY) döndüren bir cihaza göre daha güvenilir bulunabilir.

Son cihaz etkinliği'ni de etkinleştirebilirsiniz. Son cihaz etkinliği, LEVEL_1 (düşük istek sayısı) ile LEVEL_4 (yüksek istek sayısı) arasında bir düzey döndürür. Örneğin, uygulamanız için normalden çok daha yüksek bir etkinlik düzeyi döndüren bir cihaz, güvenilmeyen cihazlara dağıtılmak üzere çok sayıda bütünlük jetonu oluşturmaya çalışıyor olabilir.

Cihazınızda çalışan Android OS'in Android SDK sürümünü gösteren cihaz özelliklerini de etkinleştirebilirsiniz. Gelecekte diğer cihaz özellikleriyle genişletilebilir.

Yanıt alanı Etiket 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üğü, donanım destekli önyükleme bütünlüğü kanıtı gibi güçlü bir araçla garanti altına alınmıştır. Cihaz, sistem bütünlüğü kontrollerini geçer ve Android uyumluluk koşullarını karşılar.
Son bir saat içinde bu cihazda uygulama başına yapılan standart API bütünlük jetonu istekleri Uygulama başına son bir saat içinde bu cihazda yapılan klasik API bütünlük jetonu istekleri
Son cihaz etkinliği 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 ila 15
LEVEL_4 (en yüksek) 50'den fazla 15'ten fazla
UNEVALUATED Son cihaz etkinliği değerlendirilmemiştir. Bunun nedeni aşağıdakilerden biri olabilir:
  • 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ı.
Cihaz özellikleri sdkVersion: 19, 20, ..., 35 Cihazda çalışan Android OS'in SDK sürümü. Döndürülen sayı Build.VERSION_CODES ile eşlenir.
Boş (boş değer) Koşullardan biri karşılanmadığı için SDK sürümü değerlendirilmemiştir. Bu durumda sdkVersion alanının değeri belirlenmemiştir. Bu nedenle deviceAttributes alanı boştur. Bunun nedeni aşağıdakilerden biri olabilir:
  • 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, ortam hakkında ek kararlar almayı etkinleştirebilir. Uygulama erişim riski, ekranı kaydedebilecek, yer paylaşımlarını görüntüleyebilecek veya cihazı kontrol edebilecek başka uygulamaların çalışıp çalışmadığını size bildirir. Play Protect kararı, Play Protect'in cihazda 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, kararla birlikte ortam ayrıntıları alanı yer alır:

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 Google Play tarafından yüklenen veya cihaza önceden yüklenmiş olan ve istek yapan uygulamanın giriş ve çıkışlarını okumak ya da yakalamak için kullanılabilecek uygulamalar (ör. ekran kaydı uygulamaları) çalışıyor.
KNOWN_CONTROLLING Google Play tarafından yüklenen veya cihaza önceden yüklenmiş olan ve cihazı ve istek yapan uygulamanın giriş ve çıkışlarını kontrol etmek için kullanılabilecek uygulamalar (ör. uzaktan kumanda uygulamaları) çalışıyor.
KNOWN_OVERLAYS Google Play tarafından yüklenen veya cihaza önceden yüklenmiş olan ve istek gönderen uygulamada yer paylaşımları gösterebilecek uygulamalar çalışıyor.
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üyse
UNKNOWN_CAPTURING İstekte bulunan uygulamanın giriş ve çıkışlarını okumak veya yakalamak için kullanılabilecek başka uygulamalar (Play tarafından yüklenmemiş veya cihaza önceden yüklenmiş değil) çalışıyor (ör. ekran kaydı uygulamaları).
UNKNOWN_CONTROLLING Cihazın yanı sıra istek gönderen uygulamanın giriş ve çıkışlarını kontrol etmek için kullanılabilecek başka uygulamalar (Play tarafından yüklenmemiş veya cihaza önceden yüklenmiş değil) çalışıyor (ör. uzaktan kontrol uygulamaları).
UNKNOWN_OVERLAYS İstekte bulunan uygulamada yer paylaşımı gösterebilecek başka uygulamalar (Play tarafından yüklenmemiş veya cihaza önceden yüklenmiş değil) çalışıyor.
Boş (boş değer) Koşullardan biri karşılanmamışsa uygulama erişimi riski değerlendirilmez. Bu durumda appAccessRiskVerdict alanı boştur. Bu durum aşağıdakiler dahil olmak üzere çeşitli nedenlerden kaynaklanabilir:
  • Cihaz yeterince güvenilir değildir.
  • Cihaz form faktörü telefon, tablet veya katlanabilir değil.
  • Cihazınızda Android 6 (API düzeyi 23) veya sonraki sürümler yüklü değil.
  • 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ü güncel değildir.
  • Yalnızca oyunlar: Kullanıcı hesabında oyun için Play lisansı yoktur.
  • verdictOptOut parametresi ile standart bir istek kullanıldı.
  • Standart istek için henüz uygulama erişim riskini desteklemeyen bir Play Integrity API kitaplığı sürümü ile standart istek kullanıldı.
Play Protect kararı NO_ISSUES Play Protect etkindir 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 kapalı.
MEDIUM_RISK Play Protect etkindir ve cihazda potansiyel zararlı uygulamaların yüklü olduğunu tespit etmiştir.
HIGH_RISK Play Protect etkindir ve cihazda tehlikeli uygulamaların yüklü olduğunu tespit etmiştir.
UNEVALUATED Play Protect kararı değerlendirilmemiştir. 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 göndermeyi planlıyorsanız bu bölümü atlayın.

Klasik istekler gönderdiğinizde, Google Play'in sunucuları varsayılan olarak uygulamanızın Play Integrity API ile etkileşime geçtiğinde kullandığı yanıt şifrelemesini yönetir. Bu varsayılan seçeneği kullanmanızı öneririz ancak aşağıdaki talimatları uygulayarak yanıt şifreleme anahtarlarınızı yönetmeyi ve indirmeyi de seçebilirsiniz.

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

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.

Kendi yanıt şifreleme anahtarlarımı indirip yöneteceğim

Bütünlük 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ıma sunulmuş olması gerekir. Google tarafından yönetilen yanıt şifreleme anahtarlarından kendi kendine yönetilen yanıt şifreleme anahtarlarına geçmek için aşağıdaki talimatları uygulayın.

Alınan jetonun şifresini istemci uygulamanızdan çözmemenizi veya doğrulamamanızı ve şifre çözme anahtarlarını istemci uygulamasına hiçbir zaman göstermemenizi unutmayın.

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

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

Yanıt şifrelemenizi şu anda Google yönetiyorsa ve yanıt şifreleme anahtarlarınızı kendiniz yönetmek ve indirmek 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 şifrelemesi'nin yanındaki Düzenle'yi tıklayın.
  6. Açılan pencerede Kendi yanıt şifreleme anahtarlarımı indirip yöneteceğim'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. Sunucu mantığınızı, yanıt şifreleme anahtarlarınızı kullanarak bütünlük jetonlarının şifresini yerel olarak, kendi güvenli sunucu ortamınızda çözecek ve doğrulayacak şekilde değiştirin.
  10. (İsteğe bağlı) Yanıt şifreleme anahtarlarınızı kendiniz yönettiğinizde uygulamanız, yanıtın ş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 şifrelemenizi Google'ın yönetmesine geçmek istiyorsanız aşağıdaki adımları uygulayın:

  1. Sunucu mantığınızı, şifre çözme ve doğrulamayı yalnızca Google sunucularında yapacak ş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 şifrelemesi'nin yanındaki Düzenle'yi tıklayın.
  7. Açılan pencerede Yanıt şifrelemem Google tarafından yönetilsin (önerilir)'i tıklayın.
  8. Değişiklikleri kaydet'i tıklayın.