Yozio等服务如何在没有UDID的情况下跟踪个人用户的应用安装?

时间:2012-11-05 13:00:56

标签: ios udid

我正在查看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...
}

2 个答案:

答案 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;

}