返回博客

GeoIP 与 GPS:如何选择合适的位置识别信号

地理定位产品隐私

什么时候使用 IP 地理定位,什么时候请求设备位置,以及如何在不打扰用户、不触碰隐私红线的前提下把两者结合起来。

# GeoIP 与 GPS:如何选择合适的位置识别信号

这两类位置信号回答的是不同问题,背后的使用成本也完全不同。

GeoIP

  • 零打扰。 不需要弹出权限请求,也不需要用户操作;请求一到达,就可以使用。
  • 粒度较粗。 国家级别通常可靠,城市级别更多是近似判断。
  • 反映网络出口。 它告诉你连接从哪里出来,而这恰恰是风控、滥用检测等场景真正关心的信息。

设备位置

  • 精度高。 可以精确到米级,而不是大致的都市圈范围。
  • 成本高。 必须向用户明确请求授权;相当一部分用户会选择拒绝。
  • 由用户侧控制。 在 root 设备上,或借助开发者工具,伪造起来并不困难。

正确的组合方式

凡是需要在用户产生任何操作之前完成的事情,都适合先用 GeoIP:货币选择、默认语言、延迟路由、合规准入,以及第一轮风险评分。设备位置权限则应留给那些确实需要高精度的功能,比如门店自提、配送半径判断等,并且要在具体场景中发起请求,让用户明白为什么需要授权。

当两者同时存在时,真正有价值的往往是“不一致”本身。一个设备声称自己在马德里,但连接出口却来自新加坡的数据中心——这个组合远比单独看任意一个事实更值得关注。

隐私处理原则

在 GDPR 语境下,只要 IP 推导出的位置与具体个人关联,它就是个人数据。这并不意味着不能使用,而是意味着你必须说明理由、控制范围并做好记录。几个实用原则是:

  • 在请求发生时实时解析,存储业务决策,而不是原始坐标。
  • 除非有明确目的和保留期限,否则不要基于 IP 数据构建用户级的位置轨迹历史。
  • 只保留能解决问题的最粗粒度字段。很多时候,国家级别已经足够。

Guarda 的设计正是围绕这一点展开:查询实时解析,结果不会保留在我们这一侧。因此,唯一留下来的决策副本,是你有意识选择保存的那一份。

一个可落地的默认方案

每次请求都使用 IP 判断国家。用 IP 城市信息做分析。只有在明确上下文中,才请求设备位置权限。把两者结合起来做异常检测,而不是试图用其中一个完全替代另一个。

你的连接