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 uygulamanın 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 atfedilir. 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'u kullanma (önerilir)
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ın kota isteği formunu doldurması gerekir. 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:
- Play Console'da Play Integrity API için kullandığınız Google Cloud projesini bağlayın.
- Önerilen yeniden deneme stratejisi dahil olmak üzere API mantığını doğru şekilde uyguladığınızdan emin olun.
- 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
Aşağıdaki bölümlerde, Unity projeleri için Google Play Integrity API'nin nasıl entegre edileceği ve ayarlanacağı açıklanmaktadır. Bu bölümlerde desteklenen Unity sürümleri, yükleme yöntemleri ve ortam kurulumu da ele alınmaktadır.
Desteklenen Unity sürümleri
- 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.
Geliştirme ortamınızı kurma
OpenUPM-CLI
OpenUPM CLI yüklüyse OpenUPM kayıt defterini şu komutla yükleyebilirsiniz:
openupm add com.google.play.integrity
OpenUPM
Düzenle > Proje Ayarları > Paket Yöneticisi Unity menü seçeneğini belirleyerek paket yöneticisi ayarlarını açın.
OpenUPM'yi Paket Yöneticisi penceresine kapsamlı bir kayıt defteri olarak ekleyin:
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.integrity
Unity menü seçeneği Pencere > Paket Yöneticisi'ni seçerek paket yöneticisi menüsünü açın.
Yönetici kapsamı açılır menüsünü Kayıt otoritelerim'i seçecek şekilde ayarlayın.
Paket listesinden Unity için Google Play Integrity eklentisi paketini seçin ve Yükle'ye basın.
GitHub'dan içe aktarma
GitHub'dan en son
.unitypackage
sürümünü indirin.Öğeler > Paket içe aktar > Özel Paket Unity menü seçeneğini belirleyip tüm öğeleri içe aktararak
.unitypackage
dosyasını içe aktarın.
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:
|
|
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. | ||
Bu cihazda son bir saat içinde uygulama başına standart API bütünlük jetonu istekleri | Son bir saat içinde bu cihazda uygulama başına 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 ö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:
|
İ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şılanmadığı için uygulama erişim riski değerlendirilmez. Bu durumda appAccessRiskVerdict alanı boştur. Bu durum aşağıdakiler dahil olmak üzere çeşitli nedenlerden kaynaklanabilir:
|
|
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ılabilir 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:
- Play Console'a giriş yapın.
- Play Integrity API'yi kullanan bir uygulama seçin.
- Soldaki menünün Sürüm bölümünde Uygulama bütünlüğü'ne gidin.
- Play Integrity API'nin yanındaki Ayarlar'ı tıklayın.
- Sayfanın Klasik istekler bölümünde, Yanıt şifrelemesi'nin yanındaki Düzenle'yi tıklayın.
- Açılan pencerede Kendi yanıt şifreleme anahtarlarımı indirip yöneteceğim'i tıklayın.
- Ortak anahtar yükleme talimatlarını uygulayın.
- Pencerede yüklemenin başarılı olduğu gösterildikten sonra Kaydet'i tıklayın. Şifrelenmiş anahtarlarınız otomatik olarak indirilir.
- 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.
- (İ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:
- Sunucu mantığınızı, yalnızca Google sunucularında şifre çözme ve doğrulama yapacak şekilde değiştirin.
- Play Console'a giriş yapın.
- Play Integrity API'yi kullanan bir uygulama seçin.
- Soldaki menünün Sürüm bölümünde Uygulama bütünlüğü'ne gidin.
- Play Integrity API'nin yanındaki Ayarlar'ı tıklayın.
- Sayfanın Klasik istekler bölümünde, Yanıt şifrelemesi'nin yanındaki Düzenle'yi tıklayın.
- Açılan pencerede Yanıt şifrelemem Google tarafından yönetilsin (önerilir)'i tıklayın.
- Değişiklikleri kaydet'i tıklayın.