我正在查看teh yozio代码,他们似乎跟踪设备名称和IP地址作为指纹。这是可靠的,因为IP地址可以改变,并且设备名称可以在多个设备上相同,例如, “鲍勃的iPhone”。这个假设我错了吗?
这是Yozio的实施
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *appKey = @"e78ffa70-0975-0130-2e03-12314000ac7c";
NSString *deviceName = [[[UIDevice currentDevice] name] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *url = [NSString stringWithFormat:@"http://yoz.io/e?app_key=%@&device_name=%@", appKey, deviceName];
[NSURLConnection connectionWithRequest:[NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]] delegate:nil];
// Your app code here...
}
答案 0 :(得分:1)
他们在隐私article
中描述了这个过程指标和分析:Yozio收集有关访问的信息(例如 作为点击)通过Yozio服务创建的每个缩短的URL。这个 信息包括但不限于:(i)IP地址和 访问该设备的设备的HTTP头中的任何其他信息 缩短的网址; (ii)来自访问该网站的网络浏览器的信息 缩短的URL,例如cookie; (iii)推荐网站或 服务; (iv)每次进入的时间和日期; (v)资料 关于在第三方服务上共享缩短的URL,例如 AdMob和Facebook。 Yozio使用这些指标和分析 改善其网站和服务。
我认为应用于WURFL的用户代理数据的设备名称可能会产生非常接近唯一的标识符。
答案 1 :(得分:0)
我会这样做:
+(NSString*) uniqueIdentifier {
// Check if one exists
if ([[NSUserDefaults standardUserDefaults] stringForKey:@"uniqueIdentifier"].length > 0)
return [[NSUserDefaults standardUserDefaults] stringForKey:@"uniqueIdentifier"];
// One doesn't exist, create one
CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);
NSString* uuidStr = (__bridge NSString*) CFUUIDCreateString(kCFAllocatorDefault, uuid);
CFRelease(uuid);
[[NSUserDefaults standardUserDefaults] setValue:uuidStr forKey:@"uniqueIdentifier"];
return uuidStr;
}