Benzersiz tanımlayıcılar için en iyi uygulamalar

Bu dokümanda, kullanım alanınıza göre uygulamanız için uygun tanımlayıcıları seçmeyle ilgili yol gösterici bilgiler verilmektedir.

Android izinlerine genel bir bakış için İzinlere genel bakış başlıklı makaleyi inceleyin. Android izinleriyle çalışmayla ilgili belirli en iyi uygulamalar için Uygulama izinleriyle ilgili en iyi uygulamalar başlıklı makaleyi inceleyin.

Android tanımlayıcılarıyla çalışmayla ilgili en iyi uygulamalar

Kullanıcılarınızın gizliliğini korumak için uygulamanızın kullanım alanını karşılayan en kısıtlayıcı tanımlayıcıyı kullanın. Özellikle şu en iyi uygulamalara uyun:

  1. Mümkün olduğunda kullanıcı tarafından sıfırlanabilen tanımlayıcıları seçin. Uygulamanız, sıfırlanamayan donanım kimlikleri dışındaki tanımlayıcılar kullansa bile kullanım alanlarının çoğunu gerçekleştirebilir.
  2. Donanım tanımlayıcıları kullanmaktan kaçının. Çoğu kullanım alanında, gerekli işlevleri sınırlamadan Uluslararası Mobil Cihaz Kimliği (IMEI) gibi donanım tanımlayıcılarını kullanmaktan kaçınabilirsiniz.

    Android 10 (API düzeyi 29), hem IMEI hem de seri numarasını içeren sıfırlanamayan tanımlayıcılar için kısıtlamalar ekler. Uygulamanız, bu tanımlayıcılara erişebilmek için cihaz veya profil sahibi bir uygulama olmalı, özel operatör izinlerine sahip olmalı ya da READ_PRIVILEGED_PHONE_STATE ayrıcalıklı iznine sahip olmalıdır.

  3. Reklam kimliğini yalnızca kullanıcı profilleme veya reklam kullanım alanları için kullanın. Reklam kimliği kullanırken her zaman reklam izlemeyle ilgili kullanıcı seçimlerine saygı gösterin. Reklam kimliğini kimliği tanımlayabilecek bilgilere bağlamanız gerekiyorsa bunu yalnızca kullanıcıdan açık izin alarak yapın.

  4. Reklam kimliği sıfırlama işlemlerini birbirine bağlamayın.

  5. Ödeme sahtekarlığını önleme ve telefon görüşmesi dışındaki diğer tüm kullanım alanları için mümkün olduğunda Firebase kurulum kimliği (FID) veya özel olarak depolanan bir GUID kullanın. Reklam dışı kullanım alanlarının büyük çoğunluğu için bir FID veya GUID yeterli olacaktır.

  6. Gizlilik riskini en aza indirmek için kullanım alanınıza uygun API'leri kullanın. Yüksek değerli içerik koruması için DRM API'yi, kötüye kullanımdan korunma için Play Integrity API'lerini kullanın. Play Integrity API'ler, gizlilik riski oluşturmadan bir cihazın orijinal olup olmadığını belirlemenin en kolay yoludur.

Bu kılavuzun geri kalan bölümlerinde, Android uygulamaları geliştirme bağlamında bu kurallar ayrıntılı olarak açıklanmaktadır.

Reklam kimlikleriyle çalışma

Reklam kimliği, kullanıcı tarafından sıfırlanabilen bir tanımlayıcıdır ve reklam kullanım alanları için uygundur. Ancak bu kimliği kullanırken göz önünde bulundurmanız gereken bazı önemli noktalar vardır:

Kullanıcı, reklam kimliğini sıfırlama konusunda her zaman saygı gösterilmelidir. Kullanıcının izni olmadan sonraki reklam kimliklerini birbirine bağlamak için başka bir tanımlayıcı veya parmak izi kullanarak kullanıcı sıfırlama işlemlerini birbirine bağlamayın. Google Play Geliştirici İçerik Politikası'nda aşağıdakiler belirtilmiştir:

"...sıfırlanırsa kullanıcının açık izni olmadan yeni bir reklam kimliği bir önceki reklam kimliğiyle veya önceki reklam kimliğinden türetilen verilerle ilişkilendirilmemelidir."

Her zaman ilişkili kişiselleştirilmiş reklam işaretine uyun. Reklam kimlikleri, kullanıcıların kimlikle ilişkili izleme miktarını sınırlandırabilmesi açısından yapılandırılabilir. Kullanıcılarınızın isteklerini atlatmadığınızdan emin olmak için her zaman AdvertisingIdClient.Info.isLimitAdTrackingEnabled() yöntemini kullanın. Google Play Geliştirici İçerik Politikası'nda aşağıdakiler belirtilmiştir:

"...bir kullanıcının "İlgi alanına dayalı reklamları devre dışı bırak" veya "Reklam Kişiselleştirme'yi kapat" ayarına uymanız gerekir. Bir kullanıcı bu ayarı etkinleştirmişse, reklam amaçlı olarak veya kişiselleştirilmiş reklamlarla kullanıcıları hedeflemek için kullanıcı profilleri oluşturmak üzere reklam kimliğini kullanamazsınız. İzin verilen etkinlikler; içeriğe dayalı reklamcılık, sıklık sınırı, dönüşüm izleme, rapor gönderme, güvenlik ve sahtekarlık algılamasını içerir."

Kullandığınız SDK'larla ilişkili ve reklam kimliği kullanımıyla ilgili gizlilik veya güvenlik politikalarını inceleyin. Örneğin, Google Analytics SDK'sındaki enableAdvertisingIdCollection() yöntemine true parametresini gönderirseniz geçerli tüm Analytics SDK politikalarını inceleyip bunlara uyduğunuzdan emin olun.

Ayrıca, Google Play Geliştirici İçerik Politikası'na göre reklam kimliğinin "kimliği tanımlayabilecek bilgilerle bağlantılı hale getirilmemesi veya kalıcı cihaz tanımlayıcılarla (ör. SSAID, MAC adresi, IMEI vb.) ilişkilendirilmemesi" gerekir.

Örneğin, veritabanı tablolarını aşağıdaki sütunlarla doldurmak için bilgi toplamak istediğinizi varsayalım:

TABLE-01
timestamp ad_id account_id clickid
TABLE-02
account_id name dob country

Bu örnekte, ad_id sütunu her iki tablodaki account_id sütunu aracılığıyla kimliği tanımlayabilecek bilgilere (PII) birleştirilebilir. Kullanıcılarınızdan açık izin almadıysanız bu durum Google Play Geliştirici İçerik Politikası'nı ihlal eder.

Reklamveren kimliği ile kimliği tanımlayabilecek bilgiler arasındaki bağlantıların her zaman bu kadar açık olmadığını unutmayın. Hem kimliği tanımlayabilecek bilgiler hem de reklam kimliği anahtar tablolarında görünen ve soruna neden olan "yarı tanımlayıcı"lar olabilir. Örneğin, TABLE-01 ve TABLE-02 tablolarını aşağıdaki gibi değiştirdiğimizi varsayalım:

TABLE-01
timestamp ad_id clickid dev_model
TABLE-02
timestamp demo account_id dev_model name

Bu durumda, yeterince nadir tıklama etkinlikleri olduğunda, etkinliğin zaman damgasını ve cihaz modelini kullanarak TABLE-01 reklamveren kimliği ile TABLE-02'de bulunan kimliği tanımlayabilecek bilgileri birleştirmek yine de mümkündür.

Bir veri kümesinde bu tür yarı tanımlayıcıların bulunmadığını garanti etmek genellikle zor olsa da, mümkün olduğunda benzersiz verileri genelleyerek en belirgin birleştirme risklerini önleyebilirsiniz. Önceki örnekte bu, her zaman damgası için aynı modele sahip birden fazla cihazın görünmesi amacıyla zaman damgasının doğruluğunun azaltılması anlamına gelir.

Diğer çözümler şunlardır:

  • Kimliği tanımlayabilecek bilgileri reklam kimlikleriyle açıkça ilişkilendiren tablolar tasarlamamak. Yukarıdaki ilk örnekte bu, TABLE-01 tablosuna account_id sütununun dahil edilmemesi anlamına gelir.

  • Hem reklam kimliği anahtarıyla şifrelenmiş verilere hem de kimliği tanımlayabilecek bilgilere erişimi olan kullanıcılar veya roller için erişim denetimi listelerini ayırma ve izleme. Her iki kaynağa da aynı anda erişme özelliğini sıkı bir şekilde kontrol edip denetleyerek (ör. tablolar arasında birleştirme gerçekleştirerek) reklam kimliği ile kimliği tanımlayabilecek bilgiler arasındaki ilişkilendirme riskini azaltırsınız. Genel olarak, erişimi kontrol etmek aşağıdakileri yapmayı ifade eder:

    1. Reklamveren kimliği anahtarına sahip veriler ve kimliği tanımlayabilecek bilgiler için erişim kontrol listelerini (EKL'ler) birbirinden ayırarak her iki EKL'de de yer alan kişi veya rol sayısını en aza indirin.
    2. Bu kurala istisnaları tespit edip yönetmek için erişim günlüğü kaydı ve denetimi uygulayın.

Reklam kimlikleriyle sorumlu bir şekilde çalışma hakkında daha fazla bilgi için AdvertisingIdClient API referansına bakın.

FID'ler ve GUID'ler ile çalışma

Bir cihazda çalışan uygulama örneğini tanımlamanın en basit çözümü Firebase kurulum kimliği (FID) kullanmaktır. Reklam dışı kullanım alanlarının çoğunda önerilen çözüm de budur. Bu tanımlayıcıya yalnızca temel hazırlığı yapılan uygulama örneği erişebilir. Yalnızca uygulama yüklü olduğu sürece geçerli olduğundan (nispeten) kolayca sıfırlanabilir.

Sonuç olarak, FID'ler sıfırlanamayan, cihaz kapsamlı donanım kimliklerine kıyasla daha iyi gizlilik özellikleri sunar. Daha fazla bilgi için firebase.installations API referansına bakın.

FID'nin kullanışlı olmadığı durumlarda, bir uygulama örneğini benzersiz şekilde tanımlamak için özel, dünya genelinde benzersiz kimlikler (GUID'ler) de kullanabilirsiniz. Bunu yapmanın en kolay yolu, aşağıdaki kodu kullanarak kendi GUID'inizi oluşturmaktır:

Kotlin

var uniqueID = UUID.randomUUID().toString()

Java

String uniqueID = UUID.randomUUID().toString();

Tanımlayıcı dünya genelinde benzersiz olduğundan belirli bir uygulama örneğini tanımlamak için kullanılabilir. Tanımlayıcının uygulamalar arasında bağlanmasıyla ilgili endişeleri önlemek için GUID'leri harici (paylaşılan) depolama alanı yerine dahili depolama alanında saklayın. Daha fazla bilgi için Veri ve dosya depolamaya genel bakış sayfasına bakın.

MAC adresleriyle çalışmaz.

MAC adresleri dünya genelinde benzersizdir, kullanıcı tarafından sıfırlanamaz ve fabrika ayarlarına sıfırlandıktan sonra değişmez. Bu nedenlerle, kullanıcı gizliliğini korumak için Android 6 ve sonraki sürümlerde MAC adreslerine erişim sistem uygulamalarıyla sınırlandırılmıştır. Üçüncü taraf uygulamaları bunlara erişemez.

Android 11'de MAC adresi kullanılabilirliğiyle ilgili değişiklikler

Android 11 ve sonraki sürümleri hedefleyen uygulamalarda, Passpoint ağları için MAC rastgele hale getirme işlemi Passpoint profili başına yapılır ve aşağıdaki alanlara göre benzersiz bir MAC adresi oluşturulur:

  • Tam nitelikli alan adı (FQDN)
  • Realm
  • Passpoint profilinde kullanılan kimlik bilgisine dayalı kimlik bilgisi:
    • Kullanıcı kimlik bilgisi: kullanıcı adı
    • Sertifika kimlik bilgisi: cert ve cert türü
    • SIM kimlik bilgisi: EAP türü ve IMSI

Ayrıca, ayrıcalıklı olmayan uygulamalar cihazın MAC adresine erişemez. Yalnızca IP adresi olan ağ arayüzleri görünür. Bu durum, getifaddrs() ve NetworkInterface.getHardwareAddress() yöntemlerinin yanı sıra RTM_GETLINK Netlink mesajlarının gönderilmesini etkiler.

Uygulamaların bu değişiklikten etkilenme biçimlerinin listesi aşağıda verilmiştir:

  • NetworkInterface.getHardwareAddress() her arayüz için null döndürür.
  • Uygulamalar, NETLINK_ROUTE soketlerinde bind() işlevini kullanamaz.
  • ip komutu, arayüzler hakkında bilgi döndürmez.
  • Uygulamalar RTM_GETLINK mesajları gönderemez.

Çoğu geliştiricinin NetworkInterface, getifaddrs() veya Netlink soketleri gibi düşük düzey API'ler yerine ConnectivityManager'in üst düzey API'lerini kullanması gerektiğini unutmayın. Örneğin, mevcut rotalarla ilgili güncel bilgilere ihtiyacı olan bir uygulama, ConnectivityManager.registerNetworkCallback() kullanarak ağ değişikliklerini dinleyerek ve ağın ilişkili LinkProperties.getRoutes() öğesini çağırarak bu bilgileri edinebilir.

Tanımlayıcı özellikleri

Android OS, farklı davranış özelliklerine sahip çeşitli kimlikler sunar. Hangi kimliği kullanmanız gerektiği, aşağıdaki özelliklerin kullanım alanınızla nasıl çalıştığına bağlıdır. Ancak bu özelliklerin gizlilikle ilgili sonuçları da vardır. Bu nedenle, bu özelliklerin birbiriyle nasıl etkileşimde bulunduğunu anlamak önemlidir.

Kapsam

Tanımlayıcı kapsamı, tanımlayıcıya hangi sistemlerin erişebileceğini açıklar. Android tanımlayıcısı kapsamı genellikle üç şekildedir:

  • Tek uygulama: Kimlik, uygulama içindedir ve diğer uygulamalar tarafından erişilemez.
  • Uygulama grubu: Kimliğe, önceden tanımlanmış bir ilgili uygulama grubu erişebilir.
  • Cihaz: Kimliğe, cihaza yüklü tüm uygulamalar erişebilir.

Bir tanımlayıcının kapsamı ne kadar geniş olursa izleme amacıyla kullanılması riski de o kadar artar. Buna karşılık, bir tanımlayıcıya yalnızca tek bir uygulama örneği tarafından erişilebiliyorsa farklı uygulamalardaki işlemlerde bir cihazı izlemek için kullanılamaz.

Sıfırlanabilirlik ve kalıcılık

Sıfırlanabilirlik ve kalıcılık, tanımlayıcının ömrünü tanımlar ve nasıl sıfırlanabileceğini açıklar. Sık karşılaşılan sıfırlama tetikleyicileri arasında uygulama içi sıfırlamalar, sistem ayarları üzerinden sıfırlamalar, başlatma sırasında sıfırlamalar ve kurulum sırasında sıfırlamalar bulunur. Android tanımlayıcıların kullanım süreleri değişiklik gösterebilir ancak kullanım süresi genellikle kimliğin nasıl sıfırlandığıyla ilgilidir:

  • Yalnızca oturum: Kullanıcı uygulamayı her yeniden başlattığında yeni bir kimlik kullanılır.
  • Yükleme-sıfırlama: Kullanıcı uygulamayı her yükleyip kaldırdığında yeni bir kimlik kullanılır.
  • Fabrika verilerine sıfırlama: Kullanıcı cihazı her fabrika ayarlarına sıfırladığında yeni bir kimlik kullanılır.
  • FDR'de kalıcı: Kimlik, fabrika ayarlarına sıfırlandıktan sonra da kalır.

Sıfırlanabilirlik, kullanıcılara mevcut profil bilgilerinden ilişkisi kaldırılmış yeni bir kimlik oluşturma olanağı sunar. Tanımlayıcı ne kadar uzun süre ve ne kadar güvenilir bir şekilde kalırsa (ör. fabrika ayarlarına sıfırlama işlemlerinden sonra kalırsa) kullanıcının uzun süreli izlemeye tabi tutulma riski o kadar artar. Kimlik, uygulama yeniden yüklendiğinde sıfırlanırsa bu, kimliğin kalıcılığını azaltır ve uygulamadan veya Sistem Ayarları'ndan sıfırlamak için açık bir kullanıcı kontrolü olmasa bile kimliğin sıfırlanmasını sağlar.

Benzersizlik

Benzersizlik, çakışma olasılığını (yani ilişkili kapsamda aynı tanımlayıcıların varlığını) belirler. En üst düzeyde, dünya genelinde benzersiz bir tanımlayıcı, diğer cihazlarda veya uygulamalarda bile hiçbir zaman çakışmaz. Aksi takdirde benzersizlik düzeyi, tanımlayıcının entropisi ve oluşturulması için kullanılan rastgelelik kaynağına bağlıdır. Örneğin, çakışma olasılığı, yüklemenin takvim tarihiyle (2019-03-01 gibi) oluşturulan rastgele tanımlayıcılar için yüklemenin Unix zaman damgasıyla (1551414181 gibi) oluşturulan tanımlayıcılara kıyasla çok daha yüksektir.

Genel olarak, kullanıcı hesabı tanımlayıcıları benzersiz kabul edilebilir. Yani her cihaz/hesap kombinasyonunun benzersiz bir kimliği vardır. Diğer yandan, bir popülasyondaki tanımlayıcı ne kadar benzersiz olursa gizlilik koruması o kadar yüksek olur. Bunun nedeni, tek bir kullanıcıyı izlemek için tanımlayıcının o kadar az kullanışlı olmasıdır.

Bütünlük koruması ve inkâr edilemezlik

İlişkili cihazın veya hesabın belirli özelliklere sahip olduğunu kanıtlamak için kimliğini taklit edilmesi ya da yeniden oynatılması zor bir tanımlayıcı kullanabilirsiniz. Örneğin, cihazın spam gönderen tarafından kullanılan sanal bir cihaz olmadığını kanıtlayabilirsiniz. Sahteciliği zor olan tanımlayıcılar, reddedilebilirliği de sağlar. Cihaz, bir mesajı gizli anahtarla imzalarsa mesajın başka birinin cihazından gönderildiğini iddia etmek zordur. İnkar edilemezlik, bir ödemenin kimliğini doğrularken olduğu gibi kullanıcının istediği bir özellik olabileceği gibi, pişman olduğu bir mesaj gönderdiğinde olduğu gibi istenmeyen bir özellik de olabilir.

Yaygın kullanım alanları ve kullanılacak uygun tanımlayıcı

Bu bölümde, IMEI gibi donanım kimliklerinin kullanılmasına alternatifler sunulmaktadır. Kullanıcının sıfırlayamadığı ve cihaz kapsamına alındığı için donanım kimliklerinin kullanılması önerilmez. Çoğu durumda, uygulama kapsamlı bir tanımlayıcı yeterli olur.

Hesaplar

Operatör durumu

Bu durumda uygulamanız, operatör hesabı kullanarak cihazın telefon ve kısa mesaj işleviyle etkileşim kurar.

Kullanılması önerilen tanımlayıcı: IMEI, IMSI ve Satır1

Neden bu öneri?

Operatöre bağlı işlevler için gerekliyse donanım tanımlayıcılarından yararlanılması kabul edilebilir. Örneğin, bu tanımlayıcıları hücresel operatörler veya SIM yuvaları arasında geçiş yapmak ya da SMS mesajlarını IP (1. Satır için) üzerinden SIM tabanlı kullanıcı hesaplarına yayınlamak için kullanabilirsiniz. Ancak ayrıcalıklı olmayan uygulamalarda, kullanıcı cihaz bilgilerini sunucu tarafında almak için hesap oturumu açma özelliğini kullanmanızı öneririz. Bunun bir nedeni, Android 6.0 (API düzeyi 23) ve sonraki sürümlerde bu tanımlayıcıların yalnızca çalışma zamanında izin verilerek kullanılabilmesidir. Kullanıcılar bu izni devre dışı bırakabilir. Bu nedenle, uygulamanız bu istisnaları sorunsuz bir şekilde ele almalıdır.

Mobil abonelik durumu

Bu durumda, uygulama işlevini cihazdaki belirli mobil hizmet abonelikleriyle ilişkilendirmeniz gerekir. Örneğin, cihazın SIM kartındaki mobil aboneliklerine göre belirli ücretli uygulama özelliklerine erişimi doğrulamanız gerekebilir.

Kullanılması önerilen tanımlayıcı: Cihazda kullanılan SIM'leri tanımlamak için Abonelik Kimliği API'si.

Abonelik kimliği, cihazda kullanılan takılı SIM'leri (fiziksel ve elektronik dahil) benzersiz şekilde tanımlamak için bir dizin değeri (1'den başlar) sağlar. Bu kimlik sayesinde uygulamanız, işlevini belirli bir SIM'in çeşitli abonelik bilgileriyle ilişkilendirebilir. Cihaz fabrika ayarlarına sıfırlanmadıkça bu değer belirli bir SIM için sabit kalır. Ancak aynı SIM kartın farklı cihazlarda farklı abonelik kimliklerine sahip olduğu veya farklı SIM kartların farklı cihazlarda aynı kimliğe sahip olduğu durumlar olabilir.

Neden bu öneri?

Bazı uygulamalar şu anda bu amaçla ICC kimliğini kullanıyor olabilir. ICC kimliği dünya genelinde benzersiz olduğundan ve sıfırlanamadığından erişim, Android 10'dan beri READ_PRIVILEGED_PHONE_STATE iznine sahip uygulamalarla sınırlandırılmıştır. Android 11'den itibaren Android, uygulamanın hedef API düzeyinden bağımsız olarak getIccId() API üzerinden ICCID'ye erişimi daha da kısıtladı. Etkilenen uygulamalar, bunun yerine abonelik kimliğini kullanmaya geçmelidir.

Tek oturum açma

Bu durumda uygulamanız, kullanıcıların mevcut bir hesabı kuruluşunuzla ilişkilendirmesine olanak tanıyan tek bir oturum açma deneyimi sunar.

Kullanılması önerilen tanımlayıcı: Google Hesabı Bağlantısı gibi hesap yöneticisiyle uyumlu hesaplar

Neden bu öneri?

Google Hesabı Bağlantısı, kullanıcıların mevcut Google Hesaplarını uygulamanızla ilişkilendirmesine olanak tanır. Böylece, kuruluşunuzun ürün ve hizmetlerine sorunsuz ve daha güvenli bir şekilde erişebilirler. Ayrıca, yalnızca gerekli verileri paylaşmak için özel OAuth kapsamları tanımlayabilirsiniz. Böylece, kullanıcı verilerinin nasıl kullanıldığını açıkça tanımlayarak kullanıcı güvenini artırabilirsiniz.

Reklamlar

Hedefleme

Bu durumda uygulamanız, kullanıcıya daha alakalı reklamlar göstermek için kullanıcının ilgi alanlarını içeren bir profil oluşturur.

Kullanılması önerilen tanımlayıcı: Uygulamanız reklamlar için bir kimlik kullanıyorsa ve Google Play'e yükleme yapıyorsa veya Google Play'de yayın yapıyorsa bu kimlik reklam kimliği olmalıdır.

Neden bu öneri?

Bu, reklamlarla ilgili bir kullanım alanıdır ve kuruluşunuzun farklı uygulamalarında kullanılabilen bir kimlik gerektirebilir. Bu nedenle, reklam kimliği kullanmak en uygun çözümdür. Reklam kimliği, kullanıcı tarafından sıfırlanabileceği için Google Play Geliştirici İçerik Politikası uyarınca reklamcılık kullanım alanları için zorunludur.

Uygulamanızda kullanıcı verilerini paylaşıp paylaşmadığınızdan bağımsız olarak, reklam amacıyla kullanıcı verilerini toplayıp kullanıyorsanız Play Console'daki Uygulama içeriği sayfasının Veri Güvenliği bölümünde reklam amaçlarını beyan etmeniz gerekir.

Ölçüm

Bu durumda uygulamanız, aynı cihazdaki kuruluşunuzun uygulamalarında kullanıcının davranışına göre bir profil oluşturur.

Kullanılması önerilen tanımlayıcı: Reklam kimliği veya Play yükleme yönlendiren API'leri

Neden bu öneri?

Bu, reklamlarla ilgili bir kullanım alanıdır ve kuruluşunuzun farklı uygulamalarında kullanılabilen bir kimlik gerektirebilir. Bu nedenle, reklam kimliği kullanmak en uygun çözümdür. Reklamcılıkla ilgili kullanım alanları için bir kimlik kullanıyorsanız kullanıcı bu kimliği sıfırlayabileceğinden bu kimlik reklam kimliği olmalıdır. Daha fazla bilgi için Google Play Geliştirici İçerik Politikası'nı inceleyin.

Dönüşümler

Bu durumda, pazarlama stratejinizin başarılı olup olmadığını tespit etmek için dönüşümleri izliyorsunuz.

Kullanılması önerilen tanımlayıcı: Reklam kimliği veya Play yükleme yönlendiren API'leri

Neden bu öneri?

Bu, reklamlarla ilgili bir kullanım alanıdır ve kuruluşunuzun farklı uygulamalarında kullanılabilen bir kimlik gerektirebilir. Bu nedenle, reklam kimliği kullanmak en uygun çözümdür. Reklam kimliği, kullanıcı tarafından sıfırlanabileceği için Google Play Geliştirici İçerik Politikası uyarınca reklamcılık kullanım alanları için zorunludur.

Yeniden pazarlama

Bu durumda uygulamanız, kullanıcının önceki ilgi alanlarına göre reklam gösterir.

Kullanılması önerilen tanımlayıcı: Reklam kimliği

Neden bu öneri?

Bu, reklamlarla ilgili bir kullanım alanıdır ve kuruluşunuzun farklı uygulamalarında kullanılabilen bir kimlik gerektirebilir. Bu nedenle, reklam kimliği kullanmak en uygun çözümdür. Reklam kimliği, kullanıcı tarafından sıfırlanabileceği için Google Play Geliştirici İçerik Politikası uyarınca reklamcılık kullanım alanları için zorunludur.

Uygulama analizi

Bu durumda uygulamanız, aşağıdakileri belirlemenize yardımcı olmak için kullanıcının davranışını değerlendirir:

  • Kuruluşunuzdaki diğer ürünlerden veya uygulamalardan hangilerinin kullanıcı için uygun olabileceğini
  • Kullanıcıların uygulamanızı kullanmaya devam etmesini sağlama
  • Oturumunu kapatmış veya anonim kullanıcılar için kullanım istatistiklerini ve analizlerini ölçün.

Olası çözümler şunlardır:

  • Uygulama grubu kimliği: Uygulama grubu kimliği, kullanıcı verilerini reklamcılık amacıyla kullanmadığınız sürece bir kullanıcının kuruluşunuza ait birden fazla uygulamadaki davranışını analiz etmenize olanak tanır. Google Play Hizmetleri tarafından desteklenen cihazları hedefliyorsanız uygulama grubu kimliğini kullanmanızı öneririz.
  • Firebase kimliği (FID): FID, kendisini oluşturan uygulamanın kapsamına sahiptir. Bu, tanımlayıcının uygulamaların genelinde kullanıcıları izlemek için kullanılmasını engeller. Kullanıcı uygulama verilerini temizleyebildiği veya uygulamayı yeniden yükleyebildiği için FID'ler kolayca sıfırlanabilir. FID oluşturma işlemi basittir. Firebase yükleme kılavuzuna bakın.

Uygulama geliştirme

Kilitlenme raporu

Bu durumda uygulamanız, kullanıcının cihazlarında ne zaman ve neden kilitlendiğine dair veriler toplar.

Kullanılması önerilen tanımlayıcı: FID veya uygulama grubu kimliği

Neden bu öneri?

FID'nin kapsamı, onu oluşturan uygulamayla sınırlıdır. Bu durum, tanımlayıcının uygulamaların genelinde kullanıcıları izlemek için kullanılmasını engeller. Kullanıcı uygulama verilerini temizleyebildiği veya uygulamayı yeniden yükleyebildiği için FID'ler kolayca sıfırlanabilir. FID oluşturma işlemi basittir. Firebase yükleme kılavuzuna göz atın. Uygulama grubu kimliği, kullanıcı verilerini reklamcılık amacıyla kullanmadığınız sürece bir kullanıcının kuruluşunuza ait birden fazla uygulamadaki davranışını analiz etmenize olanak tanır.

Performans raporları

Bu durumda uygulamanız, kalitesini iyileştirmek için yükleme süreleri ve pil kullanımı gibi performans metriklerini toplar.

Kullanılması önerilen tanımlayıcı: Firebase Performance Monitoring

Neden bu öneri?

Firebase Performance Monitoring, sizin için en önemli metriklere odaklanmanıza ve uygulamanızdaki son bir değişikliğin etkisini test etmenize yardımcı olur.

Uygulama testi

Bu durumda uygulamanız, test veya hata ayıklama amacıyla kullanıcının uygulamanızla ilgili deneyimini değerlendirir.

Kullanılması önerilen tanımlayıcı: FID veya uygulama grubu kimliği

Neden bu öneri?

FID'nin kapsamı, onu oluşturan uygulamayla sınırlıdır. Bu durum, tanımlayıcının uygulamaların genelinde kullanıcıları izlemek için kullanılmasını engeller. Kullanıcı uygulama verilerini temizleyebildiği veya uygulamayı yeniden yükleyebildiği için FID'ler kolayca sıfırlanabilir. FID oluşturma işlemi basittir. Firebase yükleme kılavuzuna göz atın. Uygulama grubu kimliği, kullanıcı verilerini reklamcılık amacıyla kullanmadığınız sürece bir kullanıcının kuruluşunuza ait birden fazla uygulamadaki davranışını analiz etmenize olanak tanır.

Cihazlar arası yükleme

Bu durumda, uygulamanızın aynı kullanıcı için birden fazla cihaza yüklenmiş olduğunda uygulamanın doğru örneğini tanımlaması gerekir.

Kullanılması önerilen tanımlayıcı: FID veya GUID

Neden bu öneri?

FID'ler bu amaç için özel olarak tasarlanmıştır. Kapsamı uygulamayla sınırlıdır. Bu sayede, farklı uygulamalardaki kullanıcıları izlemek için kullanılamaz ve uygulama yeniden yüklendiğinde sıfırlanır. FID'nin yeterli olmadığı nadir durumlarda GUID de kullanabilirsiniz.

Güvenlik

Kötüye kullanım algılama

Bu durumda, arka uç hizmetlerinize saldıran birden fazla sahte cihazı tespit etmeye çalışıyorsunuz.

Kullanılması önerilen tanımlayıcı: Google Play Integrity API bütünlük jetonu

Neden bu öneri?

Bir isteğin emülatörden veya başka bir cihazı taklit eden başka bir koddan değil, orijinal bir Android cihazdan geldiğini doğrulamak için Google Play Integrity API'yi kullanın.

Reklam sahtekarlığı

Bu durumda uygulamanız, kullanıcının uygulamanızdaki gösterimlerin ve işlemlerin orijinal olup olmadığını ve doğrulanabilir olup olmadığını kontrol eder.

Kullanılması önerilen tanımlayıcı: Reklam kimliği

Neden bu öneri?

Reklam kimliği, kullanıcı tarafından sıfırlanabileceği için Google Play Geliştirici İçerik Politikası uyarınca reklamcılık kullanım alanları için zorunludur.

Dijital hak yönetimi (DRM)

Bu durumda uygulamanız, fikri mülkiyete veya ücretli içeriğe sahtekarlık amaçlı erişimi korumak istiyordur.

Kullanılması önerilen tanımlayıcı: FID veya GUID kullanılması, kullanıcıyı içerik sınırlarını aşmak için uygulamayı yeniden yüklemeye zorlar. Bu da çoğu kullanıcıyı caydırmaya yetecek kadar ağır bir yüktür. Bu koruma yeterli değilse Android, içeriğe erişimi sınırlamak için kullanılabilen ve APK başına bir tanımlayıcı (Widevine kimliği) içeren bir DRM API sağlar.

Kullanıcı tercihleri

Bu durumda uygulamanız, özellikle oturum açmamış kullanıcılar için cihaz başına kullanıcı durumunu kaydeder. Bu durumu, aynı cihazda aynı anahtarla imzalanan başka bir uygulamaya aktarabilirsiniz.

Kullanılması önerilen tanımlayıcı: FID veya GUID

Neden bu öneri?

Kullanıcılar uygulamayı yeniden yükleyerek tercihlerini sıfırlamak isteyebileceğinden, bilgileri yeniden yükleme işlemleri aracılığıyla kalıcı tutmak önerilmez.