iOS
iOS'ta Yeni Reklam Tanıtıcı Kimliğine Geçiş
UDID nedir? Aşağıdaki resimde gördüğünüz gibi telefonunuzu iTunes’a bağladığınızda cihazın UDID’sini öğrenebilirsiniz. Türkçesi "tekilcihaz kimliği" diyebiliriz. Bu harfler ve karakterlerden oluşan kimlik, cihaza özel ve her cihaz için farklı oluşturulmu...
UDID nedir?
Aşağıdaki resimde gördüğünüz gibi telefonunuzu iTunes’a bağladığınızda cihazın UDID’sini öğrenebilirsiniz. Türkçesi "tekil cihaz kimliği" diyebiliriz. Bu harfler ve karakterlerden oluşan kimlik, cihaza özel ve her cihaz için farklı oluşturulmuş bir kimliktir.
Geçmişte birçok uygulama geliştiricisi, kullanıcılarını bu kimliğe göre sınıflandırıp saklıyordu. Birçok mobil uygulama kullanım analiz firması bu kimliği referans alarak kullanım analizini üretebiliyordu. Hatta global mobil reklam sağlayıcıları dâhil birçoğu bu kimliği referans alarak kullanıcılara uygun reklam yolluyor ve bütçe planlaması yapıyordu. Peki, neden artık bu kimliğe uygulama içerisinden erişim engellendi?
Apple, bu numaranın kullanıcı gizliliğini ihlal edebilecek durumlarda kullanılabileceği düşüncesiyle bu konuda farklı metotlar kullanılmasını öneriyor.
MAC adresi ile emsalsiz bir kimlik üretmek
Geçmişte kod içerisinden UDID ulaşmak için [UIDevice uniqueIdentifier] yazmanız yeterliydi. Öte yandan bu yöntem iOS5 ile kaldırıldı ve Apple alternatif olarak CFUUIDCreate fonksiyonun ürettiği Universally Unique Identifier (UUID) kimliğinin kullanılmasını ve bunu NSUserDefaults sınıfı ile saklamayı önerdi. Bu kimlik telefondan uygulamayı kaldırdığınızda veya kullanıcı bilgilerini sıfırladığınızda değiştiği için uygulama geliştiricileri buna sıcak bakmadı ve alternatifler aradı.
Bu alternatiflerden biri MAC adresi ile emsalsiz bir kimlik üretme yöntemi oldu. Ta ki iOS7’ ye kadar. Bu yöntemi detaylarını aşağıdaki github üzerindeki projeden inceleyebilirsiniz.
https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5
[cpp]- (NSString *) uniqueGlobalDeviceIdentifier {
NSString *macaddress = [[UIDevice currentDevice] macaddress];
NSString *uniqueIdentifier = [macaddress stringFromMD5];
return uniqueIdentifier;
}[/cpp]
iOS7 ile birlikte MAC adresinin her cihaz için aynı statik değere sahip olması birçok servis sağlayıcının analiz mantıklarını altüst etti. Gelen isteklerin hep aynı cihazdan geliyormuş gibi görünmesi, uygulama geliştiricilerini iOS6 ve iOS7 için Apple’ın önerdiği diğer bir yönteme; ASIdentifierManager sınıfındaki advertisingIdentifier kimliğine itti.
advertisingIdentifier
Şimdilik en mantıklı alternatif olarak görünen bu kimlik, UDID özelliklerine en yakın kimlik olsa da Apple’ın kullanıcı gizliliği politikasından nasibini alıyor. Bu kimliği telefonun gizlilik özelliklerinden sınırlandırabiliyor ve yenileyebiliyorsunuz ki, bu da reklam sağlayıcıları için problem yaratıyor. Aşağıdaki ekran resimlerinden advertisingIdentifier’ın doğru kullanım şekli ve uyarılarını görebilirsiniz.